コード例 #1
0
def post_order():
    """Can successfully return a collection from an postorder traversal"""
    tree = BinarySearchTree()
    tree.add(45)
    tree.add(15)
    tree.add(60)
    assert post_order() == [15,60,45]
コード例 #2
0
def test_tree_root():
    """
    Can successfully instantiate a tree with a single root node
    """
    tree = BinarySearchTree()
    tree.add(7)
    assert tree.root.data == 7
コード例 #3
0
def pre_order():
    """Can successfully return a collection from a preorder traversal"""
    tree = BinarySearchTree()
    tree.add(45)
    tree.add(15)
    tree.add(60)
    assert pre_order() == [45,15,60]
コード例 #4
0
def test_max_val_is_int():
    tree = BinarySearchTree()
    tree.add(12)
    tree.add(60)
    tree.add(57)

    assert isinstance(tree.find_maximum_value(), int)
コード例 #5
0
def test_add_two_nodes():
    """Can add multiple nodes/levels to a binary search tree"""
    bst = BinarySearchTree()
    bst.add(10)
    bst.add(5)

    assert bst.root.value == 10
    assert bst.root.left_child.value == 5
コード例 #6
0
def test_can_use_add_method_to_add_to_tree():
    tree = BinarySearchTree()
    tree.add(3)
    tree.add(6)
    tree.add(4)
    actual = tree.preorder()
    expected = [3, 6, 4]
    assert actual == expected
コード例 #7
0
def test_left_right():
    bst = BinarySearchTree()
    bst.add(2)
    bst.add(4)
    bst.add(6)
    expected = [2, 4, 6]
    actual = bst.pre_order()
    assert actual == expected
コード例 #8
0
def test_return_postorder_traversal():
    tree = BinarySearchTree()
    tree.add(3)
    tree.add(2)
    tree.add(6)
    actual = tree.post_order()
    expected = [2,6,3]
    assert actual == expected
コード例 #9
0
def test_three():
    tree = BinarySearchTree()
    tree.add(77)
    tree.add(66)
    tree.add(88)
    actual = breadth_first(tree)
    expected = [77, 66, 88]
    assert actual == expected
コード例 #10
0
def test_return_preorder_traversal():
    tree = BinarySearchTree()
    traverse = BinaryTree()
    tree.add(3)
    tree.add(2)
    tree.add(6)
    actual = tree.pre_order()
    expected = [3,2,6]
    assert actual == expected
コード例 #11
0
def test_pre_order():
    tree_stuff = BinarySearchTree()
    tree_stuff.add(5)
    tree_stuff.add(6)
    tree_stuff.add(7)
    tree_stuff.add(8)
    actual = tree_stuff.pre_order()
    expected = [5, 6, 7, 8]
    assert actual == expected
コード例 #12
0
def test_add_three_member():
    tree = BinarySearchTree()
    tree.add(6)
    tree.add(5)
    tree.add(7)

    assert tree._root.value == 6
    assert tree._root.left.value == 5
    assert tree._root.right.value == 7
コード例 #13
0
def test_add_left_right():
    """Can successfully add a left child and right child to a single root node"""
    tree = BinarySearchTree()
    tree.add(45)
    tree.add(15)
    tree.add(60)
    assert tree.root.value==45
    assert tree.left.value==15
    assert tree.right.value==60
コード例 #14
0
def test_return_inorder_traversal():
    tree = BinarySearchTree()
    traverse = BinaryTree()
    tree.add(3)
    tree.add(2)
    tree.add(6)
    actual = tree.in_order()
    expected = [2,3,6]
    assert actual == expected
コード例 #15
0
def test_reads_four():
    tree = BinarySearchTree()
    tree.add(67)
    tree.add(62)
    tree.add(65)
    tree.add(90)
    assert tree.root.data == 67
    assert tree.root.left.data == 62
    assert tree.root.right.data == 90
    assert tree.breadth_first() == [67, 62, 90, 65]
コード例 #16
0
def tree1():
    tree = BinarySearchTree()
    tree.add(10)
    tree.add(5)
    tree.add(1)
    tree.add(7)
    tree.add(15)
    tree.add(11)
    tree.add(17)

    return tree
コード例 #17
0
def test_left_and_right():
    tree_stuff = BinarySearchTree()
    tree_stuff.add(3)
    tree_stuff.add(2)
    tree_stuff.add(4)
    left = tree_stuff.root.left.value
    expect_left = 2
    right = tree_stuff.root.right.value
    expect_right = 4
    assert left == expect_left
    assert right == expect_right
コード例 #18
0
def tree2():
    tree = BinarySearchTree()
    tree.add(11)
    tree.add(6)
    tree.add(2)
    tree.add(7)
    tree.add(18)
    tree.add(12)
    tree.add(45)

    return tree 
コード例 #19
0
def test_left_and_right_children():
    """
    Can successfully add a left child and right child to a single root node
    """
    tree = BinarySearchTree()
    tree.add(6)
    tree.add(5)
    tree.add(7)
    assert tree.root.left.data == 5
    assert tree.root.right.data == 7
    assert tree.root.right.right is None
コード例 #20
0
def test_binary_search_tree_add_six():
    new_tree = BinarySearchTree()
    new_tree.add(10)
    new_tree.add(5)
    new_tree.add(20)
    new_tree.add(2)
    new_tree.add(7)
    new_tree.add(25)
    assert new_tree.root.value == 10
    assert new_tree.root.right.right.value == 25
    assert new_tree.root.left.left.value == 2
    assert new_tree.root.left.right.value == 7
コード例 #21
0
def test_search_falsey():
    """Can successfully determine that a value does not exist in a binary search tree"""
    bst = BinarySearchTree()
    bst.add(10)
    bst.add(5)
    bst.add(20)
    bst.add(8)
    bst.add(15)

    expected = False
    actual = bst._contains(25)

    assert actual == expected
コード例 #22
0
def test_search_another_node_truthy():
    """Can successfully find a value that exists in a binary search tree"""
    bst = BinarySearchTree()
    bst.add(10)
    bst.add(5)
    bst.add(20)
    bst.add(8)
    bst.add(15)

    expected = True
    actual = bst._contains(5)

    assert actual == expected
コード例 #23
0
def test_add_five_nodes():
    """Can add multiple nodes/levels to a binary search tree"""
    bst = BinarySearchTree()
    bst.add(10)
    bst.add(5)
    bst.add(20)
    bst.add(8)
    bst.add(15)

    assert bst.root.value == 10
    assert bst.root.left_child.value == 5
    assert bst.root.right_child.value == 20
    assert bst.root.left_child.right_child.value == 8
    assert bst.root.right_child.left_child.value == 15
def test_tree_intersection_two():
    tree_stuff = BinarySearchTree()
    tree_stuff_two = BinarySearchTree()

    tree_stuff.add(7)
    tree_stuff.add(8)
    tree_stuff.add(9)
    tree_stuff.add(10)

    tree_stuff_two.add(8)
    tree_stuff_two.add(9)
    tree_stuff_two.add(10)
    actual = tree_intersection(tree_stuff, tree_stuff_two)
    expected = [8, 9, 10]
    assert actual == expected
コード例 #25
0
def test_add_more_members_for_balanced():
    tree = BinarySearchTree()
    tree.add(15)
    tree.add(11)
    tree.add(13)
    tree.add(7)
    tree.add(25)
    tree.add(60)
    tree.add(23)

    assert tree._root.value == 15
    assert tree._root.left.value == 11
    assert tree._root.right.value == 25
    assert tree._root.left.left.value == 7
    assert tree._root.left.right.value == 13
    assert tree._root.right.right.value == 60
    assert tree._root.right.left.value == 23
コード例 #26
0
def test_find_max_value():
    tree = BinarySearchTree()
    tree.add(10)
    tree.add(5)
    tree.add(3)
    tree.add(7)
    tree.add(15)
    tree.add(11)

    assert tree.find_max_value() == 15
コード例 #27
0
def test_fizzbuzztree():
    tree = BinarySearchTree()
    tree.add(10)
    tree.add(5)
    tree.add(3)
    tree.add(7)
    tree.add(15)
    tree.add(11)
    tree.fizz_buzz_tree()

    assert tree.root.value == 'Buzz'
コード例 #28
0
def test_contains_small_False():
    tree = BinarySearchTree()
    tree.add(6)
    tree.add(8)
    tree.add(-5)
    tree.add(4)
    tree.add(9)
    tree.add(3)
    expected = False
    actual = tree.contains(-15)
    assert expected == actual
コード例 #29
0
def test_contains_small_True():
    tree = BinarySearchTree()
    tree.add(6)
    tree.add(8)
    tree.add(-1)
    tree.add(4)
    tree.add(9)
    tree.add(3)
    expected = True
    actual = tree.contains(-1)
    assert expected == actual
コード例 #30
0
def tree3():
    tree = BinarySearchTree()
    tree.add(14)
    tree.add(30)
    tree.add(3)
    tree.add(9)
    tree.add(18)
    tree.add(13)
    tree.add(45)
    tree.add(12)

    return tree    
コード例 #31
0
'''
Programmer: Stanley Wong
Description: Binary Search Tree Driver

'''
from treeNode import Node
from tree import BinarySearchTree

myTree = BinarySearchTree()

myTree.add(10)
myTree.add(7)
myTree.add(5)
myTree.add(3)
myTree.add(4)
myTree.add(1)
myTree.add(2)
myTree.add(8)
myTree.add(9)
 
myTree.add(13)
myTree.add(12)
myTree.add(16)
myTree.add(20)

myTree.add(12)
myTree.add(18)
myTree.add(22)
myTree.add(19) 
 
print "\nOriginal List"