Hide

Problem A
Testa din länkade lista

Languages en sv

I det här problemet ska du skriva en egen implementation av en länkad lista samt skicka med dina enhetstester för listan. Innan du påbörjar den här uppgiften ska du ha skickat in och fått dina enhetstester godkända av Kattis på den andra uppgiften. Använd sedan dina enhetstester lokalt när du bygger LinkedList.py. På den här uppgiften ska du skicka in både LinkedList.py samt dina enhetstester. Vi börjar med att testa din LinkedList med dina egna tester (på samma sätt som du redan har gjort lokalt), och testar sedan vidare med våra tester.

Våra tester kommer bara sätta in enkla datatyper (små heltal och strängar) i din lista.

Problemet används i examinationen av kursen DD1327 vid KTH och får inte användas i andra kurser som samma studenter skulle kunna läsa.

Struktur på din kod

Din inskickning måste innehålla minst två filer (men du kan också skicka in flera filer med enhetstester om du vill): LinkedList.py samt minst en fil med enhetstester skrivna för pythons standardbibliotek unittest. Vi kommer att identifiera testerna på samma sätt som python -m unittest gör. Se till att varje fil med tester du skickar in heter test_something.py och innehåller en klass som heter TestSomething och ärver från unittest.TestCase. Klassens metoder måste heta test_something() för varje testfall som ska köras. Du kan antingen skriva alla testfall i en fil, eller skicka in dem i flera olika filer.

Exempellösning

Här följer en exempellösning som INTE löser problemet (den testar bara en sak). Om du skickar in den här filen med ett filnamn som matchar test_*.py tillsammans med LinkedList.py från bilagorna nedan så kommer du klara det första testfallet (de enhetstest du själv skickat in), men kommer misslyckas med våra testfall (eftersom LinkedList.py från bilagorna inte är en korrekt implementation).

import unittest

from LinkedList import LinkedList

class TestExample(unittest.TestCase):
    def test_emptyListHasSize0(self):
        list = LinkedList()
        self.assertEqual(list.size(), 0)

Please log in to submit a solution to this problem

Log in