コード例 #1
0
def test_both_trees_empty():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()

    actual = tree_intersection(tree1, tree2)
    expected = None
    assert actual == expected
コード例 #2
0
def test_huge_trees():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()

    tree1.add(28)
    tree1.add(17)
    tree1.add(34)
    tree1.add(4)
    tree1.add(21)
    tree1.add(33)
    tree1.add(67)
    tree1.add(155)
    tree1.add(16)
    tree1.add(2)

    tree2.add(17)
    tree2.add(16)
    tree2.add(2)
    tree2.add(67)
    tree2.add(39)
    tree2.add(8)
    tree2.add(3)
    tree2.add(94)

    actual = tree_intersection(tree1, tree2)
    expected = [2, 16, 17, 67]
    assert actual == expected
コード例 #3
0
def test_tree_intersection():
    bt1 = BinaryTree(Node(150))
    bt1.root.left = Node(100)
    bt1.root.right = Node(250)
    bt1.root.left.left = Node(75)
    bt1.root.left.right = Node(160)
    bt1.root.right.right = Node(350)
    bt1.root.right.left = Node(200)
    bt1.root.left.right.left = Node(125)
    bt1.root.left.right.right = Node(175)
    bt1.root.right.right.left = Node(300)
    bt1.root.right.right.right = Node(500)

    bt2 = BinaryTree(Node(42))
    bt2.root.left = Node(100)
    bt2.root.right = Node(600)
    bt2.root.left.left = Node(15)
    bt2.root.left.right = Node(160)
    bt2.root.right.right = Node(350)
    bt2.root.right.left = Node(200)
    bt2.root.left.right.left = Node(125)
    bt2.root.left.right.right = Node(175)
    bt2.root.right.right.left = Node(4)
    bt2.root.right.right.right = Node(500)

    actual = tree_intersection(bt1, bt2)

    expected = [100, 160, 125, 175, 200, 350, 500]

    assert actual == expected
コード例 #4
0
def test_one_tree_empty():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()

    tree1.add(4)
    tree1.add(2)
    tree1.add(5)

    actual = tree_intersection(tree1, tree2)
    expected = None
    assert actual == expected
def test_returns_error_when_passed_an_empty_tree():
    new_tree_one = BinaryTree()
    new_tree_one.root = Node(5)
    new_tree_one.root.left = Node(7)
    new_tree_one.root.right = Node(54)   
    new_tree_one.root.left.left = Node(4)
    new_tree_one.root.left.right = Node(35)

    new_tree_two = BinaryTree()

    expected = "No common values found"
    actual = tree_intersection(new_tree_one, new_tree_two)
    assert expected == actual
コード例 #6
0
def test_normal_trees():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()

    tree1.add(4)
    tree1.add(2)
    tree1.add(5)

    tree2.add(2)
    tree2.add(1)
    tree2.add(4)

    actual = tree_intersection(tree1, tree2)
    expected = [2, 4]
    assert actual == expected
コード例 #7
0
def test_uncommon_trees():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()

    tree1.add(4)
    tree1.add(2)
    tree1.add(5)

    tree2.add(3)
    tree2.add(1)
    tree2.add(7)

    actual = tree_intersection(tree1, tree2)
    expected = None
    assert actual == expected
コード例 #8
0
def test_one():
    tree1 = BinarySearchTree()
    tree1.add(6)
    tree1.add(7)
    tree1.add(5)
    tree1.add(8)
    tree1.add(3)
    tree1.add(4)

    tree2 = BinarySearchTree()
    tree2.add(62)
    tree2.add(7)
    tree2.add(53)
    tree2.add(8)
    tree2.add(32)
    tree2.add(42)

    assert tree_intersection(tree1, tree2) == [7, 8]
def test_returns_results_when_passed_two_regular_binary_trees():
    new_tree_one = BinaryTree()
    new_tree_one.root = Node(5)
    new_tree_one.root.left = Node(7)
    new_tree_one.root.right = Node(54)   
    new_tree_one.root.left.left = Node(4)
    new_tree_one.root.left.right = Node(35)

    new_tree_two = BinaryTree()
    new_tree_two.root = Node(45)
    new_tree_two.root.left = Node(4)
    new_tree_two.root.right = Node(5)   
    new_tree_two.root.right.left = Node(55)
    new_tree_two.root.right.right = Node(57)

    expected = [5, 4]
    actual = tree_intersection(new_tree_one, new_tree_two)
    assert expected == actual
def test_returns_error_when_passed_trees_with_no_common_vals():
    new_tree_one = BinaryTree()
    new_tree_one.root = Node(5)
    new_tree_one.root.left = Node(7)
    new_tree_one.root.right = Node(54)   
    new_tree_one.root.left.left = Node(4)
    new_tree_one.root.left.right = Node(35)

    new_tree_two = BinaryTree()
    new_tree_two.root = Node(77)
    new_tree_two.root.left = Node(88)
    new_tree_two.root.right = Node(99)   
    new_tree_two.root.right.left = Node(111)
    new_tree_two.root.right.right = Node(222)

    expected = "No common values found"
    actual = tree_intersection(new_tree_one, new_tree_two)
    assert expected == actual
コード例 #11
0
def test_two():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()
    tree1.add('tim')
    tree1.add('tom')
    tree1.add('chris')
    tree1.add('jack')
    tree1.add('joe')
    tree1.add('pat')
    tree2.add('pat')
    tree2.add('pam')
    tree2.add('wer')
    tree2.add('jan')
    tree2.add('tom')
    tree2.add('tyler')
    tree2.add('bill')
    actual = tree_intersection(tree1, tree2)
    expected = ['pat', 'pam', 'tom']
    assert expected == actual
    assert ('chris' in expected) == False
コード例 #12
0
def test_three():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()
    tree1.add(10)
    tree1.add(14)
    tree1.add(16)
    tree1.add(12)
    tree1.add(9)
    tree1.add(23)
    tree1.add(13)
    tree2.add(0)
    tree2.add(1)
    tree2.add(2)
    tree2.add(3)
    tree2.add(4)
    tree2.add(5)
    tree2.add(6)
    actual = tree_intersection(tree1, tree2)
    assert [] == actual
    assert len(actual) == 0
コード例 #13
0
def test_one():
    tree1 = BinarySearchTree()
    tree2 = BinarySearchTree()
    tree1.add(10)
    tree1.add(14)
    tree1.add(16)
    tree1.add(12)
    tree1.add(9)
    tree1.add(23)
    tree1.add(13)
    tree2.add(10)
    tree2.add(14)
    tree2.add(16)
    tree2.add(12)
    tree2.add(9)
    tree2.add(23)
    tree2.add(13)
    actual = tree_intersection(tree1, tree2)
    expected = [10, 9, 12, 13, 14, 16, 23]
    assert expected == actual
    assert (24 in expected) == False
def test_tree_intersection_fail():
    actual = tree_intersection(bt1, bt2)
    expected = [11, 9, 15, 1, 7, 3, 8]
    assert actual != expected
def test_tree_intersection_pass():
    actual = tree_intersection(bt1, bt2)
    expected = [11, 9, 15, 7, 3, 1]
    assert actual == expected
def test_no_matches(test_build_tree1):
    no_match_tree = BinaryTree()
    no_match_tree.root = Node(400)
    actual = tree_intersection(test_build_tree1, no_match_tree)
    expected = 'None'
    assert actual == expected
def test_tree_intersection_dupes(test_dupes_tree1, test_dupes_tree2):
    actual = tree_intersection(test_dupes_tree1, test_dupes_tree2)
    expected = [1, 2, 20]
    assert actual == expected
def test_tree_intersection(test_build_tree1, test_build_tree2):
    actual = tree_intersection(test_build_tree1, test_build_tree2)
    expected = [100, 125, 160, 175, 200, 350, 500]
    assert actual == expected