Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av Linda Kann 2016-03-27 21:38

Visa < föregående
Jämför < föregående

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:

  1. Följ länken: Kattis
  2. Logga in (längst upp till höger) med ditt KTH-id
  3. Välj "COURSES" i övre menyn
  4. 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.

  1. 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.
  2. 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.
  3. Gör ett eget särfall Syntaxfel som är subklass (ärver från) Exception.
  4. Skriv ett testprogram med unittest som ska kontrollera att funktionerna fungerar som avsett.
  5. 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.