def test_search_with_7_items(self): # Create a complete binary search tree of 7 items in level-order items = [4, 2, 6, 1, 3, 5, 7] bst = BinarySearchTree(items) for item in items: assert bst.search(item) == item assert bst.search(8) is None
def test_search_with_7_strings(self): # Create a complete binary search tree of 7 items in level-order items = ['D', 'B', 'F', 'A', 'C', 'E', 'G'] bst = BinarySearchTree(items) for item in items: assert bst.search(item) == item assert bst.search('H') is None
def test_search_with_3_items(self): # Create a complete binary search tree of 3 items in level-order items = [2, 1, 3] bst = BinarySearchTree(items) assert bst.search(1) == 1 assert bst.search(2) == 2 assert bst.search(3) == 3 assert bst.search(4) is None
def test_search_with_3_strings(self): # Create a complete binary search tree of 3 items in level-order items = ['B', 'A', 'C'] bst = BinarySearchTree(items) assert bst.search('A') == 'A' assert bst.search('B') == 'B' assert bst.search('C') == 'C' assert bst.search('D') is None
def test_search_method(self): new_node = Node(3) bst = BinarySearchTree(new_node) right_node = Node(4) bst.insert(bst, right_node) left_node = Node(2) bst.insert(bst, left_node) res = bst.search(bst, 2) self.assertEqual(res.val, 2) res = bst.search(bst, 4) self.assertEqual(res.val, 4) res = bst.search(bst, 5) self.assertIsNone(res)
def test_insert_with_repeated_items(self): items = [1, 2, 2] bst = BinarySearchTree(items) assert bst.search(2)[0] == 2 assert bst.items_in_order() == [1, 2, 2]