import unittest stranke = {"Ana": {"stol", "miza", "metla", "sesalec"}, "Berta": {"metla", "sesalec", "vedro"}, "Cilka": {"flavta", "pesmarica"}, "Dani": {"top", "krogla", "metla"}, "Ema": {"krogla", "frnikole"}, "Fanči": {"metla", "sesalec", "vedro"}, "Greta": set(), "Helga": {"flavta"}, "Iva": {"trobenta"} } class Test01Ogrevalna(unittest.TestCase): def test_podobnost(self): self.assertEqual(podobnost(stranke, "Berta", "Cilka"), 0) self.assertEqual(podobnost(stranke, "Cilka", "Berta"), 0) self.assertEqual(podobnost(stranke, "Berta", "Fanči"), 1) self.assertEqual(podobnost(stranke, "Fanči", "Berta"), 1) self.assertAlmostEqual(podobnost(stranke, "Berta", "Ana"), 2 / 5) self.assertAlmostEqual(podobnost(stranke, "Ana", "Berta"), 2 / 5) self.assertAlmostEqual(podobnost(stranke, "Dani", "Ema"), 1 / 4) self.assertEqual(podobnost(stranke, "Berta", "Ema"), 0) self.assertEqual(podobnost(stranke, "Berta", "Greta"), 0) self.assertEqual(podobnost(stranke, "Helga", "Iva"), 0) self.assertAlmostEqual(podobnost(stranke, "Helga", "Cilka"), 1/2) self.assertEqual(podobnost(stranke, "Iva", "Cilka"), 0) def test_najpodobnejse(self): self.assertTrue(najpodobnejsa(stranke, "Ana") in {"Berta", "Fanči"}) self.assertEqual(najpodobnejsa(stranke, "Berta"), "Fanči") self.assertEqual(najpodobnejsa(stranke, "Cilka"), "Helga") self.assertEqual(najpodobnejsa(stranke, "Dani"), "Ema") self.assertEqual(najpodobnejsa(stranke, "Ema"), "Dani") self.assertEqual(najpodobnejsa(stranke, "Fanči"), "Berta") self.assertEqual(najpodobnejsa(stranke, "Helga"), "Cilka") class Test02Obvezna(unittest.TestCase): def test_vsi_artikli(self): self.assertEqual( vsi_artikli(stranke), {"stol", "miza", "metla", "sesalec", "vedro", "flavta", "pesmarica", "top", "krogla", "frnikole", "trobenta"} ) self.assertEqual( vsi_artikli({"Ana": {"krogla", "frnikole"}}), {"krogla", "frnikole"} ) self.assertEqual(vsi_artikli({"Ana": {"krogla"}}), {"krogla"}) self.assertEqual(vsi_artikli({"Ana": set()}), set()) self.assertEqual(vsi_artikli({}), set()) def test_kupljeno_poleg(self): self.assertEqual(kupljeno_poleg(stranke, "stol"), {"miza", "metla", "sesalec"}) self.assertEqual(kupljeno_poleg(stranke, "miza"), {"stol", "metla", "sesalec"}) self.assertEqual(kupljeno_poleg(stranke, "metla"), {"miza", "stol", "sesalec", "vedro", "krogla", "top"}) self.assertEqual(kupljeno_poleg(stranke, "flavta"), {"pesmarica"}) self.assertEqual(kupljeno_poleg(stranke, "top"), {"krogla", "metla"}) self.assertEqual(kupljeno_poleg(stranke, "krogla"), {"top", "metla", "frnikole"}) self.assertEqual(kupljeno_poleg(stranke, "postelja"), set()) self.assertEqual(kupljeno_poleg({}, "postelja"), set()) self.assertEqual(kupljeno_poleg({"x": {"postelja"}}, "postelja"), set()) self.assertEqual(kupljeno_poleg({"x": {"postelja", "prt"}}, "postelja"), {"prt"}) def test_nasveti(self): self.assertEqual( nasveti(stranke), {'krogla': {'metla', 'top', 'frnikole'}, 'metla': {'sesalec', 'vedro', 'miza', 'krogla', 'stol', 'top'}, 'stol': {'metla', 'sesalec', 'miza'}, 'flavta': {'pesmarica'}, 'pesmarica': {'flavta'}, 'frnikole': {'krogla'}, 'sesalec': {'metla', 'vedro', 'stol', 'miza'}, 'vedro': {'metla', 'sesalec'}, 'top': {'krogla', 'metla'}, 'miza': {'metla', 'sesalec', 'stol'}} ) self.assertEqual( nasveti({"Ana": {"krogla", "frnikole"}}), {'krogla': {'frnikole'}, 'frnikole': {'krogla'}} ) self.assertEqual(nasveti({"Ana": {"krogla"}}), {}) self.assertEqual(nasveti({"Ana": set()}), {}) class Test03Dodatna(unittest.TestCase): def test_najpodobnejse(self): self.assertEqual(najpodobnejse(stranke, "Berta", 1), {"Fanči"}) self.assertEqual(najpodobnejse(stranke, "Dani", 1), {"Ema"}) self.assertEqual(najpodobnejse(stranke, "Ema", 1), {"Dani"}) self.assertEqual(najpodobnejse(stranke, "Fanči", 1), {"Berta"}) self.assertEqual(najpodobnejse(stranke, "Helga", 1), {"Cilka"}) self.assertEqual(najpodobnejse(stranke, "Ana", 2), {"Berta", "Fanči"}) self.assertEqual(najpodobnejse(stranke, "Iva", 8), set(stranke) - {"Iva"}) def test_vse_najpodobnejse(self): self.assertEqual(vse_najpodobnejse(stranke, "Ana"), {"Fanči", "Berta"}) if __name__ == "__main__": unittest.main()