Testiranje


Glavna stran

TEST 6

Pri tem testu se osredotočim na opazovanje delovanja operacij po modulu, ki sem jih v prejšnji testih malo zanemarila in preverjam tudi delovanje operacije velikost. Delovanje po modulu preverjam torej pri operacijah: vstaviKonec, odstraniZacetek, vstaviZacetek, odstraniKonec, velikost. Operacija zacetek pravilno deluje po modulu, kar že vem iz TEST3. Operacija konec pa se ne računa po modulu, ampak samo vrne element, ki se nahaja na indeksu k.

Še vedno velja:
z - indeks zadnjega prostega mesta pred začetkom vrste
k - indeks zadnjega elementa v vrsti
n - velikost tabele - št. mest na razpolago za vstavljanje

  1. del: odstraniZacetek, vstaviZacetek:

    Naredim 10. mestno vrsto in vstavim vanjo vsaj 2 elementa. Indeks z trenutno kaže na z = 9 in prvi element vrste se nahaja na indeksu 0. Če prvi element pobrišem, mora z postati z = 0, prvi element vrste pa bo na indeksu 1. Tako preverim delovanje operacije odstraniZacetek po modulu n (pravzaprav je bilo to razvidno že iz TEST5). Če zdaj vstavim nov element na začetek, mora z postati z = 9 in začetek vrste bo na indeksu 0. Tako preverim krožno delovanje operacije vstaviZacetek. Obe operaciji preverim z izpisom začetka, dodatno pa preverjam še z izpisom celotne vrste. Obe operaciji delujeta po modulu.

  2. del: vstaviKonec, odstraniKonec:

    Potrebujem vrsto, kjer bodo elementi že razporejeni krožno.

    1. naredim vrsto z 10 mesti in jo zapolnim do konca s števili od 1 do 9: 1, 2, 3, 4, 5, 6, 7, 8, 9. Zadnji indeks je brez elementa, ker lahko hranim en element manj v vrsti kot ima mest na razpolago. Za to vrsto veljajo naslednje vrednosti: z = 9, k = 8; zacetek = 1, konec = 9.
    2. pobrišem 5 elementov z začetka in vstavim en element (število 10) na konec vrste - na zadnji indeks v tabeli t (t.length - 1). Nove vrednosti so z = 4, k = 9; zacetek = 6, konec = 10
    3. vstavim 2 elementa (števili 11 in 12) na konec vrste, se pravi na indeksa 0 in 1. Tu dobim krožno zavrteno vrsto. Vrednosti so: z = 4, k = 1; zacetek = 6, konec = 12.
    4. pobrišem 2 elementa s konca vrste. Vrednosti so: z = 4, k = 9; zacetek = 6, konec = 10.

    S tem, ko se v vrsto, za katero vem, da ima elemente že postavljene do zadnjega indeksa v tabeli, vstavljajo na konec novi elementi na prve indekse, pokažem, da operacija vstaviKonec res deluje po modulu n.
    Ko pobrišem elemente s konca vrste, se pravi z indeksov 1 in 0, postane k = 9, s čimer pokažem, da tudi operacija odstraniKonec deluje v krožno predstavljeni tabeli.
    Oboje preverim z izpisom začetka in konca vrste, dodatno pa preverjam še z izpisom celotne vrste. Obe operaciji delujeta po modulu.

  3. del: velikost:

    Že v 1. in 2. delu testa sproti pregledujem operacijo velikost z izpisovanjem - ali res pravilno šteje elemente v vrsti. Na prejšnjih primerih vrst lahko preverim štetje elementov v obeh variantah vrste, kjer je k < z in kjer je k > z. V obeh primerih se izkaže, da operacija pravilno šteje elemente tudi po modulu n.
    Posebej preverim situacijo na prazni vrsti, ustvarjeni s 1. konstruktorjem in na vrsti z vstavljeno tabelo s privzetimi vrednostmi elementov, ustvarjeno s 3. konstruktorjem. Za primerjavo vstavim z zanko v prazno vrsto enako veliko tabelo s privzetimi vrednostmi elementov. V prvem primeru pričakujem, da bo rezultat 0, v drugem in tretjem pa, da bodo mesta v tabeli upoštevana kot polna, kar se tudi zgodi.

Test6_modul_velikost