def test_list_of_depths(self): values, expect = test_case tree = Tree.from_list_bfs(values) root = tree.root if not root: return self.assertEqual(list_of_depths(root), expect)
def test_lca(self): tree = Tree.from_list_bfs(tree_vals) root = tree.root assert root != None and root.left and root.right self.assertEqual(lca1(root, root.left, root.right), root) self.assertEqual(lca2(root, root.left, root.right), root) assert root != None and root.left.right and root.left.left self.assertEqual(lca1(root, root.left.right, root.left.left), root.left) self.assertEqual(lca2(root, root.left.right, root.left.left), root.left)
def test_check_balanced(self): for tc in test_cases: tree_vals, expect = tc tree = Tree.from_list_bfs(tree_vals) self.assertEqual(check_balanced(tree.root), expect)
def test_validate_bst(self): for tc in test_cases: tree_vals, expect = tc tree = Tree.from_list_bfs(tree_vals) self.assertEqual(validate_bst_inorder(tree.root), expect) self.assertEqual(validate_bst_min_max(tree.root), expect)