Laboration 8
I denna labb ska du
- Lära dig att använda domaren Kattis.
- Lära dig att skriva testprogram med unittest.
Registrera dig på Kattis
Gör så här:
- Följ länken: Kattis
- Logga in (längst upp till höger) med ditt KTH-id
- Välj "COURSES" i övre menyn
- Välj "tildav16"
Lär dig använda Kattis
Läs avsnittet Tutorials (1 och 2) i dokumentationen och lös problemen Hello och A Different Problem.
Syntaxkoll
Du ska börja med att implementera dessa tre regler:
<LETTER>::= A | B | C | ... | Z <letter>::= a | b | c | ... | z <num> ::= 2 | 3 | 4 | ...
Läs igenom instruktionerna nedan och utför punkterna i ordning.
- Skriv en spec med namnen på de funktioner du behöver och en kommentar för varje funktion som beskriver vad funktionen ska göra.
- Gör en kopia av din LinkedQueue från labb 2, och lägg till metoden peek() som tittar på nästa värde i kön utan att plocka ut det.
- Gör ett eget särfall Syntaxfel som är subklass (ärver från) Exception.
- Skriv ett testprogram med unittest som ska kontrollera att funktionerna fungerar som avsett.
- Till sist - skriv själva funktionerna
Frivillig del (för att förenkla för dig i nästa labb)
Utöka syntaxen med nya regler:
<element> ::= <atom> |<atom><num> <atom> ::= <LETTER> | <LETTER><letter>
<LETTER>::= A | B | C | ... | Z <letter>::= a | b | c | ... | z <num> ::= 2 | 3 | 4 | ...
Modifiera ditt program så att det kontrollerar om en inmatad textrad är en <element>
Här är några exempel att testa med unittest. Hitta gärna på fler!
Indata | Utskrift |
Ag | Formeln är syntaktiskt korrekt |
Ag13 | Formeln är syntaktiskt korrekt |
Ag1 | För litet tal vid radslutet |
Redovisning
Labben lämnas in via git och redovisas muntligt av bägge gruppmedlemmarna.
Vid redovisningen ska du kunna
- Demonstrera hur Kattis används
- Förklara hur unittest används för testning
- Redovisa de program (och specen) du skrivit i uppgifterna ovan
Betyg
Denna labb kan endast ge betyg E. Du måste lämna in den och redovisa den i tid för att få göra labbarna för högre betyg i nästa period.