def testbstClone(self): bst = BinarySearchTree() l = [8, 4, 2, 1, 3, 6, 5, 7, 12, 10, 9, 11, 14, 13, 15] for d in l: bst.insert(d) clone = bst.bstClone() self.assertTrue(bst.sameTree(clone))
def testSameTree(self): treeOne = BinarySearchTree() l = [8, 4, 2, 1, 3, 6, 5, 7, 12, 10, 9, 11, 14, 13, 15] for d in l: treeOne.insert(d) treeTwo = BinarySearchTree() for d in l: treeTwo.insert(d) self.assertTrue(treeOne.sameTree(treeTwo)) self.assertTrue(treeTwo.sameTree(treeOne)) treeTwo.insert(100) self.assertFalse(treeTwo.sameTree(treeOne)) treeOne.insert(100) self.assertTrue(treeTwo.sameTree(treeOne))
def testCreateBSTFromTwoTraversals(self): inOrder = [1, 2, 3, 4, 5, 6 ,7 ,8 ,9, 10, 11, 12, 13, 14, 15] preOrder = [8, 4, 2, 1, 3, 6, 5, 7, 12, 10, 9, 11, 14, 13, 15] bstFromTraversals = BinarySearchTree.createBSTFromTwoTraversals(inOrder, preOrder, 0, len(inOrder)-1) bst = BinarySearchTree() l = [8, 12, 4, 14, 2, 6, 10, 9, 7, 5, 11, 13, 3, 1, 15] for v in l: bst.insert(v) self.assertTrue(bst.sameTree(bstFromTraversals))
def testSpaceEfficientTraversal(self): bstOne = BinarySearchTree() l = [8, 4, 2, 1, 3, 6, 5, 7, 12, 10, 9, 11, 14, 13, 15] for d in l: bstOne.insert(d) bstTwo = bstOne clone = bstOne genOne = bstTwo.spaceEfficientTraversal() genTwo = bstOne.inOrder() l.sort() # inOrder gives the elements in sorted Order always in BinaryTree for i in l: self.assertEqual(i, genOne.next()) self.assertEqual(i, genTwo.next()) #create a copyTree method in the API and use it to test the similarity[Deep Copy] self.assertTrue(bstOne.sameTree(clone))