Göm menyn

Seminarium 6 - Experimentering

Kapitel som ska ha lästs

Denna sida visar en del av det som kommer att diskuteras på seminariet. Ofta tar handledarna också upp andra uppgifter som inte behöver något specifikt studentmaterial och då syns dessa uppgifter inte på sidan.

Uppgift: Analysera och testa program

def count(seq):
    """
    Counts the number of elements in a given list
    including elements in inner lists
    """
    if not seq:
        return 0
    elif isinstance(seq[0], list):
        return count(seq[0]) + count(seq[1:])
    else:
        return 1 + count(seq[1:])

Uppgiften består av två delar.

Den första delen är att definiera en funktion test_count som inte tar några parametrar, men som testar funktionen count med olika indata. Vi vill gärna att test_count returnerar något, så vi ska inte använda assert då asserts avbryter hela programmet vid första felet.

Bestäm om funktionen ska printa något!

Vad ska funktionen returnera? Motivera ditt val! Några möjliga förslag:

  • True/False
  • lista med testfall som inte går igenom
  • vad funktionen returnerade när den returnerade fel
  • antal fel

Den andra delen av uppgiften är att identifiera testfall som tillsammans fullständigt testar funktionen count. Hur många behövs? Dessa testfall ska lagras i någon lämplig datastruktur.

Repetition

Detta sista seminarium i denna perioden kommer också att användas för att repetera uppgifter från tidigare seminarier. Kontakta din seminarieledare om du har förslag på uppgifter att repetera.


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2021-12-03