class TestBST(TestCase): def setUp(self): self.list1 = [3, 2, 1, 5, 6, 7] # Creating the BST1 self.BST1 = BST(dtype=int, key=4) for val in self.list1: self.BST1 = self.BST1.insert(val) def test_insert(self): self.assertEqual(self.BST1.key, 4) self.assertEqual(self.BST1.left.key, 3) self.assertEqual(self.BST1.right.key, 5) self.BST1 = self.BST1.insert(9) self.assertEqual(self.BST1.right.right.right.right.key, 9) def test_preOrderTraversal(self): preOrderValues = [4, 3, 2, 1, 5, 6, 7] self.assertEqual(self.BST1.PreOT(), ', '.join(str(i) for i in preOrderValues)) def test_inOrderTraversal(self): inOrderValues = [1, 2, 3, 4, 5, 6, 7] self.assertEqual(self.BST1.IOT(), ', '.join([str(i) for i in inOrderValues])) def test_postOrderTraversal(self): postOrderValues = [1, 2, 3, 7, 6, 5, 4] self.assertEqual(self.BST1.PostOT(), ', '.join([str(i) for i in postOrderValues])) def tearDown(self): del self.list1