def test_both_trees_empty(): tree1 = BinarySearchTree() tree2 = BinarySearchTree() actual = tree_intersection(tree1, tree2) expected = None assert actual == expected
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
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
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
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
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
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
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
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
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