Example #1
0
 def test_positive_and_negative_random(self):
     size = 100000
     seq = [0] * size
     for i in range(size):
         seq[i] = randint(-100000, 100000)
     radix_sort(seq)
     self.assertTrue(self._check(seq))
Example #2
0
 def test_descending(self):
     size = 100000
     seq = [randint(0, size)] * size
     for i in range(size):
         seq[i] = seq[i - 1] - randint(1, 10)
     radix_sort(seq)
     self.assertTrue(self._check(seq))
Example #3
0
 def test_repeating_ascending(self):
     size = 100000
     seq = [0] * size
     for i in range(1, size):
         seq[i] = seq[i - 1] + randint(0, 4)
     radix_sort(seq)
     self.assertTrue(self._check(seq))
def grade(sort_func, array_generator, size):
    millis = 0.0
    for i in range(5):
        array = array_generator(size)
        t1 = time()
        sort_func(array)
        t2 = time()
        millis += t2 - t1
    millis /= 5.0
    return millis


funcs = dict()
funcs["Combined sort"] = lambda x: merge_sort(x, 0, len(x))
funcs["Quick sort"] = lambda x: quicksort(x, 0, len(x))
funcs["Radix sort"] = lambda x: radix_sort(x)
funcs["Standard sort"] = sorted


arrs = dict()
arrs["Random array (-1000000 to 1000000)"] = lambda x: random_array(-1000000, 1000001, x)
arrs["Random array (0 to 10000)"] = lambda x: random_array(0, 10001, x)
arrs["Semi-sorted array (0 to 10000)"] = lambda x: semi_sorted_array(0, 10001, x)
arrs["Ascending sorted array (0 to 10000)"] = lambda x: ascending_sorted_array(0, 10001, x)
arrs["Descending sorted array (0 to 10000)"] = lambda x: descending_sorted_array(0, 10001, x)
arrs["Array of repeating values"] = lambda x: same_value_array(-100000, 100001, x)

sizes = [100 + 100000 * i for i in range(6)]
current = 1

for gen_name, gen in arrs.items():
Example #5
0
 def test_empty(self):
     seq = []
     res = radix_sort(seq)
     expected = []
     self.assertEqual(expected, res)
Example #6
0
    def test_trivial(self):
        seq = [1, 333, 22]
        res = radix_sort(seq)
        expected = [1, 22, 333]

        self.assertEqual(expected, res)