mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
feat: add tests images
This commit is contained in:
parent
2721ef6034
commit
c4bbd7c88c
BIN
assets/images/tests/hexlab-full.png
Normal file
BIN
assets/images/tests/hexlab-full.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 81 KiB |
BIN
assets/images/tests/hexlab-minimized.png
Normal file
BIN
assets/images/tests/hexlab-minimized.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
assets/images/tests/tarpaulin/hexlab.png
Normal file
BIN
assets/images/tests/tarpaulin/hexlab.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
27
attachments.typ
Normal file
27
attachments.typ
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#import "@preview/i-figured:0.2.4"
|
||||||
|
|
||||||
|
#heading("Pielikumi", numbering: none)
|
||||||
|
#set figure(numbering: "1")
|
||||||
|
#set figure(kind: "attachment", supplement: "pielikums")
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Pilns "hexlab" bibliotēkas testu rezultāts],
|
||||||
|
image("assets/images/tests/hexlab-full.png", height: 90%),
|
||||||
|
) <tests-hexlab-full>
|
||||||
|
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Tarpaulin rīka rezultāts "hexlab" bibliotēkai],
|
||||||
|
image("assets/images/tests/tarpaulin/hexlab.png"),
|
||||||
|
) <tarpaulin-hexlab>
|
||||||
|
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Tokei rīka rezultāts "Maze Ascension" spēlei],
|
||||||
|
image("assets/images/tokei/maze-ascension.png"),
|
||||||
|
) <tokei-maze-ascension>
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Tokei rīka rezultāts "hexlab" bibliotēkai],
|
||||||
|
image("assets/images/tokei/hexlab.png"),
|
||||||
|
) <tokei-hexlab>
|
||||||
42
layout.typ
42
layout.typ
@ -1,6 +1,6 @@
|
|||||||
#import "@preview/i-figured:0.2.4"
|
#import "@preview/i-figured:0.2.4"
|
||||||
#import "@preview/tablex:0.0.9": tablex
|
#import "@preview/tablex:0.0.9": tablex
|
||||||
#import "@preview/pintorita:0.1.3"
|
#import "@preview/headcount:0.1.0": *
|
||||||
|
|
||||||
#let indent = 1cm
|
#let indent = 1cm
|
||||||
|
|
||||||
@ -45,6 +45,16 @@
|
|||||||
|
|
||||||
show math.equation: set text(weight: 400)
|
show math.equation: set text(weight: 400)
|
||||||
|
|
||||||
|
|
||||||
|
// replace `.` with `,`
|
||||||
|
show math.equation: it => {
|
||||||
|
show regex("\d+\.\d+"): num => {
|
||||||
|
show ".": math.class("normal", ",")
|
||||||
|
num
|
||||||
|
}
|
||||||
|
it
|
||||||
|
}
|
||||||
|
|
||||||
// Formatting for regular text
|
// Formatting for regular text
|
||||||
set par(
|
set par(
|
||||||
justify: true,
|
justify: true,
|
||||||
@ -167,10 +177,12 @@
|
|||||||
/* --- Figure/Table config start --- */
|
/* --- Figure/Table config start --- */
|
||||||
show heading: i-figured.reset-counters
|
show heading: i-figured.reset-counters
|
||||||
show figure: i-figured.show-figure.with(numbering: "1.1.")
|
show figure: i-figured.show-figure.with(numbering: "1.1.")
|
||||||
|
set figure(numbering: dependent-numbering("1.1"))
|
||||||
set figure(placement: none)
|
set figure(placement: none)
|
||||||
|
|
||||||
show figure.where(kind: "i-figured-table"): set block(breakable: true)
|
show figure.where(kind: "i-figured-table"): set block(breakable: true)
|
||||||
show figure.where(kind: "i-figured-table"): set figure.caption(position: top)
|
show figure.where(kind: "i-figured-table"): set figure.caption(position: top)
|
||||||
|
show figure.where(kind: "attachment"): set figure.caption(position: top)
|
||||||
|
|
||||||
show figure: set par(justify: false) // disable justify for figures (tables)
|
show figure: set par(justify: false) // disable justify for figures (tables)
|
||||||
show figure.where(kind: table): set par(leading: 1em)
|
show figure.where(kind: table): set par(leading: 1em)
|
||||||
@ -196,6 +208,12 @@
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
if it.kind == "i-figured-\"attachment\"" {
|
||||||
|
return align(
|
||||||
|
end,
|
||||||
|
it.counter.display() + ". pielikums. " + text(it.body),
|
||||||
|
)
|
||||||
|
}
|
||||||
it
|
it
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,8 +245,10 @@
|
|||||||
let supplement_map = (
|
let supplement_map = (
|
||||||
i-figured-table: "tab.",
|
i-figured-table: "tab.",
|
||||||
i-figured-image: "att.",
|
i-figured-image: "att.",
|
||||||
|
attachment: "pielikums",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
// Get the supplement value properly
|
// Get the supplement value properly
|
||||||
let supplement = if type(it.supplement) != function {
|
let supplement = if type(it.supplement) != function {
|
||||||
it.supplement
|
it.supplement
|
||||||
@ -239,15 +259,23 @@
|
|||||||
""
|
""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let number = if kind == "attachment" {
|
||||||
|
numbering(
|
||||||
|
el.numbering,
|
||||||
|
..counter(figure.where(kind: kind)).at(el.location()),
|
||||||
|
) + "." // Only add dot for attachments
|
||||||
|
} else {
|
||||||
|
numbering(
|
||||||
|
el.numbering,
|
||||||
|
..counter(figure.where(kind: kind)).at(el.location()),
|
||||||
|
) // No extra dot for tables and images
|
||||||
|
}
|
||||||
|
|
||||||
// Create counter based on the kind
|
// Create counter based on the kind
|
||||||
return link(
|
return link(
|
||||||
el.location(),
|
el.location(),
|
||||||
numbering(
|
number + if supplement != "" {
|
||||||
el.numbering,
|
|
||||||
..counter(figure.where(kind: kind)).at(
|
|
||||||
el.location(),
|
|
||||||
),
|
|
||||||
) + if supplement != "" {
|
|
||||||
" " + supplement
|
" " + supplement
|
||||||
} else {
|
} else {
|
||||||
""
|
""
|
||||||
|
|||||||
186
main.typ
186
main.typ
@ -1801,10 +1801,152 @@ Integrācijas testēšana ir veikta manuāli, mijiedarboties ar spēles saskarni
|
|||||||
Katrs testa scenārijs ir dokumentēta strukturētas tabulas formātā, ievērojot
|
Katrs testa scenārijs ir dokumentēta strukturētas tabulas formātā, ievērojot
|
||||||
būtisku informāciju, piemēram, test nosaukumu, unikālo identifikatoru, aprakstu,
|
būtisku informāciju, piemēram, test nosaukumu, unikālo identifikatoru, aprakstu,
|
||||||
izpildes soļus, gaidāmo rezultātu un faktisko rezultātu (veiksmīga testa
|
izpildes soļus, gaidāmo rezultātu un faktisko rezultātu (veiksmīga testa
|
||||||
gadījumā apzīmēts ar "Ok", bet neveiksmīgu -- ar "Err").
|
gadījumā apzīmēts ar "Ok", bet neveiksmīgu -- "Err").
|
||||||
Izvēlētie testu gadījumi ir detalizēti aprakstīti #todo("attiecīgā tabula") tabulā.
|
Izvēlētie testu gadījumi ir detalizētāk aprakstīti @tbl:manual-tests[tabulā].
|
||||||
|
|
||||||
#todo("add tests table")
|
|
||||||
|
#figure(
|
||||||
|
caption: "Manuālā testēšana",
|
||||||
|
kind: table,
|
||||||
|
tablex(
|
||||||
|
columns: (3.5em, 6em, auto, auto, 5.5em),
|
||||||
|
[*Testa ID*],
|
||||||
|
[*Testa nosaukums*],
|
||||||
|
[*Soļi*],
|
||||||
|
[*Sagaidāmais rezultāts*],
|
||||||
|
[*Faktiskais rezultāts*],
|
||||||
|
"MT01",
|
||||||
|
"Spēles palaišana",
|
||||||
|
[
|
||||||
|
+ Palaist spēli
|
||||||
|
+ Gaidīt ielādi
|
||||||
|
],
|
||||||
|
[Parādās galvenā izvēlne ar "Play" pogu.],
|
||||||
|
"Ok",
|
||||||
|
"MT02",
|
||||||
|
"Labirinta ģenerēšana",
|
||||||
|
[
|
||||||
|
+ Palaist spēli
|
||||||
|
+ Nospiest "Play" pogu
|
||||||
|
+ Gaidīt ielādi
|
||||||
|
],
|
||||||
|
[Tiek uzģenerēts sešstūrains labirints ar sienām.],
|
||||||
|
"Ok",
|
||||||
|
"MT03",
|
||||||
|
"Stāvu pāreja (uz augšu)",
|
||||||
|
[
|
||||||
|
+ Nokļūt līdz beigu šūnai
|
||||||
|
+ Novērot animāciju
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Plūstoša pāreja starp stāviem uz augšu
|
||||||
|
+ Jauna stāva ģenerēšana
|
||||||
|
],
|
||||||
|
"Ok",
|
||||||
|
"MT04",
|
||||||
|
"Stāvu pāreja (uz leju)",
|
||||||
|
[
|
||||||
|
+ Nokļūt līdz sākuma šūnai
|
||||||
|
+ Novērot animāciju
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Plūstoša pāreja starp stāviem uz leju
|
||||||
|
+ Jauns stāvs netiek ģenerēts
|
||||||
|
],
|
||||||
|
"Ok",
|
||||||
|
"MT05",
|
||||||
|
"Papildspēju aktivizēšana",
|
||||||
|
[
|
||||||
|
+ Aktivizēt papildspēju
|
||||||
|
+ Gaidīt atjaunošanās laiku
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Papildspēja aktivizējas
|
||||||
|
+ Sākas atjaunošanās laiks
|
||||||
|
],
|
||||||
|
"Err",
|
||||||
|
"MT06",
|
||||||
|
"Izstrādes rīku atvēršana",
|
||||||
|
[
|
||||||
|
+ Palaist spēli izstrādes režīmā
|
||||||
|
+ Nospiest "Play" pogu
|
||||||
|
],
|
||||||
|
[Parādās "egui" panelis ar labirinta konfigurācijas opcijām],
|
||||||
|
"Ok",
|
||||||
|
"MT07",
|
||||||
|
[Labirinta parametru maiņa],
|
||||||
|
[
|
||||||
|
+ Atvērt "egui" paneli
|
||||||
|
+ Mainīt labirinta izmēru un citus parametrus
|
||||||
|
],
|
||||||
|
[Tiek ģenerēts jauns labirints ar mainītajiem parametriem],
|
||||||
|
"Ok",
|
||||||
|
"MT08",
|
||||||
|
[Spēlētāja kustība],
|
||||||
|
[
|
||||||
|
+ Izmantot WASD vadību
|
||||||
|
+ Mēģināt šķērsot sienas
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Plūstoša kustība brīvajā telpā
|
||||||
|
+ Sadursmes ar sienām strādā
|
||||||
|
],
|
||||||
|
"Ok",
|
||||||
|
"MT09",
|
||||||
|
[Windows palaišana],
|
||||||
|
[
|
||||||
|
+ Kompilēt spēli Windows platformai
|
||||||
|
+ Palaist .exe failu
|
||||||
|
+ Veikt pamata funkcionalitātes testu
|
||||||
|
],
|
||||||
|
[Spēle darbojas Windows vidē bez kļūdām],
|
||||||
|
"Ok",
|
||||||
|
"MT10",
|
||||||
|
[Linux palaišana],
|
||||||
|
[
|
||||||
|
+ Kompilēt spēli Linux platformai
|
||||||
|
+ Palaist bināro failu
|
||||||
|
+ Veikt pamata funkcionalitātes testu
|
||||||
|
],
|
||||||
|
[Spēle darbojas Linux vidē bez kļūdām],
|
||||||
|
"Ok",
|
||||||
|
"MT11",
|
||||||
|
[macOS palaišana],
|
||||||
|
[
|
||||||
|
+ Kompilēt spēli macOS platformai
|
||||||
|
+ Palaist .dmg pakotni
|
||||||
|
+ Veikt pamata funkcionalitātes testu
|
||||||
|
],
|
||||||
|
[Spēle darbojas macOS vidē bez kļūdām],
|
||||||
|
"Err",
|
||||||
|
"MT12",
|
||||||
|
[WASM palaišana],
|
||||||
|
[
|
||||||
|
+ Kompilēt spēli WASM mērķim
|
||||||
|
+ Atvērt pārlūkā
|
||||||
|
+ Veikt pamata funkcionalitātes testu
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Spēle ielādējas pārlūkā
|
||||||
|
+ Darbojas visas pamatfunkcijas
|
||||||
|
],
|
||||||
|
"Ok",
|
||||||
|
),
|
||||||
|
) <manual-tests>
|
||||||
|
|
||||||
|
#indent-par[
|
||||||
|
Divi testi no manuālās testēšanas plāna netika izpildīti.
|
||||||
|
Papildspēju tests (MT05) netika izpildīts, jo šī funkcionalitāte netika
|
||||||
|
implementēta projekta pirmajā versijā, atstājot to kā potenciālu nākotnes
|
||||||
|
papildinājumu.
|
||||||
|
Savukārt macOS platformas tests (MT11) netika izpildīts
|
||||||
|
tehnisku ierobežojumu dēļ -- projekta izstrādātājam nav pieejama Apple
|
||||||
|
aparatūra.
|
||||||
|
]
|
||||||
|
|
||||||
|
Tādējādi no divpadsmit definētajiem testiem desmit tika veiksmīgi izpildīti,
|
||||||
|
viens netika implementēts (papildspējas), un viens tika daļēji izpildīts (macOS
|
||||||
|
kompilēšana bez funkcionālās testēšanas).
|
||||||
|
|
||||||
=== Automatizēti testi
|
=== Automatizēti testi
|
||||||
|
|
||||||
@ -1814,19 +1956,25 @@ Testēšanas stratēģijā ir ieviesti vairāki pārbaudes līmeņi: dokumentāc
|
|||||||
no drošina piemēra koda pareizību, moduļu testi pārbauda iekšējo
|
no drošina piemēra koda pareizību, moduļu testi pārbauda iekšējo
|
||||||
funkcionalitāti, savukārt testu mapē esošie vienībtesti un integrācijas testi
|
funkcionalitāti, savukārt testu mapē esošie vienībtesti un integrācijas testi
|
||||||
pārbauda sarežģītākus gadījumus.
|
pārbauda sarežģītākus gadījumus.
|
||||||
Izmantojot "cargo-tarpaulin", testu pārklājums ir $81,69%$ (116 no 142
|
Automatizēto testu izpildes rezultātu kopsavilkums ir redzams
|
||||||
iekļautajām rindiņām), tomēr šis rādītājs pilnībā neatspoguļo faktisko
|
@fig:tests-hexlab[attēlā], savukārt detalizēts testu izpildes pārskats ir
|
||||||
pārklājumu, jo rīkam ir ierobežojumi attiecībā uz "inline"#footnote[https://doc.rust-lang.org/nightly/reference/attributes/codegen.html?highlight=inline]
|
pieejams @tests-hexlab-full[pielikumā].
|
||||||
|
|
||||||
|
Izmantojot "cargo-tarpaulin", testu pārklājums ir $81.69%$ (116 no 142
|
||||||
|
iekļautajām rindiņām) (sk. @tarpaulin-hexlab[pielikumu]), tomēr šis rādītājs
|
||||||
|
pilnībā neatspoguļo faktisko pārklājumu, jo rīkam ir ierobežojumi attiecībā uz
|
||||||
|
"inline"#footnote[https://doc.rust-lang.org/nightly/reference/attributes/codegen.html?highlight=inline]
|
||||||
funkcijām un citi tehniski ierobežojumi @cargo-tarpaulin.
|
funkcijām un citi tehniski ierobežojumi @cargo-tarpaulin.
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Daļējs "hexlab" bibliotēkas testu rezultāts],
|
||||||
|
image("assets/images/tests/hexlab-minimized.png"),
|
||||||
|
)<tests-hexlab>
|
||||||
|
|
||||||
#todo("double check which tests are actually imlemented")
|
|
||||||
Arī spēles kods saglabā stabilu testēšanas stratēģiju.
|
Arī spēles kods saglabā stabilu testēšanas stratēģiju.
|
||||||
Dokumentācijas testi tiek rakstīti tieši koda dokumentācijā, kalpojot diviem
|
Dokumentācijas testi tiek rakstīti tieši koda dokumentācijā, kalpojot diviem
|
||||||
mērķiem -- tie pārbauda koda pareizību un vienlaikus sniedz skaidrus lietošanas
|
mērķiem -- tie pārbauda koda pareizību un vienlaikus sniedz skaidrus lietošanas
|
||||||
piemērus turpmākai uzturēšanai.
|
piemērus turpmākai uzturēšanai.
|
||||||
Šie testi ir īpaši vērtīgi, jo tie nodrošina, ka dokumentācija tiek sinhronizēta
|
|
||||||
ar faktisko koda uzvedību.
|
|
||||||
Moduļu testi ir stratēģiski izvietoti līdzās implementācijas kodam tajā pašā
|
Moduļu testi ir stratēģiski izvietoti līdzās implementācijas kodam tajā pašā
|
||||||
failā, nodrošinot, ka katras komponentes funkcionalitāte tiek pārbaudīta
|
failā, nodrošinot, ka katras komponentes funkcionalitāte tiek pārbaudīta
|
||||||
izolēti.
|
izolēti.
|
||||||
@ -1901,12 +2049,11 @@ balstās uz $550$ verificētu programmatūras projektu datubāzi @QSM.
|
|||||||
Izmantojot "tokei" rīku @tokei, tika veikta detalizēta projekta koda analīze,
|
Izmantojot "tokei" rīku @tokei, tika veikta detalizēta projekta koda analīze,
|
||||||
kas parādija, ka "Maze Ascension" projekts satur $1927$ koda rindiņas, bet
|
kas parādija, ka "Maze Ascension" projekts satur $1927$ koda rindiņas, bet
|
||||||
saistītā "hexlab" bibliotēka -- $979$ rindiņas, kopā veidojot $2906$ loģiskās koda
|
saistītā "hexlab" bibliotēka -- $979$ rindiņas, kopā veidojot $2906$ loģiskās koda
|
||||||
rindiņas, neiekļaujot tukšās rindiņas un komentārus (sk. @fig:tokei-maze-ascension[]
|
rindiņas, neiekļaujot tukšās rindiņas un komentārus (sk. @tokei-maze-ascension[]
|
||||||
un @fig:tokei-hexlab[pielukumus]).
|
un @tokei-hexlab[pielikumus]).
|
||||||
|
|
||||||
Saskaņā ar QSM etalontabulu "Business Systems Implementation Unit (New and
|
Saskaņā ar QSM etalontabulu "Business Systems Implementation Unit (New and
|
||||||
Modified IU) Benchmarks", pirmās kvartiles projekti ($25%$ mazākie no $550$
|
Modified IU) Benchmarks", pirmās kvartiles projekti ($25%$ mazākie no $550$
|
||||||
biznesa sistēmu projektiem) vidēji ilgst $3,2$ mēnešus, ar vidēji $1,57$
|
biznesa sistēmu projektiem) vidēji ilgst $3.2$ mēnešus, ar vidēji $1.57$
|
||||||
izstrādātājiem un mediāno projekta apjomu -- $1889$ koda rindiņas.
|
izstrādātājiem un mediāno projekta apjomu -- $1889$ koda rindiņas.
|
||||||
Ņemot vērā, ka projekta autors ir students ar ierobežotu pieredzi, tiek
|
Ņemot vērā, ka projekta autors ir students ar ierobežotu pieredzi, tiek
|
||||||
izmantota pirmās kvartiles $50%$ diapazona augšējā robeža -- $466$ rindiņas
|
izmantota pirmās kvartiles $50%$ diapazona augšējā robeža -- $466$ rindiņas
|
||||||
@ -1970,19 +2117,8 @@ Projekta turpmākās attīstības iespējas ietver:
|
|||||||
"bibliography.yml",
|
"bibliography.yml",
|
||||||
)
|
)
|
||||||
|
|
||||||
#heading("Pielikumi", numbering: none)
|
#include "attachments.typ"
|
||||||
#figure(
|
|
||||||
caption: [Tokei rīka rezultāts "Maze Ascension" spēlei],
|
|
||||||
image("assets/images/tokei/maze-ascension.png"),
|
|
||||||
) <tokei-maze-ascension>
|
|
||||||
|
|
||||||
#figure(
|
|
||||||
caption: [Tokei rīka rezultāts "hexlab" bibliotēkai],
|
|
||||||
image("assets/images/tokei/hexlab.png"),
|
|
||||||
) <tokei-hexlab>
|
|
||||||
|
|
||||||
// #include "code.typ"
|
// #include "code.typ"
|
||||||
|
|
||||||
#include "doc.typ"
|
#include "doc.typ"
|
||||||
|
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|||||||
95
utils.typ
95
utils.typ
@ -142,54 +142,6 @@
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#let entity-table(
|
|
||||||
caption: "",
|
|
||||||
id: (),
|
|
||||||
..items,
|
|
||||||
) = {
|
|
||||||
if id == () {
|
|
||||||
id = (
|
|
||||||
"id",
|
|
||||||
"serial8",
|
|
||||||
"primary key, not null",
|
|
||||||
"Unikālais identifikators",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
return figure(
|
|
||||||
caption: caption,
|
|
||||||
kind: table,
|
|
||||||
tablex(
|
|
||||||
columns: (4cm, 3cm, auto, auto),
|
|
||||||
repeat-header: true,
|
|
||||||
/* Header */
|
|
||||||
[*Lauks*],
|
|
||||||
[*Datu tips*],
|
|
||||||
[*Lauka atribūti*],
|
|
||||||
[*Apraksts*],
|
|
||||||
|
|
||||||
..entity-table-row(..id), // id row
|
|
||||||
|
|
||||||
..for i in range(items.pos().len(), step: 4) {
|
|
||||||
entity-table-row(..items.pos().slice(i, i + 4))
|
|
||||||
},
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#let hyperlink-source(
|
|
||||||
author,
|
|
||||||
title,
|
|
||||||
link_str,
|
|
||||||
date,
|
|
||||||
) = {
|
|
||||||
if link_str == "" {
|
|
||||||
[#author #title Aplūkots #date.display("[day].[month].[year]")]
|
|
||||||
} else {
|
|
||||||
[#author #title Pieejams: #link(link_str) aplūkots #date.display("[day].[month].[year]")]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#let codeblock(filename, lang) = {
|
#let codeblock(filename, lang) = {
|
||||||
raw(
|
raw(
|
||||||
read(filename),
|
read(filename),
|
||||||
@ -198,10 +150,6 @@
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#let red(body) = {
|
|
||||||
text(body, fill: rgb(255, 0, 0))
|
|
||||||
}
|
|
||||||
|
|
||||||
#let components-table(
|
#let components-table(
|
||||||
caption: str,
|
caption: str,
|
||||||
..body,
|
..body,
|
||||||
@ -252,3 +200,46 @@
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#let test-table(
|
||||||
|
caption: "",
|
||||||
|
..items,
|
||||||
|
) = {
|
||||||
|
if caption == "" {
|
||||||
|
caption = items.pos().first()
|
||||||
|
}
|
||||||
|
return longtable(
|
||||||
|
titles: (
|
||||||
|
"Testa gadījuma nosaukums",
|
||||||
|
"Testa identifikators",
|
||||||
|
"Apraksts",
|
||||||
|
"Soļi",
|
||||||
|
"Sagaidāmais rezultāts",
|
||||||
|
"Faktiskais rezultāts",
|
||||||
|
),
|
||||||
|
caption: caption,
|
||||||
|
..items,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#let entity-table-row(
|
||||||
|
..items,
|
||||||
|
) = {
|
||||||
|
(
|
||||||
|
items.pos().at(0),
|
||||||
|
upper(
|
||||||
|
raw(
|
||||||
|
items.pos().at(1),
|
||||||
|
block: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
upper(
|
||||||
|
raw(
|
||||||
|
items.pos().at(2),
|
||||||
|
block: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
items.pos().at(3),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user