import unittest class Test00Ogrevalna(unittest.TestCase): narocila = [("Ana", "sendvič"), ("Berta", "sendvič"), ("Cilka", "burek"), ("Dani", "jogurt"), ("Ema", "sendvič"), ("Fanči", "burek")] def test_narocil(self): self.assertEqual(stevilo_narocil(self.narocila, "sendvič"), 3) self.assertEqual(stevilo_narocil(self.narocila, "burek"), 2) self.assertEqual(stevilo_narocil(self.narocila, "jogurt"), 1) self.assertEqual(stevilo_narocil(self.narocila, "korenček"), 0) def test_narocila(self): self.assertEqual(goljufi(self.narocila), []) self.assertEqual(goljufi(self.narocila + [("Greta", "korenček")]), []) self.assertEqual(goljufi(self.narocila + [("Cilka", "jogurt"), ("Greta", "korenček")]), ["Cilka"]) self.assertEqual(goljufi(self.narocila + [("Cilka", "jogurt"), ("Ana", "burek"), ("Greta", "korenček")]), ["Ana", "Cilka"]) self.assertEqual(goljufi(self.narocila + [("Cilka", "jogurt"), ("Ana", "burek"), ("Ana", "jogurt"), ("Greta", "korenček")]), ["Ana", "Cilka"]) def test_narocniki(self): import random narocila = self.narocila.copy() random.shuffle(narocila) self.assertEqual(narocniki(narocila, "sendvič"), ["Ana", "Berta", "Ema"]) self.assertEqual(narocniki(narocila, "burek"), ["Cilka", "Fanči"]) self.assertEqual(narocniki(narocila, "jogurt"), ["Dani"]) self.assertEqual(narocniki(narocila, "korenček"), []) class Test01Obvezna(unittest.TestCase): narocila = [("Ana", "sendvič"), ("Berta", "sendvič"), ("Cilka", "burek"), ("Dani", "jogurt"), ("Ema", "sendvič"), ("Fanči", "burek")] def test_slovar_narocil(self): self.assertEqual( slovar_narocil(self.narocila), {"Ana": "sendvič", "Berta": "sendvič", "Cilka": "burek", "Dani": "jogurt", "Ema": "sendvič", "Fanči": "burek"} ) self.assertEqual(slovar_narocil([]), {}) def test_kosovnica(self): self.assertEqual(kosovnica(self.narocila), {"sendvič": 3, "burek": 2, "jogurt": 1}) self.assertEqual(kosovnica([]), {}) def test_kosovnica_brez_goljufov(self): self.assertEqual(kosovnica_brez_goljufov(self.narocila), {"sendvič": 3, "burek": 2, "jogurt": 1}) self.assertEqual(kosovnica_brez_goljufov([]), {}) self.assertEqual( kosovnica_brez_goljufov( self.narocila + [("Cilka", "jogurt"), ("Ana", "burek"), ("Greta", "korenček")]), {"sendvič": 3, "burek": 2, "jogurt": 1, "korenček": 1}) def test_najpopularnejse(self): self.assertEqual(najpopularnejse(self.narocila), "sendvič") def test_primanjkljaj(self): narocila = {"sendvič": 3, "burek": 2, "jogurt": 1} self.assertEqual(primanjkljaj(narocila, {"sendvič": 1, "burek": 5, "jogurt": 2}), {"sendvič": 2}) self.assertEqual(primanjkljaj(narocila, {"sendvič": 1, "burek": 1, "jogurt": 2}), {"sendvič": 2, "burek": 1}) self.assertEqual(primanjkljaj(narocila, {"sendvič": 1, "jogurt": 2}), {"sendvič": 2, "burek": 2}) self.assertEqual(primanjkljaj(narocila, {"sendvič": 1, "jogurt": 0}), {"sendvič": 2, "burek": 2, "jogurt": 1}) self.assertEqual(primanjkljaj(narocila, {}), narocila) class Test02Dodatna(unittest.TestCase): narocila = [("Ana", "sendvič"), ("Berta", "sendvič"), ("Cilka", "burek"), ("Dani", "jogurt"), ("Ema", "sendvič"), ("Fanči", "burek")] def test_vsa_narocila(self): self.assertEqual( vsa_narocila(self.narocila), {"sendvič": ["Ana", "Berta", "Ema"], "burek": ["Cilka", "Fanči"], "jogurt": ["Dani"]} ) def test_oddaj(self): narocila = self.narocila.copy() zaloga = {"sendvič": 5, "burek": 3, "jogurt": 8, "korenček": 2} self.assertIsNone(oddaj(narocila, zaloga)) self.assertEqual(narocila, []) self.assertEqual(zaloga, {"sendvič": 2, "burek": 1, "jogurt": 7, "korenček": 2}) narocila = self.narocila.copy() zaloga = {"sendvič": 2, "burek": 1} self.assertIsNone(oddaj(narocila, zaloga)) self.assertEqual(narocila, [("Dani", "jogurt"), ("Ema", "sendvič"), ("Fanči", "burek")]) self.assertEqual(zaloga, {}) narocila = self.narocila.copy() zaloga = {"sendvič": 5} self.assertIsNone(oddaj(narocila, zaloga)) self.assertEqual(narocila, [("Cilka", "burek"), ("Dani", "jogurt"), ("Fanči", "burek")]) self.assertEqual(zaloga, {"sendvič": 2}) narocila = self.narocila.copy() zaloga = {"sendvič": 7, "jogurt": 1, "korenček": 1} self.assertIsNone(oddaj(narocila, zaloga)) self.assertEqual(narocila, [("Cilka", "burek"), ("Fanči", "burek")]) self.assertEqual(zaloga, {"sendvič": 4, "korenček": 1}) if __name__ == "__main__": unittest.main()