def test_validation(self): with self.assertRaisesRegex(AttributeError, "'input' attribute should be a list"): backtrack = Backtrack('1,2,3,4,5') with self.assertRaisesRegex(AttributeError, "'input' attribute should be a list"): backtrack = Backtrack([]) with self.assertRaisesRegex(ValueError, "The element on position 0 should be integer or float number"): backtrack = Backtrack(['1asdf', 2, 3, 4, 5])
def test_algorithm_valley(self): backtrack = Backtrack([1, 1, 2, 3, 4, 5]) backtrack._Backtrack__permutation = [3, 1, 1, 2, 4, 5] self.assertTrue(backtrack.valley()) backtrack._Backtrack__permutation = [3, 1, 2, 1, 4, 5] self.assertFalse(backtrack.valley())
def test_initialization(self): backtrack = Backtrack([1, 2, 3, 4, 5]) self.assertIsInstance(backtrack, Backtrack)
def test_determine_inline(self): backtrack = Backtrack([1, 1, 2, 3, 4, 5]) backtrack.determine_inline() self.assertEqual(len(backtrack.result), 28)
def test_minimum_array(self): backtrack = Backtrack([1, 1, 2, 3, 4, 5]) self.assertEqual(backtrack.minimum_array(2), [1, 1])
def test_properties(self): backtrack = Backtrack([1, 2, 3, 4, 5]) self.assertEqual(backtrack.array, [1, 2, 3, 4, 5]) self.assertEqual(backtrack.result, [])
__author__ = 'Călin Sălăgean' from lib.backtrack import Backtrack while True: command = input('Type exit or press enter to continue: ') if command == 'exit': break list = [] while True: elem = input('Integer or float: ') try: int(elem) float(elem) list.append(elem) except: print('Continue!') break if len(list): backtrack = Backtrack(list) backtrack.determine() print(backtrack.result) else: print('One element required')