def BSTFullTest(): """ Various tests for the BST class, including insertion, deletion, inorder walks, etc. For BST class testing. """ print "\nTesting BST: random tests" for i in range(20): tree = BST() passed = BSTRandomTest(tree, 1000) if passed: print "Passed random test", i + 1 print "\nTesting BST: various operations" tree = BST() for i in range(20): v = random.randint(-99, 99) tree.insert(Node(v)) print "Height =", tree.height() print "Minimum =", tree.minimum() print "Maximum =", tree.maximum() print "In-order Walk =", tree.inorderWalk() print "Random tree =" print tree arr = [21, 45, 1, 34, 8, -1, 99, -54, 60, 2] tree = BSTFromArray(arr) print("Test tree:") print(tree) print("Root:") print(tree._r) print("In order walk:") print(tree.inorderWalk()) print("Min, max:") print(str(tree.minimum()), str(tree.maximum())) print("Height = ", tree.height()) print("Successor of 34:") n = tree.search(34) s = tree.successor(n) print(s) print("Successor of 100:") n = tree.search(100) s = tree.successor(n) print(s) print("Predecessor of 34:") n = tree.search(34) s = tree.predecessor(n) print(s) print("Predecessor of -54:") n = tree.search(-54) s = tree.predecessor(n) print(s) print("Find and delete 34:") n = tree.search(34) print(n) tree.delete(n) print(tree.inorderWalk()) print("Find and delete 21:") n = tree.search(21) s = tree.successor(n) print(n) print(s) tree.delete(n) print(tree.inorderWalk()) print(tree._r) print(tree._r.right) print(tree._r.right.parent)