Här finns några testprogram för att underlätta testningen.
Tänk på att:
Ladda ner testing.jar (senast uppdaterad 2011-11-29 17:51) till samma katalog som era .class-filer ligger i.
För Lab3 behövs också Lab3Help.jar (senast uppdaterad 2011-11-29 17:51) i samma katalog.
Det går att placera jar-filerna i en annan katalog, men då måste ni ändra den relativa sökvägen till testing.jar.
Antar i alla exempel nedan att katalogen är samma katalog som ni har era .class-filer i.
Finns två testgeneratorer.
Lab1GenTest söker efter nummer i en genererad mängd.
Lab1FileTest tar en fil med nummer och söker efter relaterade nummer.
java -jar testing.jar lab1test.Lab1GenTest Lab1A
java -jar testing.jar lab1test.Lab1GenTest "Lab1A 50 5 80"
java -jar testing.jar lab1test.Lab1GenTest "Lab1A --help"
java -jar testing.jar lab1test.Lab1FileTest "Lab1A numbers.txt"
java -jar testing.jar lab1test.Lab1FileTest "Lab1A --help"
Finns en testgenerator.
Lab2GenTest genererar listor med kommandon av ökande storlek.
Bör köra minst 2 miljoner testfall.
java -jar testing.jar lab2test.Lab2GenTest Lab2
java -jar testing.jar -t -1 lab2test.Lab2GenTest "lab2.Lab2 -p" för parallell testning. Testar snabbare genom att köra flera testfall samtidigt. Måste nu finnas en method "pureMain(String[])" som tar en array med alla kommandon och returnerar en sträng med all utdata istället för att skriva till System.out. Bör inte använda System.out/System.err alls med parallell testning eftersom det då blandas med alla andra utskrifter och kan vara missvisande.
Finns två testgeneratorer.
Lab3FileTest tar filer med stop och linjer och testar från alla noder till alla noder i grafen.
Lab3GenTest testar med genererade grafer.
Bör köra alla exempelgrafer från labbeskrivningen, och några miljoner av de genererade graferna.
java -jar testing.jar lab3test.Lab3FileTest "MyPath stops-bvs.txt lines-bvs.txt"
java -jar testing.jar lab3test.Lab3FileTest "MyPath --help"
java -jar testing.jar lab3test.Lab3GenTest MyPath
java -jar testing.jar lab3test.Lab3GenTest "MyPath --help"
På många ställen i en datastruktur så antar man saker. För en heap så antar man att
när man inte håller på att ändra i den, så är trädet alltid komplett och varje nods
prioritet är alltid högre eller lika med barnens prioritet.
Detta är en s.k invariant.
För att göra det lättare att hitta fel så kan man testa invarianten och andra saker som
man antar är sanna på olika ställen i datastrukturen.
I Java gör man detta med assertions.
Introduktion till assertions
Assertions testas endast om flaggan -ea anges, som i java -ea Program.