Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.86 KB | None | 0 0
  1. import unittest
  2. import os
  3. import zipfile
  4. import time
  5.  
  6. def nepadajoca(s):
  7.     if len(s) in [0,1]:
  8.         return True
  9.     if s[0] <= s[1]:
  10.         return nepadajoca(s[1:])
  11.     return False
  12.  
  13. def govorica(pot,znanci):
  14.     for oseba1, oseba2 in zip(pot, pot[1:]):
  15.         if (oseba1, oseba2) not in znanci:
  16.             return False
  17.         else: govorica(pot[1:], znanci)
  18.     return True
  19.  
  20.  
  21. def sodo_liho(s):
  22.     return all(n % 2 for n in s[1::2]) and not any(n % 2 for n in s[::2])
  23.  
  24. class TestSmucanje(unittest.TestCase):
  25.     @classmethod
  26.     def setUpClass(cls):
  27.         base, ext = os.path.splitext(os.path.basename(__file__))
  28.         zf = zipfile.ZipFile(__file__ + ".zip", "a", zipfile.ZIP_DEFLATED)
  29.         zf.write(__file__, "{}.{}{}".format(base, int(time.time()), ext))
  30.         zf.close()
  31.  
  32.     def test_rekurzivna_nepadajoca(self):
  33.         try:
  34.             nepadajoca("A" * 2020)
  35.             self.fail("Funkcija 'nepadajoca' mora biti rekurzivna!")
  36.         except RuntimeError:
  37.             pass
  38.  
  39.     def test_nepadajoca(self):
  40.         self.assertTrue(nepadajoca(""))
  41.         self.assertTrue(nepadajoca("A"))
  42.         self.assertTrue(nepadajoca("AA"))
  43.         self.assertTrue(nepadajoca("AABC"))
  44.         self.assertTrue(nepadajoca("ABBCCCCCD"))
  45.  
  46.         self.assertFalse(nepadajoca("BA"))
  47.         self.assertFalse(nepadajoca("ABA"))
  48.         self.assertFalse(nepadajoca("BCA"))
  49.         self.assertFalse(nepadajoca("BAC"))
  50.  
  51.     def test_rekurzivna_govorica(self):
  52.         try:
  53.             govorica("A" * 2020, {("A", "A")})
  54.             self.fail("Funkcija 'govorica' mora biti rekurzivna!")
  55.         except RuntimeError:
  56.             pass
  57.  
  58.     def test_govorica(self):
  59.         znanci = {("A", "B"), ("A", "D"), ("B", "C"), ("B", "D"), ("C", "D"),
  60.                   ("B", "A"), ("D", "A"), ("C", "B"), ("D", "B"), ("D", "C")}
  61.  
  62.         self.assertTrue(govorica("ABCD", znanci))
  63.         self.assertTrue(govorica("DCBA", znanci))
  64.         self.assertTrue(govorica("DC", znanci))
  65.         self.assertTrue(govorica("CB", znanci))
  66.         self.assertTrue(govorica("AB", znanci))
  67.  
  68.         self.assertFalse(govorica("ACDB", znanci))
  69.         self.assertFalse(govorica("DACB", znanci))
  70.         self.assertFalse(govorica("BDAC", znanci))
  71.  
  72.     def test_sodo_liho(self):
  73.         self.assertTrue(sodo_liho([2, 1, 6, 3, 4, 1, 0, 1]))
  74.         self.assertTrue(sodo_liho([2, 1, 6, 3, 4, 1, 0]))
  75.         self.assertTrue(sodo_liho([2, 1, 6, 3]))
  76.         self.assertTrue(sodo_liho([2, 1]))
  77.         self.assertTrue(sodo_liho([2]))
  78.         self.assertTrue(sodo_liho([]))
  79.  
  80.         self.assertFalse(sodo_liho([1, 6, 3, 1, 4]))
  81.         self.assertFalse(sodo_liho([1, 6, 3, 1, 1]))
  82.         self.assertFalse(sodo_liho([1, 6, 4, 1, 1]))
  83.         self.assertFalse(sodo_liho([1, 6, 4, 4, 1]))
  84.         self.assertFalse(sodo_liho([1, 6, 3]))
  85.         self.assertFalse(sodo_liho([1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement