def test_initiation_invalid(self): with self.assertRaises(ValueError) as error: bst = BinarySearchTree(data=None)
def test_insert_valid(self): bst = BinarySearchTree(data=5) bst.insert(3) self.assertEqual(bst.root.left.data, 3) bst.insert(7) self.assertEqual(bst.root.right.data, 7) bst.insert(1) self.assertEqual(bst.root.left.left.data, 1) bst.insert(2) self.assertEqual(bst.root.left.left.right.data, 2) bst.insert(9) self.assertEqual(bst.root.right.right.data, 9)
def test_delete_successful_left_subtree(self): bst = BinarySearchTree(data=5) bst.insert(3) bst.insert(7) bst.insert(1) bst.insert(4) bst.insert(2) bst.insert(9) bst.insert(6) self.assertIsNotNone(bst.delete(3, bst.root)) self.assertIsNone(bst.root.left.right) self.assertEqual(bst.root.left.data, 4) self.assertIsNotNone(bst.delete(4, bst.root)) self.assertEqual(bst.root.left.data, 1) self.assertIsNotNone(bst.delete(1, bst.root)) self.assertIsNotNone(bst.delete(2, bst.root))
def test_initiation(self): bst = BinarySearchTree(data=5) self.assertEqual(bst.root.data, 5)
def test_get_max_empty_bst(self): bst = BinarySearchTree(data=5) self.assertIsNone(bst.get_max(bst.root.right))
def test_find_inorder_successor(self): bst = BinarySearchTree(data=5) bst.insert(3) bst.insert(7) bst.insert(1) bst.insert(2) bst.insert(9) bst.insert(6) self.assertEqual(bst.findInorderSuccessor(bst.root.right).data, 6) self.assertEqual(bst.findInorderSuccessor(bst.root).data, 1) self.assertEqual(bst.findInorderSuccessor(bst.root.left).data, 1) self.assertEqual(bst.findInorderSuccessor(bst.root.left.left).data, 1)
def test_contains(self): binary_search_tree = BinarySearchTree() binary_search_tree.add(50) binary_search_tree.add(100) binary_search_tree.add(0) binary_search_tree.add(75) binary_search_tree.add(25) binary_search_tree.add(88) binary_search_tree.add(33) binary_search_tree.add(66) binary_search_tree.add(11) assert (binary_search_tree.contains(50) is True) assert (binary_search_tree.contains(100) is True) assert (binary_search_tree.contains(0) is True) assert (binary_search_tree.contains(75) is True) assert (binary_search_tree.contains(25) is True) assert (binary_search_tree.contains(88) is True) assert (binary_search_tree.contains(33) is True) assert (binary_search_tree.contains(66) is True) assert (binary_search_tree.contains(11) is True) assert (binary_search_tree.contains(99) is False)
def tree(): tree = BinarySearchTree() tree.add(10) tree.add(5) tree.add(15) return tree
def test_empty(): bst = BinarySearchTree() assert bst.size == 0 assert bst.root is None
def test_add(self): binary_search_tree = BinarySearchTree() binary_search_tree.add(50) binary_search_tree.add(100) binary_search_tree.add(0) binary_search_tree.add(75) binary_search_tree.add(25) binary_search_tree.add(88) binary_search_tree.add(33) binary_search_tree.add(66) binary_search_tree.add(11) assert (binary_search_tree.size == 9)
def test_contains(): bst = BinarySearchTree([5, 7, 3]) assert bst.contains(5) == True assert bst.contains(99) == False
def main(): # creating a binary search tree data = [17, 13, 10, 15, 4, 11, 16, 21, 24, 23, 27, 25, 26] bst = BinarySearchTree(data) print(bst.breadth_first_list()) # Removing a few items... print('\nDeleting a few items...') bst.remove(4) bst.remove(10) bst.remove(27) bst.remove(13) print(bst.breadth_first_list()) print("\nadding 45 to BST...") bst.add(45) print(bst.breadth_first_list()) print('\nTHe height of the tree :', bst.height) print('\nBST contains 45:', bst.contains(45))
def test_instantiate_empty(): tree = BinarySearchTree() actual = tree.root expected = None assert actual == expected
def test_insert_invalid(self): bst = BinarySearchTree(data=5) with self.assertRaises(ValueError) as error: bst.insert(data=None)
def test_construction(self): binary_search_tree = BinarySearchTree() assert (binary_search_tree.size == 0) assert (binary_search_tree.root is None)
def test_find_successful_different_node(self): bst = BinarySearchTree(data=5) bst.insert(3) bst.insert(7) bst.insert(1) bst.insert(2) bst.insert(9) self.assertEqual(bst.find(1, bst.root.left), bst.root.left.left) self.assertEqual(bst.find(9, bst.root.right), bst.root.right.right) self.assertIsNone(bst.find(9, bst.root.left))
def test_add_to_empty(): tree = BinarySearchTree() tree.add("apples") actual = tree.root.value expected = "apples" assert actual == expected