def test_merge_sort_in_place(self):
        arr = random.sample(range_with_dupes, 5000)
        self.assertEqual(merge_sort_in_place(arr, 0, len(arr) - 1), sorted(arr))
        # times = 0.062, 0.065, 0.061
        
        arr = random.sample(range(10000), 5000)
        self.assertEqual(merge_sort_in_place(arr, 0, len(arr) - 1), sorted(arr))
        # times = 0.083, 0.061, 0.066

        arr = random.sample(range(100000), 10000)
        self.assertEqual(merge_sort_in_place(arr, 0, len(arr) - 1), sorted(arr))
Beispiel #2
0
    def test_in_place_merge_sort(self):
        arr1 = [1, 5, 8, 4, 2, 9, 6, 0, 3, 7]
        arr2 = []
        arr3 = [2]
        arr4 = [0, 1, 2, 3, 4, 5]
        arr5 = random.sample(range(200), 50)

        self.assertEqual(merge_sort_in_place(
            arr1, 0, len(arr1)-1), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
        self.assertEqual(merge_sort_in_place(arr2, 0, len(arr2)-1), [])
        self.assertEqual(merge_sort_in_place(arr3, 0, len(arr3)-1), [2])
        self.assertEqual(merge_sort_in_place(
            arr4, 0, len(arr4)-1), [0, 1, 2, 3, 4, 5])
        self.assertEqual(merge_sort_in_place(
            arr5, 0, len(arr5)-1), sorted(arr5))
    def test_in_place_merge_sort(self):

        for test_array in self.test_arrays:

            arrayA = test_array()
            arrayB = copy.copy(arrayA)
            self.assertEqual(
                merge_sort_in_place(arrayA, 0,
                                    len(arrayA) - 1),
                sorted(arrayB),
            )