static void TestFjernOgSettMedIndeks() { Console.WriteLine("\nTest Fjern(pos) og Sett(pos, x) med indekser"); Stabel <String> liste = new Stabel <String>(); liste.LeggTil("Element 0"); liste.LeggTil("Element 1"); liste.LeggTil("Element 2"); liste.LeggTil("Element 3"); liste.LeggTil("Element 4"); liste.Sett(0, "nyVerdi 0"); liste.Sett(2, "nyVerdi 2"); Sjekk("nyVerdi 0", liste.Hent(0), "Hent(0) etter Sett(0, \"nyVerdi 0\")"); Sjekk("nyVerdi 2", liste.Hent(2), "Hent(2) etter Sett(2, \"nyVerdi 2\")"); Sjekk("Element 3", liste.Fjern(3), "Fjern(3)"); Sjekk("Element 4", liste.Fjern(3), "Fjern(3) for andre gang"); liste.LeggTil("NyttElement"); Sjekk("NyttElement", liste.Hent(3), "Hent(3) skal Hente nytt element lagt til etter at andre elementer har blitt Fjernet"); Sjekk(4, liste.Stoerrelse(), "Stoerrelse() etter flere kall paa Fjern() og LeggTil()"); }
static void TestUnntak() { Console.WriteLine("\nTest unntak"); Stabel <String> liste = new Stabel <String>(); try { liste.Fjern(); // skal ikke fungere, men skal kaste et unntak // hit kommer vi ikke om det ble kastet et unntak SjekkFeilet("Fjern() paa tom liste skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Fjern(0); SjekkFeilet("Fjern(0) paa tom liste skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Hent(0); SjekkFeilet("Hent(0) paa tom liste skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Sett(0, "asd"); SjekkFeilet("Sett(0, ...) paa tom liste skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.LeggTil(1, "asd"); SjekkFeilet("LeggTil(1, ...) paa tom liste skulle kastet unntak - kun indeks 0 er gyldig i tom liste"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } liste.LeggTil("Forste element"); liste.LeggTil(1, "Andre element"); // Sette inn bakerst skal fungere try { liste.Fjern(2); SjekkFeilet("Fjern(2) paa liste med 2 elementer skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Hent(2); SjekkFeilet("Hent(2) paa liste med 2 elementer skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Sett(2, "2 er ugyldig indeks"); SjekkFeilet("Sett(2, ...) paa liste med 2 elementer skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.LeggTil(3, "3 er ugyldig indeks"); SjekkFeilet("LeggTil(3, ...) paa liste med 2 elementer skulle kastet unntak"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Fjern(-1); SjekkFeilet("Fjern(-1) skal kaste unntaket UgyldigListeIndeks"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Hent(-1); SjekkFeilet("Hent(-1) skal kaste unntaket UgyldigListeIndeks"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.Sett(-1, "-1 er en ugyldig indeks!"); SjekkFeilet("Sett(-1, ...) skal kaste unntaket UgyldigListeIndeks"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } try { liste.LeggTil(-1, "-1 er en ugyldig indeks!"); SjekkFeilet("LeggTil(-1, ...) skal kaste unntaket UgyldigListeIndeks"); } catch (UgyldigListeIndeks) { SjekkPasserte(); } }