예제 #1
0
def test_add_greater_to_not_empty_bst():
    tree = BinarySearchTree()
    tree.add(5)
    tree.add(7)
    actual = tree.root.right.value
    expected = 7
    assert actual == expected
예제 #2
0
def test_add_lesser_to_not_empty_bst():
    tree = BinarySearchTree()
    tree.add(5)
    tree.add(2)
    actual = tree.root.left.value
    expected = 2
    assert actual == expected
예제 #3
0
def test_add_lesser_then_in_between():
    tree = BinarySearchTree()
    tree.add(5)
    tree.add(2)
    tree.add(3)
    actual = tree.root.left.right.value
    expected = 3
    assert actual == expected
예제 #4
0
def test_one_interstions():
    tree1 = BinarySearchTree()

    tree1.add(2)
    tree1.root.left = Node(1)
    tree1.root.right = Node(3)

    tree2 = BinarySearchTree()

    tree2.add(2)
    tree2.root.left = Node(0)
    tree2.root.right = Node(4)

    actual = tree1.tree_intersections(tree2)
    expect = [2]

    assert actual == expect
예제 #5
0
def test_multiple_intersections():
    tree1 = BinarySearchTree()

    tree1.add(2)
    tree1.root.left = Node(1)
    tree1.root.right = Node(3)

    tree2 = BinarySearchTree()

    tree2.add(2)
    tree2.root.left = Node(1)
    tree2.root.right = Node(3)

    actual = tree1.tree_intersections(tree2)
    expect = [1, 2, 3]

    assert actual == expect
예제 #6
0
def test__tree_compare():
    tree1 = BinarySearchTree()
    tree1.add(5)
    tree1.add(2)
    tree1.add(3)
    tree2 = BinarySearchTree()
    tree2.add(5)
    tree2.add(1)
    tree2.add(4)
    actual = tree_intersection(tree1, tree2)
    expected = [5]
    assert actual == expected
def test_add_duplicate():
    hal = BinarySearchTree()
    hal.add(18)
    hal.add(9)
    with pytest.raises(ValueError) as excinfo:
        hal.add(9)
    assert '9 already exists in BinarySearchTree' in str(excinfo.value)
def test_add_less_root_more_child():
    hal = BinarySearchTree()
    hal.add(18)
    hal.add(9)
    hal.add(12)

    assert hal.root.left.right.value == 12
예제 #9
0
def test_add_greater_then_in_between():
    tree = BinarySearchTree()
    tree.add(5)
    tree.add(10)
    tree.add(7)
    actual = tree.root.right.left.value
    expected = 7
    assert actual == expected
예제 #10
0
def test_bst_contains():
    tree = BinarySearchTree()
    tree.add(5)
    tree.add(10)
    tree.add(6)
    tree.add(7)
    actual = tree.contains(7)
    expected = True
    assert actual == expected
예제 #11
0
def test_no_intersections():
    tree1 = BinarySearchTree()

    tree1.add(1)
    tree1.add(2)
    tree1.add(3)

    tree2 = BinarySearchTree()

    tree2.add(4)
    tree2.add(5)
    tree2.add(6)

    actual = tree1.tree_intersections(tree2)
    expect = []

    assert actual == expect
def test_in_order():
    tree = BinarySearchTree()
    tree.add(50)
    tree.add(25)
    tree.add(75)
    tree.add(20)
    tree.add(80)
    tree.add(40)
    """
                50
            25      75
        20    40          80
    """
    actual = tree.in_order()
    expected = [20, 25, 40, 50, 75, 80]
    assert actual == expected
def test_add_empty_bst():
    hal = BinarySearchTree()
    assert hal.root == None
    hal.add(18)
    assert hal.root.value == 18
예제 #14
0
def test_postorder():
    tree = BinarySearchTree(5)
    tree.add(3)
    tree.add(19)
    assert tree.post_order() == [3, 19, 5]
예제 #15
0
def test_inorder():
    tree = BinarySearchTree(5)
    tree.add(3)
    tree.add(19)
    assert tree.in_order() == [3, 5, 19]
예제 #16
0
def test_preorder():
    tree = BinarySearchTree(5)
    tree.add(3)
    tree.add(19)
    assert tree.pre_order() == [5, 3, 19]
def test_add_more_root():
    hal = BinarySearchTree()
    hal.add(18)
    hal.add(27)
    assert hal.root.value == 18
    assert hal.root.right.value == 27
예제 #18
0
def test_add_two_nodes():
    tree = BinarySearchTree(5)
    tree.add(3)
    tree.add(19)
    assert tree.root.left.value == 3
    assert tree.root.right.value == 19
def test_add_more_root_less_child():
    hal = BinarySearchTree()
    hal.add(18)
    hal.add(27)
    hal.add(21)
    assert hal.root.right.left.value == 21
예제 #20
0
def test_add_left_and_right_node():
    tree = BinarySearchTree()
    tree.add(3)
    actual = tree.root.value
    expected = 3
    assert actual == expected
def test_add_less_root():
    hal = BinarySearchTree()
    hal.add(18)
    hal.add(9)
    assert hal.root.value == 18
    assert hal.root.left.value == 9
예제 #22
0
def test_add_to_empty_bst_again():
    tree = BinarySearchTree()
    tree.add(7)
    actual = tree.root.value
    expected = 7
    assert actual == expected