def test_can_merge(self): trees = [ list_to_tree_node([2, 1]), list_to_tree_node([3, 2, 5]), list_to_tree_node([5, 4]) ] res = Solution().canMerge(trees) self.assertListEqual([3, 2, 5, 1, null, 4], treenode_to_list(res))
def test_splitBST_1(self): root = list_to_tree_node([10, 5, 20, 3, 9, 15, 25, null, null, 8, null, null, null, null, null, 6, null, null, 7]) res = Solution().splitBST(root, 6) ans = [[5,3,6],[10,9,20,8,null,15,25,7]] for node in res: li = treenode_to_list(node) self.assertTrue(li in ans)
def test_splitBST(self): root = list_to_tree_node([4,2,6,1,3,5,7]) res = Solution().splitBST(root, 2) ans = [[2,1],[4,3,6,null,null,5,7]] for node in res: li = treenode_to_list(node) self.assertTrue(li in ans)
def test_convertBST(self): root = list_to_tree_node( [4, 1, 6, 0, 2, 5, 7, null, null, null, 3, null, null, null, 8]) self.assertListEqual([ 30, 36, 21, 36, 35, 26, 15, null, null, null, 33, null, null, null, 8 ], treenode_to_list(Solution().convertBST(root)))
def test_longestZigZag(self): self.assertEqual( 3, Solution().longestZigZag( list_to_tree_node([ 1, null, 1, 1, 1, null, null, 1, 1, null, 1, null, null, null, 1, null, 1 ])))
def test_bstToGst(self): input = [4, 1, 6, 0, 2, 5, 7, null, null, null, 3, null, null, null, 8] output = [ 30, 36, 21, 36, 35, 26, 15, null, null, null, 33, null, null, null, 8 ] res = Solution().bstToGst(list_to_tree_node(input)) self.assertListEqual(output, treenode_to_list(res))
def test_pseudoPalindromicPaths_4(self): self.assertEqual( 0, Solution().pseudoPalindromicPaths( list_to_tree_node([ 1, 5, null, 7, null, 3, 9, null, 3, 1, null, 4, null, null, 4 ])))
def test_pseudoPalindromicPaths_3(self): self.assertEqual( 2, Solution().pseudoPalindromicPaths( list_to_tree_node([ 8, 8, null, 7, 7, null, null, 2, 4, null, 8, null, 7, null, 1 ])))
def test_longestZigZag_3(self): self.assertEqual( 5, Solution().longestZigZag( list_to_tree_node([ 6, 9, 7, 3, null, 2, 8, 5, 8, 9, 7, 3, 9, 9, 4, 2, 10, null, 5, 4, 3, 10, 10, 9, 4, 1, 2, null, null, 6, 5, null, null, null, null, 9, null, 9, 6, 5, null, 5, null, null, 7, 7, 4, null, 1, null, null, 3, 7, null, 9, null, null, null, null, null, null, null, null, 9, 9, null, null, null, 7, null, null, null, null, null, null, null, null, null, 6, 8, 7, null, null, null, 3, 10, null, null, null, null, null, 1, null, 1, 2 ])))
def test_removeLeafNodes_1(self): root = list_to_tree_node([1, 3, 3, 3, 2]) res = treenode_to_list(Solution().removeLeafNodes(root, 3)) self.assertListEqual([1, 3, null, null, 2], res)
def test_pathSum(self): self.assertEqual( 3, Solution().pathSum( list_to_tree_node([10, 5, -3, 3, 2, null, 11, 3, -2, null, 1]), 8))
def test_pathSum_3(self): self.assertEqual(4, Solution().pathSum(list_to_tree_node([0, 1, 1]), 1))
def test_isCousins_1(self): root = list_to_tree_node([1,2,3,null,4,null,5]) self.assertEqual(True, Solution().isCousins(root, 5, 4))
def test_longestConsecutive(self): self.assertEqual(3, Solution().longestConsecutive(list_to_tree_node([2,null,3,4,null,1])))
def test_kthSmallest(self): self.assertEqual( 1, Solution().kthSmallest(list_to_tree_node([3, 1, 4, null, 2]), 1))
def test_kthSmallest_1(self): self.assertEqual( 3, Solution().kthSmallest( list_to_tree_node([5, 3, 6, 2, 4, null, null, 1]), 3))
def test_pseudoPalindromicPaths_2(self): self.assertEqual( 1, Solution().pseudoPalindromicPaths(list_to_tree_node([9])))
def test_sufficientSubset(self): root = list_to_tree_node( [1, 2, 3, 4, -99, -99, 7, 8, 9, -99, -99, 12, 13, -99, 14]) self.assertListEqual([1, 2, 3, 4, null, null, 7, 8, 9, null, 14], treenode_to_list(Solution().sufficientSubset( root, 1)))
def test_sufficientSubset_3(self): root = list_to_tree_node([10, 5, 10]) self.assertListEqual([], treenode_to_list(Solution().sufficientSubset( root, 21)))
def test_sufficientSubset_2(self): root = list_to_tree_node([1, 2, -3, -5, null, 4, null]) self.assertListEqual([1, null, -3, 4], treenode_to_list(Solution().sufficientSubset( root, -1)))
def test_sufficientSubset_1(self): root = list_to_tree_node( [5, 4, 8, 11, null, 17, 4, 7, 1, null, null, 5, 3]) self.assertListEqual( [5, 4, 8, 11, null, 17, 4, 7, null, null, null, 5], treenode_to_list(Solution().sufficientSubset(root, 22)))
def test_removeLeafNodes_4(self): root = list_to_tree_node([1, 2, 3]) res = treenode_to_list(Solution().removeLeafNodes(root, 1)) self.assertListEqual([1, 2, 3], res)
def test_removeLeafNodes(self): root = list_to_tree_node([1, 2, 3, 2, null, 2, 4]) res = treenode_to_list(Solution().removeLeafNodes(root, 2)) self.assertListEqual([1, null, 3, null, 4], res)
def test_pseudoPalindromicPaths(self): self.assertEqual( 2, Solution().pseudoPalindromicPaths( list_to_tree_node([2, 3, 1, 3, 1, null, 1])))
def test_kthSmallest_2(self): self.assertEqual( 2, Solution().kthSmallest(list_to_tree_node([1, null, 2]), 2))
def test_pathSum_1(self): self.assertEqual( 2, Solution().pathSum( list_to_tree_node([1, null, 2, null, 3, null, 4, null, 5]), 3))
def test_longestConsecutive_2(self): self.assertEqual(3, Solution().longestConsecutive(list_to_tree_node([1,null,4,3,null,null,2])))
def test_pathSum_2(self): self.assertEqual(0, Solution().pathSum(list_to_tree_node([]), 1))
def test_longestConsecutive_1(self): self.assertEqual(3, Solution().longestConsecutive(list_to_tree_node([2,1,3])))
def test_isCousins(self): root = list_to_tree_node([1,2,3,4]) self.assertEqual(False, Solution().isCousins(root, 4, 3))