def test_bst(): tree = BinarySearchTree() data_list = [random.randint(0, 10000) for _ in range(1000)] for elem in data_list: tree.insert(elem) for elem in data_list: assert tree.find(elem).data == elem assert is_bst(tree) for elem in data_list: tree.delete(elem) assert is_bst(tree)
def test_balanced(): bst = BinarySearchTree() bst.put(13) bst.put(10) bst.put(15) bst.put(5) bst.put(11) bst.put(16) bst.put(4) bst.put(6) bst.put(7, False) assert bst.is_unbalanced(bst.root) is True bst.delete(7) bst.put(7, True) assert bst.is_unbalanced(bst.root) is False
def test_delete(): bst = BinarySearchTree() bst.put(10) bst.put(4) bst.put(17) bst.put(1) bst.put(9) bst.put(18) bst.put(12) bst.delete(4) bst.put(4) bst.delete(18) bst.put(18) bst.delete(1) bst.delete(10) bst.delete(4) assert dfs(bst) == [9, 12, 17, 18]