import unittest from merge.imlementation import merge, mergesort from typing import List class MergeTestCase(unittest.TestCase): def test_merge_minimal(self): self.assertEqual( merge([], []), [], ) def test_merge_one(self): self.assertEqual(merge([301], []), [301]) self.assertEqual(merge([-301], []), [-301]) self.assertEqual(merge([], [-31]), [-31]) self.assertEqual(merge([], [31]), [31]) def test_merge_two(self): self.assertEqual(merge([301], [1]), [1, 301]) self.assertEqual(merge([1], [301]), [1, 301]) self.assertEqual(merge([-301, 1], []), [-301, 1]) self.assertEqual(merge([], [-301, 1]), [-301, 1]) def test_mergesort_minimal(self): self.assertEqual( mergesort([]), [], ) def test_mergesort_one(self): self.assertEqual(mergesort([3]), [3]) self.assertEqual(mergesort([-3]), [-3]) def test_mergesort_two(self): self.assertEqual(mergesort([1, 3]), [1, 3]) self.assertEqual(mergesort([3, 1]), [1, 3]) self.assertEqual( mergesort([3, 3]), [3, 3], ) def test_small(self): self.assertEqual( mergesort([3, 3, 1, 2, 4, 6, 2, 4]), [1, 2, 2, 3, 3, 4, 4, 6], ) def test_small2(self): self.assertEqual( mergesort([3, -3, 1, 2, 4, -6, 2, 4]), [-6, -3, 1, 2, 2, 3, 4, 4], ) # def test_forbidden(self): # self.assertEqual( # mergesort(["a", "b", 3]), # ["a", "b", 3], # )