import unittest import copy A, B, C, R, U, V = "ABCRUV" osnova = { (A, B): "gravel trava", (A, V): "pešci lonci", (B, C): "bolt lonci", (B, V): "", (C, R): "stopnice pešci lonci", (R, U): "trava pešci", (R, V): "pešci lonci", (U, V): "robnik lonci trava" } zemljevid_bak = {pov: set(ves.split()) for pov, ves in osnova.items()} class TestObvezna(unittest.TestCase): def test_1_poenostavi(self): zemljevid = copy.deepcopy(zemljevid_bak) mnab = zemljevid[(A, B)] self.assertIsNone(poenostavi(zemljevid, {"gravel", "trava", "lonci", "robnik"})) self.assertIs(mnab, zemljevid[(A, B)], "Funkcija mora spreminjati množice, ki jih prejme (v slovarju, ki ga prejme)") self.assertEqual({ ('A', 'B'): {'gravel', 'trava'}, ('A', 'V'): {'lonci'}, ('B', 'C'): {'lonci'}, ('B', 'V'): set(), ('C', 'R'): {'lonci'}, ('R', 'U'): {'trava'}, ('R', 'V'): {'lonci'}, ('U', 'V'): {'trava', 'lonci', 'robnik'}}, zemljevid) zemljevid = copy.deepcopy(zemljevid_bak) mnab = zemljevid[(A, B)] self.assertIsNone(poenostavi(zemljevid, {"gravel", "trava", "lonci", "robnik", "pešci", "stopnice", "bolt"}), "Funkcija naj ne vrača ničesar.") self.assertIs(mnab, zemljevid[(A, B)], "Funkcija mora spreminjati množice, ki jih prejme (v slovarju, ki ga prejme)") self.assertEqual(zemljevid_bak, zemljevid) zemljevid = copy.deepcopy(zemljevid_bak) mnab = zemljevid[(A, B)] self.assertIsNone(poenostavi(zemljevid, set())) self.assertIs(mnab, zemljevid[(A, B)], "Funkcija mora spreminjati množice, ki jih prejme (v slovarju, ki ga prejme)") self.assertEqual({ ('A', 'B'): set(), ('A', 'V'): set(), ('B', 'C'): set(), ('B', 'V'): set(), ('C', 'R'): set(), ('R', 'U'): set(), ('R', 'V'): set(), ('U', 'V'): set(), }, zemljevid) def test_2_odstraniti(self): zemljevid = copy.deepcopy(zemljevid_bak) mnab = zemljevid[(A, B)] self.assertIsNone(odstraniti(zemljevid, {"gravel", "trava", "lonci", "robnik"})) self.assertIs(mnab, zemljevid[(A, B)], "Funkcija mora spreminjati množice, ki jih prejme (v slovarju, ki ga prejme)") self.assertEqual( {('A', 'B'): set(), ('A', 'V'): {'pešci'}, ('B', 'C'): {'bolt'}, ('B', 'V'): set(), ('C', 'R'): {'stopnice', 'pešci'}, ('R', 'U'): {'pešci'}, ('R', 'V'): {'pešci'}, ('U', 'V'): set()}, zemljevid) zemljevid = copy.deepcopy(zemljevid_bak) mnab = zemljevid[(A, B)] self.assertIsNone(odstraniti(zemljevid, {"gravel", "trava", "lonci", "robnik", "pešci", "stopnice", "bolt"}), "Funkcija naj ne vrača ničesar.") self.assertIs(mnab, zemljevid[(A, B)], "Funkcija mora spreminjati množice, ki jih prejme (v slovarju, ki ga prejme)") self.assertEqual({ ('A', 'B'): set(), ('A', 'V'): set(), ('B', 'C'): set(), ('B', 'V'): set(), ('C', 'R'): set(), ('R', 'U'): set(), ('R', 'V'): set(), ('U', 'V'): set(), }, zemljevid) zemljevid = copy.deepcopy(zemljevid_bak) mnab = zemljevid[(A, B)] self.assertIsNone(odstraniti(zemljevid, set())) self.assertIs(mnab, zemljevid[(A, B)], "Funkcija mora spreminjati množice, ki jih prejme (v slovarju, ki ga prejme)") self.assertEqual(zemljevid_bak, zemljevid) if "__main__" == __name__: unittest.main()