def fizz_buzz_tree(k_ary):
    """
    Function to change all values in the given tree according to fizz_buzz
    """
    new_tree = BinaryTree()

    if not k_ary.root:
        return new_tree

    def helper(current):
        """
        Helper function to use in recurtion to add new values in the new_tree according to their 
        positions in the original tree
        """
        node = Node(fizz_buzz(current.value))

        if current.left:
            node.left = helper(current.left)
        if current.right:
            node.right = helper(current.right)
        return node

    new_tree.root = helper(k_ary.root)

    return new_tree
def test_tree_single_left_right():
    bt = BinaryTree()
    bt.root = Node(7)
    bt.root.left = Node(3)
    bt.root.right = Node(2)
    assert bt.root.value == 7
    assert bt.root.left.value == 3
    assert bt.root.right.value == 2
    assert bt.preOrder() == [7, 3, 2]
def test_tree_preorder():
    bt = BinaryTree()
    bt.root = Node(6)
    bt.root.right = Node(5)
    bt.root.left = Node(-1)
    bt.root.right.left = Node(7)
    bt.root.left.left = Node(10)
    bt.root.right.right = Node(3)
    assert bt.preOrder() == [6, -1, 10, 5, 7, 3]
def test_tree_inorder():
    bt = BinaryTree()
    bt.root = Node(6)
    bt.root.right = Node(5)
    bt.root.left = Node(-1)
    bt.root.right.left = Node(7)
    bt.root.left.left = Node(10)
    bt.root.right.right = Node(3)
    assert bt.inOrder() == [10, -1, 6, 7, 5, 3]
def test_tree_postorder():
    bt = BinaryTree()
    bt.root = Node(6)
    bt.root.right = Node(5)
    bt.root.left = Node(-1)
    bt.root.right.left = Node(7)
    bt.root.left.left = Node(10)
    bt.root.right.right = Node(3)
    assert bt.postOrder() == [10, -1, 7, 3, 5, 6]
def test_tree_max():
    bt = BinaryTree()
    bt.root = Node(6)
    bt.root.right = Node(5)
    bt.root.left = Node(-1)
    bt.root.right.left = Node(7)
    bt.root.left.left = Node(10)
    bt.root.right.right = Node(3)
    assert bt.findMaximumValue() == 10
def test_tree_bfs():
    bt = BinaryTree()
    bt.root = Node(6)
    bt.root.right = Node(5)
    bt.root.left = Node(-1)
    bt.root.right.left = Node(7)
    bt.root.left.left = Node(10)
    bt.root.right.right = Node(3)
    assert bt.breadthFirst() == [6, -1, 5, 10, 7, 3]
Beispiel #8
0
def my_tree():
    tree = BinaryTree()
    tree.root = Node(6)
    tree.root.left = Node(15)
    tree.root.right = Node(7)
    tree.root.left.left = Node(23)
    tree.root.left.right = Node(21)
    tree.root.right.right = Node(5)
    tree.root.left.left.left = Node(15)
    tree.root.right.right.left = Node(7)
    return tree
Beispiel #9
0
def test_find_max_value():
    bt = BinaryTree()
    bt.root = Node(2)
    bt.root.right = Node(5)
    bt.root.left = Node(7)
    bt.root.right.right = Node(9)
    bt.root.right.right.left = Node(4)
    bt.root.left.left = Node(2)
    bt.root.left.right = Node(6)
    bt.root.left.right.left = Node(5)
    bt.root.left.right.right = Node(11)
    expected = 11
    actual = bt.find_maximum_value()
    assert expected == actual
Beispiel #10
0
def test_breadth_first_binarytree():
    bt = BinaryTree()
    bt.root = Node(2)
    bt.root.left = Node(7)
    bt.root.right = Node(5)
    bt.root.left.left = Node(2)
    bt.root.left.right = Node(6)
    bt.root.right.right = Node(9)
    bt.root.left.right.left = Node(5)
    bt.root.left.right.right = Node(11)
    bt.root.right.right.left = Node(4)

    assert BinaryTree.breadth_first_traversal(bt) == [
        2, 7, 5, 2, 6, 9, 5, 11, 4
    ]
Beispiel #11
0
def test_tree_intersection_five():
    bt = BinaryTree()
    bt.root = Node(10)
    bt.root.left = Node(6)
    bt.root.right = Node(7)
    bt.root.left.left = Node(5)
    bt.root.left.right = Node(5)
    bt.root.left.right.left = Node(50)

    bt1 = BinaryTree()
    bt1.root = Node(10)
    expected = [10]
    assert expected == tree_intersection(bt, bt1)
Beispiel #12
0
def test_tree_intersection_one():
    bt = BinaryTree()
    bt.root = Node(1)
    bt.root.left = Node(2)
    bt.root.right = Node(3)
    bt.root.left.left = Node(4)
    bt.root.left.right = Node(5)

    bt1 = BinaryTree()
    bt1.root = Node(1)
    bt1.root.left = Node(8)
    bt1.root.right = Node(9)
    bt1.root.left.left = Node(6)
    bt1.root.left.right = Node(5)

    expected = [1, 5]
    assert expected == tree_intersection(bt, bt1)
Beispiel #13
0
def test_tree_intersection_three():
    bt = BinaryTree()
    bt.root = Node(10)
    bt.root.left = Node(6)
    bt.root.right = Node(7)
    bt.root.left.left = Node(5)
    bt.root.left.right = Node(5)
    bt.root.left.right.left = Node(50)

    bt1 = BinaryTree()
    bt1.root = Node(11)
    bt1.root.left = Node(8)
    bt1.root.right = Node(9)
    bt1.root.left.left = Node(6)
    bt1.root.left.right = Node(12)
    bt1.root.left.right.left = Node(0)
    expected = None
    assert expected == tree_intersection(bt, bt1)
Beispiel #14
0
def test_empty_tree():
    tree = BinaryTree()
    new_tree = fizz_buzz_tree(tree)
    assert new_tree.root == None
        """
        Helper function to use in recurtion to add new values in the new_tree according to their 
        positions in the original tree
        """
        node = Node(fizz_buzz(current.value))

        if current.left:
            node.left = helper(current.left)
        if current.right:
            node.right = helper(current.right)
        return node

    new_tree.root = helper(k_ary.root)

    return new_tree


if __name__ == "__main__":
    bt = BinaryTree()
    bt.root = Node(2)
    bt.root.left = Node(7)
    bt.root.right = Node(5)
    bt.root.left.left = Node(2)
    bt.root.left.right = Node(6)
    bt.root.right.right = Node(9)
    bt.root.left.right.left = Node(5)
    bt.root.left.right.right = Node(11)
    bt.root.right.right.left = Node(4)

    print(fizz_buzz_tree(bt))
def test_tree_max_empty():
    bt = BinaryTree()
    with pytest.raises(Exception):
        assert bt.findMaximumValue()
Beispiel #17
0
def test_find_max_value_empty():
    bt = BinaryTree()
    expected = 'Tree is empty'
    actual = bt.find_maximum_value()
    assert expected == actual
Beispiel #18
0
def test_empty_binary_tree():
    bt = BinaryTree()
    assert bt.root == None
Beispiel #19
0
def test_breadth_first_binarytree_empty():
    bt = BinaryTree()
    assert BinaryTree.breadth_first_traversal(bt) == None
Beispiel #20
0
def test_breadth_first_binarytree_one_element():
    bt = BinaryTree()
    bt.root = Node(8)
    assert BinaryTree.breadth_first_traversal(bt) == [8]
def test_tree_single():
    bt = BinaryTree()
    bt.root = Node(7)
    assert bt.root.value == 7
def test_tree_empty():
    bt = BinaryTree()
    assert bt.root == None
def test_tree_bfs_empty():
    bt = BinaryTree()
    with pytest.raises(Exception):
        assert bt.breadthFirst()