def test_find(self): bst = BinarySearchTree() seed(0) data = sample(range(1, 400), k=123) for datum in data: bst.add(datum) self.assertEqual(bst.find(data[0]).key, data[0]) self.assertEqual(bst.find(401), None)
def test_recursive_find(self): bst = BinarySearchTree() seed(0) data = sample(range(1, 400), k=20) rc.recursion_count = 0 for datum in data: bst.add(datum) rc.recursion_count = 0 bst.find(data[11]) self.assertGreater(rc.recursion_count, 0)
def test_find_nontrivial_tree(self): bst = BinarySearchTree() data = [20, 50, 1, 150, 42] for d in data: bst.insert(d) for d in data: self.assertEqual(bst.find(d).getData(), d)
def test_find_present_value(self): bst = BinarySearchTree() seed(0) data = sample(range(1, 400), k=123) for datum in data: bst.add(datum) self.assertEqual(bst.find(data[0]).data, data[0])
def test_remove(self): bst = BinarySearchTree() seed(0) data = sample(range(1, 100), k=10) for datum in data: bst.add(datum) bst.remove(data[0]) self.assertEqual(bst.find(data[0]), None)
def test_find_single_tree(self): bst = BinarySearchTree(10) self.assertNotEqual(bst.find(10), None) self.assertEqual(bst.find(10).getData(), 10)
def test_find_empty_tree(self): bst = BinarySearchTree() self.assertEqual(bst.find(10), None)
#!/usr/bin/env python3 import random from binarysearchtree import BinarySearchTree min = 0 max = 100 size = 10 array = [random.randint(min, max) for x in range(0, size)] print(array) bst = BinarySearchTree() for element in array: bst.add(element) elementToFind = array[random.randint(0, len(array) - 1)] node = bst.find(elementToFind) keyLargerThanK = bst.keyLargerThanK(elementToFind) if node is not None: print(node.getData()) if keyLargerThanK is not None: print("key larger than " + str(elementToFind) + " : " + str(keyLargerThanK.getData())) else: print("larger element not found") else: print(str(elementToFind) + " not found")