import unittest class Test(unittest.TestCase): def test_lihih(self): self.assertEqual(0, lihih([])) self.assertEqual(0, lihih([4])) self.assertEqual(0, lihih([4, 8])) self.assertEqual(1, lihih([3, 4, 8])) self.assertEqual(1, lihih([3, 4, 8])) self.assertEqual(1, lihih([8, 3, 4, 8])) self.assertEqual(2, lihih([1, 8, 3, 4, 8])) self.assertEqual(3, lihih([7, 1, 8, 3, 4, 8])) try: lihih(list(range(3000))) self.fail("Funkcija mora biti rekurzivna") except RecursionError: pass except: raise def test_vsaj_n_lihih(self): global lihih try: plihih = globals().get("lihih", None) def lihih(s): self.fail("Funkcija vsaj_n_lihih naj ne kliče funkcije lihih; kar sama naj dela!") self.assertTrue(vsaj_n_lihih([], 0)) self.assertTrue(vsaj_n_lihih([4, 3, 6, 7], 0)) self.assertTrue(vsaj_n_lihih([4, 3, 6, 7], 1)) self.assertTrue(vsaj_n_lihih([4, 3, 6, 7], 2)) self.assertFalse(vsaj_n_lihih([4, 3, 6, 7], 3)) self.assertTrue(vsaj_n_lihih([4, 3, 6, 7, 11, 8], 3)) finally: lihih = plihih if __name__ == "__main__": unittest.main()