예제 #1
0
    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
예제 #2
0
 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)
예제 #3
0
 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])
예제 #4
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()
예제 #5
0
 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()
예제 #6
0
 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()
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 def loadTestsFromFile(self, file):
     return test_generator.generate_tests(file, self.url_substring, self.required_tags)