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
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