def add_tests(self): CLI.fancy_print('Enter one of these options', '[1] Add test manually', '[2] Add test with generators', '[3] Go back') opt = int(input()) if opt == 1: self.add_manual_tests() self.add_tests() return elif opt == 2: CLI.fancy_print( 'Enter following information in separate lines', 'folder name, tests will be generated in SDPA/testSet/folder_name', 'prefix name of tests', 'description for tests') folder = input() prefix_test_name = input() description = input() try: generate_tests(test_set_directory=os.path.join( self.root_dir, "SDPA", "testSet"), folder=folder, prefix_test_name=prefix_test_name, description=description) self.back_to_main() return except: print("generating tests not successful") self.press_enter_to_continue() elif opt == 3: return else: self.add_tests() return
def test_stack_add(self): tests = generate_tests() for test in tests: with self.subTest(test=test): stack: AbstractStack = make_stack() self.assertTrue(stack.isempty()) for val in test: stack.push(val) self.assertFalse(stack.isempty()) self.assertEqual(stack.peek(), val)
def test_queue_add(self): tests = generate_tests() for test in tests: with self.subTest(test=test): q: AbstractQueue = make_queue() self.assertTrue(q.isempty()) for val in test: q.add(val) self.assertFalse(q.isempty()) self.assertEqual(q.peek(), test[0])
def test_stack_remove(self): tests = generate_tests() for test in tests: with self.subTest(test=test): stack: AbstractStack = make_stack(test) for val in reversed(test): self.assertFalse(stack.isempty()) self.assertEqual(stack.peek(), val) self.assertEqual(stack.pop(), val) self.assertTrue(stack.isempty()) with self.assertRaises(Exception): stack.pop()
def test_queue_remove(self): tests = generate_tests() for test in tests: with self.subTest(test=test): q: AbstractQueue = make_queue(test) for val in test: self.assertFalse(q.isempty()) self.assertEqual(q.peek(), val) self.assertEqual(q.remove(), val) self.assertTrue(q.isempty()) with self.assertRaises(Exception): q.remove()
def test_min(self): tests = generate_tests() for test in tests: with self.subTest(test=test): stack = StackMin() for i in range(len(test)): stack.push(test[i]) self.assertEqual(stack.min(), min(test[:i + 1])) for i in range(len(test)): self.assertEqual(stack.min(), min(test[:len(test) - i])) stack.pop() with self.assertRaises(Exception): stack.min()
def test_stack_add_remove(self): tests = generate_tests() test1, test2, test3 = tests[-1], tests[-2], tests[-3] stack: AbstractStack = make_stack(test1) self.assertEqual(stack.pop(), test1[-1]) for val in test2: stack.push(val) self.assertEqual(stack.pop(), test2[-1]) self.assertEqual(stack.pop(), test2[-2]) for val in test3: stack.push(val) for val in reversed(test3): self.assertEqual(stack.pop(), val) for val in reversed(test2[:len(test2) - 2]): self.assertEqual(stack.pop(), val) for val in reversed(test1[:len(test1) - 1]): self.assertEqual(stack.pop(), val)
def test_queue_add_remove(self): tests = generate_tests() test1, test2, test3 = tests[-1], tests[-2], tests[-3] q: AbstractQueue = make_queue(test1) self.assertEqual(q.remove(), test1[0]) for val in test2: q.add(val) self.assertEqual(q.remove(), test1[1]) self.assertEqual(q.remove(), test1[2]) for val in test3: q.add(val) for val in test1[3:]: self.assertEqual(q.remove(), val) for val in test2: self.assertEqual(q.remove(), val) for val in test3: self.assertEqual(q.remove(), val)
def loadTestsFromFile(self, file): return test_generator.generate_tests(file, self.url_substring, self.required_tags)