class Ulomek: def __init__(self, stevec, imenovalec): self.stevec = stevec self.imenovalec = imenovalec self.okrajsaj() def okrajsaj(self): def gcd(a, b): while b: a, b = b, a % b return a g = gcd(self.stevec, self.imenovalec) self.stevec //= g self.imenovalec //= g def __str__(self): return "{}/{}".format(self.stevec, self.imenovalec) __repr__ = __str__ import unittest class Tests130828(unittest.TestCase): def test_spremembe(self): self.assertEqual(sprememb_smeri([]), 0) self.assertEqual(sprememb_smeri([1]), 0) self.assertEqual(sprememb_smeri([1, 2]), 0) self.assertEqual(sprememb_smeri([2, 1]), 0) self.assertEqual(sprememb_smeri([1, 2, 3]), 0) self.assertEqual(sprememb_smeri([3, 2, 1]), 0) self.assertEqual(sprememb_smeri([1, 2, 3, 4]), 0) self.assertEqual(sprememb_smeri([4, 3, 2, 1]), 0) self.assertEqual(sprememb_smeri([1, 5, 6, 7]), 0) self.assertEqual(sprememb_smeri([1, 5, 6, 7, 11, 17]), 0) self.assertEqual(sprememb_smeri([1, 2, 0]), 1) self.assertEqual(sprememb_smeri([1, 2, 0, -1]), 1) self.assertEqual(sprememb_smeri([1, 2, 0, -1, -5]), 1) self.assertEqual(sprememb_smeri([1, 2, 0, -1, 10]), 2) self.assertEqual(sprememb_smeri([1, 2, 0, -1, 10, 5, -8]), 3) self.assertEqual(sprememb_smeri([-1, -2, 0, 1, -10, -5, 8]), 3) self.assertEqual(sprememb_smeri([1, 2, 3, 4, 5, 6, 7, 8, 9, 5]), 1) self.assertEqual(sprememb_smeri([-1, -2, -3, -4, -5, -6, -7, -8, -9, -5]), 1) self.assertEqual(sprememb_smeri([2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5]), 2) def test_nedostopna(self): self.assertSetEqual(nedostopna({"a": {"b", "c"}}), {"a"}) self.assertSetEqual(nedostopna({"a": {"a", "b", "c"}}), set()) self.assertSetEqual(nedostopna({"a": {"b", "c"}, "b": {"c"}}), {"a"}) self.assertSetEqual( nedostopna({"a": {"b", "c"}, "b": {"c"}, "c": {"a"}}), set()) self.assertSetEqual(nedostopna({"a": {"c"}, "b": {"a", "c", "e", "f"}, "c": {"d", "e"}, "e": {"a"}}), {"b"}) self.assertSetEqual(nedostopna({"a": {"b"}}), {"a"}) self.assertSetEqual(nedostopna({"a": {"a"}}), set()) self.assertSetEqual(nedostopna({}), set()) def test_je_fibo(self): self.assertTrue(je_fibo([])) self.assertTrue(je_fibo([1])) self.assertTrue(je_fibo([1, 1])) self.assertTrue(je_fibo([1, 1, 2])) self.assertTrue(je_fibo([2, 5, 7, 12, 19])) self.assertTrue(je_fibo([1, 0, 1, 1, 2])) self.assertTrue(je_fibo([0, 0, 0, 0, 0])) self.assertFalse(je_fibo([1, 1, 1])) self.assertFalse(je_fibo([1, 1, 2, 2])) self.assertFalse(je_fibo([1, 1, 2, 3, 6, 9, 15])) def test_po_stolpcih(self): self.assertListEqual(po_stolpcih(["C3"]), [0, 0, 1, 0, 0, 0, 0, 0]) self.assertListEqual(po_stolpcih(["C3", "H8", "B2", "C3"]), [0, 1, 2, 0, 0, 0, 0, 1]) self.assertListEqual(po_stolpcih([]), [0, 0, 0, 0, 0, 0, 0, 0]) def test_naj_stolpec(self): self.assertEqual(naj_stolpec(["C3"]), "C") self.assertEqual(naj_stolpec(["C3", "H8", "B2", "C3"]), "C") self.assertIsNone(naj_stolpec([])) def test_ulomek(self): ulomek = Ulomek(3, 8) ulomek.pristej(Ulomek(1, 4)) self.assertEqual("5/8", str(ulomek)) ulomek.pristej(Ulomek(1, 8)) self.assertEqual("3/4", str(ulomek)) ulomek.pomnozi(Ulomek(1, 2)) self.assertEqual("3/8", str(ulomek)) ulomek.pomnozi(Ulomek(4, 1)) self.assertEqual("3/2", str(ulomek))