import unittest class Test(unittest.TestCase): def test_01_cokolada(self): self.assertEqual(24, cokolada(10, ["<2", ">1", "^3", "^1", "v2", "<1"])) self.assertEqual(4422, cokolada(100, ["<20", ">13", "^3", "^18", "v12", "<1"])) self.assertEqual(0, cokolada(10, ["<2", ">8", "^3", "^1", "v2", "<1"])) self.assertEqual(80, cokolada(10, ["<2"])) self.assertEqual(0, cokolada(10, ["<12"])) self.assertEqual(36, cokolada(6, [])) def test_02_zdruzi(self): self.assertEqual({5: {0, 3}, 1: {1, 4}, 2: {2}, 8: {5}}, zdruzi([5, 1, 2, 5, 1, 8])) self.assertEqual({5: {0}, 1: {1}}, zdruzi([5, 1])) self.assertEqual({}, zdruzi([])) def test_03_brez_jecljanja(self): with self.assertRaises(RecursionError, msg="Funkcija mora biti rekurzivna"): vsota_brez_jecljanja(list(range(2000))) vsota_brez_jecljanja([0] * 2000) self.assertEqual(11, vsota_brez_jecljanja([1, 1, 2, 3, 4, 1, 1, 1])) self.assertEqual(38, vsota_brez_jecljanja([8, 4, 7, 9, 4, 6])) self.assertEqual(42, vsota_brez_jecljanja([42])) self.assertEqual(42, vsota_brez_jecljanja([42, 42, 42])) self.assertEqual(0, vsota_brez_jecljanja([])) self.assertEqual(15, vsota_brez_jecljanja([1, 2, 3, 3, 4, 5]), [1, 2, 3, 4, 5]) self.assertEqual(15, vsota_brez_jecljanja([1, 2, 4, 3, 3, 5]), [1, 2, 4, 3, 5]) self.assertEqual(15, vsota_brez_jecljanja([1, 2, 4, 5, 3, 3]), [1, 2, 4, 5, 3]) self.assertEqual(15, vsota_brez_jecljanja([3, 3, 1, 2, 4, 5]), [3, 1, 2, 4, 5]) self.assertEqual(21, vsota_brez_jecljanja([3, 3, 1, 2, 3, 3, 4, 5, 3, 3]), [3, 1, 2, 3, 4, 5, 3]) self.assertEqual(21, vsota_brez_jecljanja([3, 3, 1, 2, 3, 4, 5, 3, 3]), [3, 1, 2, 3, 4, 5, 3]) self.assertEqual(21, vsota_brez_jecljanja([3, 3, 1, 2, 3, 4, 5, 3]), [3, 1, 2, 3, 4, 5, 3]) self.assertEqual(21, vsota_brez_jecljanja([3, 1, 2, 3, 4, 5, 3, 3]), [3, 1, 2, 3, 4, 5, 3]) def test_04_sopomena(self): sinonimi = [{"fant", "deček", "pob"}, {"dekle", "punca"}, {"cesta", "pot", "kolovoz", "makadam"}, {"kis", "jesih"}, {"noge", "tace"}] self.assertTrue( sopomena("pob in dekle sta vzela pot pod noge", "pob in dekle sta vzela pot pod noge", sinonimi)) self.assertTrue( sopomena("pob in dekle sta vzela pot pod noge", "fant in punca sta vzela pot pod tace", sinonimi)) self.assertTrue( sopomena("pob in dekle sta vzela kolovoz pod noge", "fant in punca sta vzela pot pod tace", sinonimi)) self.assertTrue( sopomena("fant in punca sta vzela pot pod tace", "pob in dekle sta vzela pot pod noge", sinonimi)) self.assertTrue( sopomena("fant in punca sta vzela pot pod tace", "pob in dekle sta vzela kolovoz pod noge", sinonimi)) self.assertFalse( sopomena("pob in dekle sta vzela pot pod noge", "fant in deček sta vzela pot pod tace", sinonimi)) self.assertFalse( sopomena("pob in dekle sta vzela pot pod noge", "fant in deček sta vzela pot pod tace", sinonimi)) self.assertFalse( sopomena("pob in dekle sta vzela pot pod noge", "fant in punca sta vzela pot pod tace", [{"fant", "deček", "pob"}])) def test_05_picerija(self): p = Picerija() q = Picerija() p.speci() q.speci() q.speci() self.assertEqual(p.prodaj(), "siri") self.assertEqual(p.prodaj(), "zelenjavna") self.assertEqual(q.prodaj(), "siri") self.assertEqual(p.prodaj(), "klasika") self.assertEqual(p.prodaj(), "margerita") self.assertIsNone(p.prodaj()) self.assertEqual(q.prodaj(), "zelenjavna") self.assertIsNone(p.prodaj()) self.assertEqual(p.zasluzek(), 7) self.assertEqual(q.zasluzek(), 4) q.speci() self.assertEqual(q.prodaj(), "siri") self.assertEqual(q.prodaj(), "zelenjavna") self.assertEqual(q.prodaj(), "klasika") self.assertEqual(q.prodaj(), "margerita") self.assertEqual(q.prodaj(), "klasika") self.assertEqual(q.prodaj(), "margerita") self.assertIsNone(p.prodaj()) if __name__ == "__main__": unittest.main()