Exemple #1
0
def build_abstract_tree(level, node: TreeNode = None):
    node = node or TreeNode(SOME_KEY, VALUE)
    if level > 1:
        left = TreeNode(SOME_KEY, VALUE)
        build_abstract_tree(level - 1, left)
        node.mount_left(left)

        right = TreeNode(SOME_KEY, VALUE)
        build_abstract_tree(level - 1, right)
        node.mount_right(right)

    return node
Exemple #2
0
def test_small_swap():
    alfa_tree = build_abstract_tree(level=3)
    beta_tree = build_abstract_tree(level=4)
    gamma_tree = build_abstract_tree(level=4)

    x_node = TreeNode(SOME_KEY, VALUE)
    y_node = TreeNode(SOME_KEY, VALUE)

    y_node.mount_left(beta_tree)
    y_node.mount_right(gamma_tree)

    x_node.mount_left(alfa_tree)
    x_node.mount_right(y_node)

    x_node._right_small_swap()

    assert x_node._left == alfa_tree
    assert x_node._right == beta_tree
    assert y_node._left == x_node
    assert y_node._right == gamma_tree
    assert y_node._parent is None