def test_intersection_tree(): bt = BinaryTree() bt1 = BinaryTree() bt.root = Node(150) bt.root.left = Node(100) bt.root.right = Node(250) bt.root.left.left = Node(75) bt.root.left.right = Node(160) bt.root.right.left = Node(200) bt.root.right.right = Node(350) bt.root.left.right.left = Node(125) bt.root.left.right.right = Node(175) bt.root.right.right.left = Node(300) bt.root.right.right.right = Node(500) bt1.root = Node(42) bt1.root.left = Node(100) bt1.root.right = Node(600) bt1.root.left.left = Node(15) bt1.root.left.right = Node(160) bt1.root.right.left = Node(200) bt1.root.right.right = Node(350) bt1.root.left.right.left = Node(125) bt1.root.left.right.right = Node(175) bt1.root.right.right.left = Node(4) bt1.root.right.right.right = Node(500) actual = tree_intersection(bt, bt1) expected = [100, 160, 125, 175, 200, 350, 500] assert actual == expected
def test_tree_intersection(): tr1 = BinaryTree() tr2 = BinaryTree() assert tree_intersection(tr1, tr2) == [] tr1.root = Node(5) assert tree_intersection(tr1, tr2) == [] tr1.root.right = Node(10) tr1.root.left = Node(-2) tr1.root.right.left = Node(15) tr1.root.left.left = Node('string') tr2.root = Node(5) assert tree_intersection(tr1, tr2) == [5] tr2.root.right = Node(11) tr2.root.left = Node(-2) tr2.root.right.left = Node(15) tr2.root.left.left = Node('string') assert tree_intersection(tr1, tr2) == [5, -2, 'string', 15]
def test_test_with_string(): tr1 = BinaryTree() tr2 = BinaryTree() tr1.root = Node(5) tr1.root.right = Node('omar') tr1.root.left = Node(-2) tr1.root.right.left = Node(15) tr1.root.left.left = Node(17) tr2.root = Node(5) tr2.root.right = Node(11) tr2.root.left = Node(-2) tr2.root.right.left = Node(15) tr2.root.left.left = Node('omar') assert tree_intersection(tr1, tr2) == [5, -2, 'omar', 15]
def test_test_three_common(): tr1 = BinaryTree() tr2 = BinaryTree() tr1.root = Node(5) tr1.root.right = Node(10) tr1.root.left = Node(-2) tr1.root.right.left = Node(15) tr1.root.left.left = Node(17) tr2.root = Node(5) tr2.root.right = Node(11) tr2.root.left = Node(-2) tr2.root.right.left = Node(15) tr2.root.left.left = Node(111) assert tree_intersection(tr1, tr2) == [5, -2, 15]
def test_intersection_tree2(): bt = BinaryTree() bt1 = BinaryTree() bt.root = Node(0) bt.root.left = Node(5) bt.root.right = Node(10) bt.root.left.left = Node(15) bt.root.left.right = Node(20) bt1.root = Node(5) bt1.root.left = Node(15) bt1.root.right = Node(10) bt1.root.left.left = Node(20) bt1.root.left.right = Node(0) actual = tree_intersection(bt, bt1) expected = [10] assert actual == expected
def test_intersection_tree1(): bt = BinaryTree() bt1 = BinaryTree() bt.root = Node(0) bt.root.left = Node(5) bt.root.right = Node(10) bt.root.left.left = Node(15) bt.root.left.right = Node(20) bt1.root = Node(6) bt1.root.left = Node(12) bt1.root.right = Node(18) bt1.root.left.left = Node(24) bt1.root.left.right = Node(30) actual = tree_intersection(bt, bt1) expected = None assert actual == expected
def test_no_similar_leafs(): tree5 = BinarySearchTree() tree5.add(4) tree5.add(6) tree5.add(7) tree5.add(5) tree5.add(3) tree5.add(3) tree5.add(2) tree6 = BinarySearchTree() tree6.add(6) tree6.add(5) tree6.add(1) tree6.add(45) tree6.add(10) tree6.add(16) tree6.add(5) assert tree_intersection(tree5, tree6) == None
def test_tow_same_tree(): tree7 = BinarySearchTree() tree7.add(6) tree7.add(5) tree7.add(1) tree7.add(45) tree7.add(10) tree7.add(16) tree7.add(5) tree8 = BinarySearchTree() tree8.add(6) tree8.add(5) tree8.add(1) tree8.add(45) tree8.add(10) tree8.add(16) tree8.add(5) assert tree_intersection(tree7, tree8) == [6, 5, 45, 1, 5, 10, 16]
def test_same_tree_type(): tree1 = BinaryTree() tree1.root = Node(5) tree1.root.right = Node(6) tree1.root.left = Node(4) tree1.root.right.right = Node(7) tree1.root.right.left = Node(5) tree1.root.left.left = Node(2) tree1.root.left.right = Node(4) tree2 = BinaryTree() tree2.root = Node(4) tree2.root.right = Node(6) tree2.root.right.right = Node(7) tree2.root.right.left = Node(5) tree2.root.left = Node(3) tree2.root.left.right = Node(3) tree2.root.left.left = Node(2) actual = tree_intersection(tree1, tree2) expected = [6, 2, 5, 7] assert actual == expected
def test_difrent_tree_type(): tree3 = BinaryTree() tree3.root = Node(5) tree3.root.right = Node(6) tree3.root.left = Node(4) tree3.root.right.right = Node(7) tree3.root.right.left = Node(5) tree3.root.left.left = Node(2) tree3.root.left.right = Node(4) tree4 = BinarySearchTree() tree4.add(4) tree4.add(6) tree4.add(7) tree4.add(5) tree4.add(3) tree4.add(3) tree4.add(2) actual = tree_intersection(tree3, tree4) expected = [6, 2, 5, 7] assert actual == expected
def test_floats(): tree1 = build([0.3, 5, -54, -3, 34]) tree2 = build([-54, 95, 0.3, 123, 34]) assert tree_intersection(tree1, tree2) == {0.3, -54, 34}
def test_intersection(fir_tree, sec_tree): actual=tree_intersection(fir_tree, sec_tree) assert actual == {2, 10, 6}
def test_empty_trees(): bt = BinaryTree() bt1 = BinaryTree() actual = tree_intersection(bt, bt1) expected = None assert actual == expected
def test_test_with_one_node(): tr1 = BinaryTree() tr2 = BinaryTree() tr1.root = Node(5) assert tree_intersection(tr1, tr2) == []
def test_test_empty_tree(): tr1 = BinaryTree() tr2 = BinaryTree() assert tree_intersection(tr1, tr2) == []
def test_simply_tree_case(my_tree, my_tree2): tree1 = my_tree tree2 = my_tree2 assert tree_intersection(tree1, tree2) == {10, 9, 8, 5}
def test_same_values(): tree1 = build([10, 10, 10, 8]) tree2 = build([10, 10, 10, 10, 10]) assert tree_intersection(tree1, tree2) == {10}
def test_2nd_tree_is_empty(): tree1 = build([3, 3, 4, 5]) tree2 = build([]) assert tree_intersection(tree1, tree2) == None
def test_happy_path(tree1, tree2): actual = tree_intersection(tree1, tree2) expect = {100, 160, 125, 175, 200, 350, 500} assert actual == expect
def test_no_match(my_tree): tree1 = my_tree values = [100, 100, 100, 100] tree2 = build(values) assert tree_intersection(tree1, tree2) == None
def test_everything_match(my_tree): tree1 = my_tree values = [7, 3, 2, 6, 9, 10, 1, 5, 8] tree2 = build(values) assert tree_intersection(tree1, tree2) == {7, 3, 2, 6, 9, 10, 1, 5, 8}
def test_empty_tree(): tree1 = build([]) tree2 = build([3, 4]) assert tree_intersection(tree1, tree2) == None
def test_empty_tree(): bt = BinaryTree() bt1 = BinaryTree() actual = tree_intersection(bt, bt1) expect = 'tree is empty' assert actual == expect