Beispiel #1
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().findPairs(**case.args.__dict__)
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            Solution().gameOfLife(**case.args.__dict__)
            self.assertEqual(case.expected, case.args.board, msg=args)
Beispiel #3
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().largestDivisibleSubset(**case.args.__dict__)
            self.assertIn(actual, case.expected, msg=args)
Beispiel #4
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        # The last 2 tests are too slow
        for case in cases[:-2]:
            args = str(case.args)
            actual = Solution().largestPalindrome(**case.args.__dict__)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #5
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            head = ListNode.from_array(case.args.head)
            actual = Solution().numComponents(head, case.args.g)
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root = TreeNode.from_array(case.args.root)
            actual = Solution().countNodes(root)
            self.assertEqual(len(case.args.root), actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root = TreeNode.from_array(case.args.root)
            actual = Solution().preorderTraversal(root)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #8
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().gardenNoAdj(**case.args.__dict__)
            for x, y in case.args.paths:
                self.assertNotEqual(actual[x - 1], actual[y - 1], msg=args)
Beispiel #9
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            codec = Codec()
            actual = codec.decode(codec.encode(**case.args.__dict__))
            self.assertEqual(case.args.longUrl, actual, msg=args)
Beispiel #10
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().allPossibleFBT(**case.args.__dict__)
            actual = [root.to_array() for root in actual]
            self.assertCountEqual(case.expected, actual, msg=args)
Beispiel #11
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().bstFromPreorder(case.args.preorder)
            actual = TreeNode.to_array(actual)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #12
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().uniqueMorseRepresentations(
                **case.args.__dict__)
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().constructMaximumBinaryTree(**case.args.__dict__)
            actual = actual.to_array()
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().containsNearbyAlmostDuplicate(
                **case.args.__dict__)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #15
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root = TreeNode.from_array(case.args.root)
            actual = Solution().countPairs(root, case.args.distance)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #16
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            head = ListNode.from_array(case.args.head)
            actual = Solution().oddEvenList(head)
            actual = ListNode.to_array(actual)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #17
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root1 = TreeNode.from_array(case.args.root1)
            root2 = TreeNode.from_array(case.args.root2)
            actual = Solution().leafSimilar(root1, root2)
            self.assertEqual(case.expected, actual, msg=args)
Beispiel #18
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root = TreeNode.from_array(case.args.root)
            actual = Solution().increasingBST(root)
            actual = actual.to_array()
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        func_name = next(f for f in dir(Solution) if not f.startswith('__'))
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            func = getattr(Solution(), func_name)
            actual = func(**case.args.__dict__)
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root = TreeNode.from_array(case.args.root)
            actual = Solution().pruneTree(root)
            actual = TreeNode.to_array_static(actual)
            self.assertEqual(case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            nodes = Node.parse(case.args.graph)
            for node in nodes.values():
                actual = Solution().cloneGraph(node)
                self.assertEqual(node, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().sortArrayByParityII(**case.args.__dict__)
            self.assertCountEqual(case.args.a, actual, msg=args)

            for i, num in enumerate(actual):
                self.assertEqual(i & 1, num & 1, msg=args)
Beispiel #23
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases
        magic_dict = MagicDictionary()

        for case in cases:
            args = str(case.args)
            magic_dict.buildDict(case.args.dict)

            for search in case.args.searches:
                actual = magic_dict.search(search.word)
                self.assertEqual(search.expected, actual, msg=args)
Beispiel #24
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().crackSafe(**case.args.__dict__)

            digits = [str(i) for i in range(case.args.k)]
            for pw in itertools.product(digits, repeat=case.args.n):
                pw = ''.join(pw)
                self.assertIn(pw, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            root = TreeNode.from_array(case.args.root)
            p = self.find_node(root, case.args.p)
            q = self.find_node(root, case.args.q)

            actual = Solution().lowestCommonAncestor(root, p, q)

            self.assertEqual(case.expected, actual.val, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            utils.solve_references(case.args.head)
            utils.solve_references(case.expected)

            args = str(case.args)
            actual = Solution().flatten(**case.args.__dict__)

            self.assertEqual(Node.encode(case.expected), Node.encode(actual), msg=args)
            Node.assert_equal(self, case.expected, actual, msg=args)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().allCellsDistOrder(**case.args.__dict__)

            i = 0
            for expected in case.expected:
                self.assertCountEqual(expected,
                                      actual[i:i + len(expected)],
                                      msg=args)
                i += len(expected)
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            original = TreeNode.from_array(case.args.original)
            cloned = TreeNode.from_array(case.args.original)
            target = self.find_node(original, case.args.target)
            expected = self.find_node(cloned, case.args.target)

            actual = Solution().getTargetCopy(original, cloned, target)

            self.assertEqual(expected, actual, msg=args)
Beispiel #29
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)
            actual = Solution().sortArrayByParity(**case.args.__dict__)
            self.assertCountEqual(case.args.a, actual, msg=args)

            i = 0
            while i < len(actual) and actual[i] & 1 == 0:
                i += 1

            for i in range(i, len(actual)):
                self.assertEqual(1, actual[i] & 1, msg=args)
Beispiel #30
0
    def test(self):
        cases = utils.load_test_json(__file__).test_cases

        for case in cases:
            args = str(case.args)

            p = TreeNode.from_array(case.args.p)
            q = TreeNode.from_array(case.args.q)

            actual = Solution().isSameTree(p, q)
            self.assertEqual(case.expected, actual, msg=args)

            actual = Solution().isSameTree(q, p)
            self.assertEqual(case.expected, actual, msg=args)