Beispiel #1
0
def test_find_right_minimum_returns_root_node_when_no_rights():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(3)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    result = tree.find_right_minimum(root_node)
    assert result == root_node
Beispiel #2
0
def test_delete_node_deletes_a_node_with_no_children_right():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(7)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    tree.delete_node(7)
    assert root_node.get_right() == None
Beispiel #3
0
def test_binary_tree_insert_node_properly_connects_new_right_and_root_when_root_right_empty(
):
    root_node = BinaryTreeNode(5)
    new_node = BinaryTreeNode(7)
    tree = BinaryTree(root_node)
    tree.insert_node(new_node)
    assert new_node.get_parent() == root_node
    assert root_node.get_right() == new_node
Beispiel #4
0
def test_find_right_minimum_returns_right_minimum_in_shallow_example():
    root_node = BinaryTreeNode(5)
    left_node = BinaryTreeNode(3)
    right_node = BinaryTreeNode(7)
    tree = BinaryTree(root_node)
    tree.insert_node(left_node)
    tree.insert_node(right_node)
    result = tree.find_right_minimum(root_node)
    assert result == right_node
Beispiel #5
0
def test_search_returns_appropriate_node_to_right():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(7)
    new_node = BinaryTreeNode(6)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    tree.insert_node(new_node)
    result = tree.search(6)
    assert result == new_node
Beispiel #6
0
def test_delete_node_sets_parent_nodes_right_to_nodes_left_when_only_left():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(7)
    test_node = BinaryTreeNode(6)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    tree.insert_node(test_node)
    tree.delete_node(7)
    assert root_node.get_right() == test_node
    assert test_node.get_parent() == root_node
Beispiel #7
0
def test_binary_tree_insert_can_zig_zag_starting_right():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(7)
    new_node = BinaryTreeNode(6)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    tree.insert_node(new_node)
    assert root_node.get_right() == child_node
    assert child_node.get_parent() == root_node
    assert new_node.get_parent() == child_node
    assert child_node.get_left() == new_node
Beispiel #8
0
def test_binary_tree_insert_node_moves_nodes_down_right_path():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(7)
    new_node = BinaryTreeNode(9)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    tree.insert_node(new_node)
    assert root_node.get_right() == child_node
    assert child_node.get_parent() == root_node
    assert new_node.get_parent() == child_node
    assert child_node.get_right() == new_node
Beispiel #9
0
def test_find_right_minimum_returns_right_minimum_in_deep_example():
    root_node = BinaryTreeNode(5)
    left_node = BinaryTreeNode(3)
    right_node = BinaryTreeNode(9)
    deep_right_right_node = BinaryTreeNode(8)
    deep_right_left_node = BinaryTreeNode(11)
    tree = BinaryTree(root_node)
    tree.insert_node(left_node)
    tree.insert_node(right_node)
    tree.insert_node(deep_right_left_node)
    tree.insert_node(deep_right_right_node)
    result = tree.find_right_minimum(root_node)
    assert result == deep_right_right_node
Beispiel #10
0
def test_delete_node_sets_node_to_minimum():
    root_node = BinaryTreeNode(5)
    child_node = BinaryTreeNode(3)
    left_node = BinaryTreeNode(2)
    right_node = BinaryTreeNode(4)
    tree = BinaryTree(root_node)
    tree.insert_node(child_node)
    tree.insert_node(left_node)
    tree.insert_node(right_node)
    tree.delete_node(3)
    assert root_node.get_left().get_value() == 4
    assert root_node.get_left() == child_node
    assert child_node.get_value() == 4
    assert child_node.get_right() is None
    assert child_node.get_left() == left_node
    assert left_node.get_parent() == child_node
    assert left_node.get_value() == 2
    assert left_node.get_parent().get_value() == 4
Beispiel #11
0
def test_binary_tree_insert_node_sets_node_to_root_when_there_is_no_root():
    new_node = BinaryTreeNode(1)
    tree = BinaryTree()
    tree.insert_node(new_node)
    assert tree.get_root() == new_node