import unittest import os import zipfile import time class TestSmucanje(unittest.TestCase): @classmethod def setUpClass(cls): base, ext = os.path.splitext(os.path.basename(__file__)) zf = zipfile.ZipFile(__file__ + ".zip", "a", zipfile.ZIP_DEFLATED) zf.write(__file__, "{}.{}{}".format(base, int(time.time()), ext)) zf.close() def test_rekurzivna_nepadajoca(self): try: nepadajoca("A" * 2020) self.fail("Funkcija 'nepadajoca' mora biti rekurzivna!") except RuntimeError: pass def test_nepadajoca(self): self.assertTrue(nepadajoca("")) self.assertTrue(nepadajoca("A")) self.assertTrue(nepadajoca("AA")) self.assertTrue(nepadajoca("AABC")) self.assertTrue(nepadajoca("ABBCCCCCD")) self.assertFalse(nepadajoca("BA")) self.assertFalse(nepadajoca("ABA")) self.assertFalse(nepadajoca("BCA")) self.assertFalse(nepadajoca("BAC")) def test_rekurzivna_govorica(self): try: govorica("A" * 2020, {("A", "A")}) self.fail("Funkcija 'govorica' mora biti rekurzivna!") except RuntimeError: pass def test_govorica(self): znanci = {("A", "B"), ("A", "D"), ("B", "C"), ("B", "D"), ("C", "D"), ("B", "A"), ("D", "A"), ("C", "B"), ("D", "B"), ("D", "C")} self.assertTrue(govorica("ABCD", znanci)) self.assertTrue(govorica("DCBA", znanci)) self.assertTrue(govorica("DC", znanci)) self.assertTrue(govorica("CB", znanci)) self.assertTrue(govorica("AB", znanci)) self.assertFalse(govorica("ACDB", znanci)) self.assertFalse(govorica("DACB", znanci)) self.assertFalse(govorica("BDAC", znanci)) def test_sodo_liho(self): self.assertTrue(sodo_liho([2, 1, 6, 3, 4, 1, 0, 1])) self.assertTrue(sodo_liho([2, 1, 6, 3, 4, 1, 0])) self.assertTrue(sodo_liho([2, 1, 6, 3])) self.assertTrue(sodo_liho([2, 1])) self.assertTrue(sodo_liho([2])) self.assertTrue(sodo_liho([])) self.assertFalse(sodo_liho([1, 6, 3, 1, 4])) self.assertFalse(sodo_liho([1, 6, 3, 1, 1])) self.assertFalse(sodo_liho([1, 6, 4, 1, 1])) self.assertFalse(sodo_liho([1, 6, 4, 4, 1])) self.assertFalse(sodo_liho([1, 6, 3])) self.assertFalse(sodo_liho([1]))