def test_delete_on_complex_tree(): """Test that the selected node is deleted.""" from bst import Bst nodes = [10, 9, 15, 2, 6, 12, 20, 1, 3] new_bst = Bst() for item in nodes: new_bst.insert(item) new_bst.delete(2) assert new_bst.contains(2) is False
def test_delete_on_range(): """Test that the node selected is removed from the tree.""" from bst import Bst new_bst = Bst() for items in range(20): new_bst.insert(items) new_bst.delete(10) assert new_bst.contains(10) is False assert new_bst.size == 19
def test_delete(): """Test that the selected node is deleted.""" from bst import Bst new_bst = Bst() new_bst.insert(1) new_bst.delete(1) assert new_bst.contains(1) is False assert new_bst.head is None assert new_bst.size == 0
def test_rotated_root_after_delete_l2(): """Test that tree rotates as expected after deleting from heavier side.""" tree = Bst() for val in [4, 5, 2, 3]: tree.insert(val) assert tree.value == 4 tree.delete(5) assert all([tree.value == 3, tree.left_child.value == 2, tree.right_child.value == 4])
def test_rotated_root_after_delete_ll(): """Test that tree rotates as expected after deleting from heavier side.""" tree = Bst() for val in [3, 4, 2, 1]: tree.insert(val) assert tree.value == 3 tree.delete(4) assert all([tree.value == 2, tree.left_child.value == 1, tree.right_child.value == 3])
def test_rotated_root_after_delete_rl(): """Test that tree rotates as expected after deleting from lighter side.""" tree = Bst() for val in [2, 1, 5, 4]: tree.insert(val) assert tree.value == 2 tree.delete(1) assert all([tree.value == 4, tree.left_child.value == 2, tree.right_child.value == 5])
def test_edge_cases_delete_tree(): """Test deletion on tree from EdgeCases example tree.""" from bst import Bst new_bst = Bst() new_bst.insert(10) new_bst.insert(20) new_bst.insert(5) new_bst.delete(10) assert new_bst.contains(10) is False assert new_bst.size == 2 assert new_bst.head.value == 20 assert new_bst.head.right is None assert new_bst.head.left.value == 5
def test_delete_on_small_range(): """Test that the node selected is removed from the tree.""" from bst import Bst new_bst = Bst() for items in range(5): new_bst.insert(items) new_bst.delete(1) assert new_bst.contains(1) is False assert new_bst.size == 4 assert new_bst.head.value == 2 assert new_bst.head.left.value == 0 assert new_bst.head.right.value == 3 assert new_bst.head.right.right.value == 4
def test_off_balance_delete_tree_non_head(): """Test deletion on tree from complex tree.""" from bst import Bst new_bst = Bst() new_bst.insert(10) new_bst.insert(20) new_bst.insert(5) new_bst.insert(15) new_bst.insert(25) new_bst.delete(20) assert new_bst.contains(20) is False assert new_bst.size == 4 assert new_bst.head.value == 10 assert new_bst.head.right.value == 25 assert new_bst.head.left.value == 5 assert new_bst.head.right.left.value == 15
# bst.put(5, "딸기") # bst.put(70, "키위") print("InOrder output >> ", end="") bst.inOrder(bst.root) print("\n15 ?? :", bst.get(50)) # delnode = bst.delete_min() # print("\n 최소값 삭제 후 트리 >> ", end="s") # bst.inOrder(bst.root) # # # print("\n최소값 : ", end="") # m = bst.min() # print(m.key, m.value) # # # print("\n최댓값 삭제 후 트리 >> ", end="") # delnode2 = bst.delete_max() # bst.inOrder(bst.root) # # print("\n최댓값 : ", end="") # m2 = bst.max() # print(m2.key, m2.value) print( "===========================================================================" ) bst.delete(50) bst.inOrder(bst.root)