def test_is_subtree5(): a = make_tree([ 1, None, 1, None, 1, None, 1, None, 1, None, 1, None, 1, None, 1, None, 1, None, 1, None, 1, 2, ]) b = make_tree([1, None, 1, None, 1, None, 1, None, 1, None, 1, 2]) s = module.Solution() assert s.isSubtree(a[0], b[0])
def test_make_tree2(): v = make_tree([6, 2, 8, 0, 4, 7, 9, None, None, 3, 5]) s0 = TreeNode(6) s1 = TreeNode(2) s2 = TreeNode(8) s3 = TreeNode(0) s4 = TreeNode(4) s5 = TreeNode(7) s6 = TreeNode(9) s9 = TreeNode(3) s10 = TreeNode(5) s0.left = s1 s0.right = s2 s1.left = s3 s1.right = s4 s2.left = s5 s2.right = s6 s4.left = s9 s4.right = s10 assert len(v) == 11 assert v[0].val == s0.val assert v[1].val == s1.val assert v[2].val == s2.val assert v[3].val == s3.val assert v[4].val == s4.val assert v[5].val == s5.val assert v[6].val == s6.val assert v[3].left is None assert v[3].right is None assert v[9].val == s9.val assert v[10].val == s10.val
def test_lowest_common_ancestor(): t = make_tree([6, 2, 8, 0, 4, 7, 9, None, None, 3, 5]) s = module.Solution() assert s.lowestCommonAncestor(t[0], t[1], t[2]) == t[0] assert s.lowestCommonAncestor(t[0], t[2], t[1]) == t[0] assert s.lowestCommonAncestor(t[0], t[1], t[4]) == t[1] assert s.lowestCommonAncestor(t[0], t[4], t[1]) == t[1]
def test_merge_trees(): a = make_tree([1, 3, 2, 5]) b = make_tree([2, 1, 3, None, 4, None, 7]) s = module.Solution() r = s.mergeTrees(a[0], b[0]) assert r is not None assert r.val == 3 assert r.left.val == 4 assert r.right.val == 5 assert r.left.left.val == 5 assert r.left.right.val == 4 assert r.left.left.left is None assert r.left.left.right is None assert r.right.val == 5 assert r.right.left is None assert r.right.right.val == 7 assert r.right.right.right is None
def test_invert_tree(): t = make_tree([4, 2, 7, 1, 3, 6, 9]) s = module.Solution() r = s.invertTree(t[0]) assert r.val == 4 assert r.left.val == 7 assert r.right.val == 2 assert r.left.left.val == 9 assert r.left.right.val == 6 assert r.right.left.val == 3 assert r.right.right.val == 1
def test_make_tree1(): v = make_tree([6, 2, 8, 0, 4, 7, 9, -1, -1, 3, 5]) s0 = TreeNode(6) s1 = TreeNode(2) s2 = TreeNode(8) s3 = TreeNode(0) s4 = TreeNode(4) s5 = TreeNode(7) s6 = TreeNode(9) s7 = TreeNode(-1) s8 = TreeNode(-1) s9 = TreeNode(3) s10 = TreeNode(5) s0.left = s1 s0.right = s2 s1.left = s3 s1.right = s4 s2.left = s5 s2.right = s6 s3.left = s7 s3.right = s8 s4.left = s9 s4.right = s10 assert len(v) == 11 assert v[0].val == s0.val assert v[1].val == s1.val assert v[2].val == s2.val assert v[3].val == s3.val assert v[4].val == s4.val assert v[5].val == s5.val assert v[6].val == s6.val assert v[7].val == s7.val assert v[8].val == s8.val assert v[9].val == s9.val assert v[10].val == s10.val
def test_max_depth(): t = make_tree([3, 9, 20, None, None, 15, 7]) s = module.Solution() assert s.maxDepth(t[0]) == 3
def test_is_subtree_same(): t = make_tree([3, 4, 5, 1, 2]) s = module.Solution() assert s.isSubtree(t[0], t[0]) assert s.isSubtree(t[0], t[1])
def test_is_subtree4(): a = make_tree([3, 4, 5, 1, None, 2]) b = make_tree([3, 1, 2]) s = module.Solution() assert not s.isSubtree(a[0], b[0])
def test_is_subtree2(): a = make_tree([1, 1]) b = TreeNode(1) s = module.Solution() assert s.isSubtree(a[0], b)
def test_is_subtree1(): a = make_tree([3, 4, 5, 1, 2]) b = make_tree([4, 1, 2]) s = module.Solution() assert s.isSubtree(a[0], b[0])
def test_is_same_tree_1(): p = make_tree([1, 2, 3]) s = module.Solution() assert s.isSameTree(p[0], p[0])
def test_is_same_tree_4(): p = make_tree([10, 5, 15]) q = make_tree([10, 5, None, None, 15]) s = module.Solution() assert not s.isSameTree(p[0], q[0])
def test_is_same_tree_3(): p = make_tree([1, 2, 1]) q = make_tree([1, 1, 2]) s = module.Solution() assert not s.isSameTree(p[0], q[0])