Пример #1
0
 def testRandom(self):
     import math
     for x in xrange(1000):
         unsorted = [
             int(math.floor(random.random() * 100)) for _ in xrange(20)
         ]
         qsort(unsorted, 0, len(unsorted) - 1)
         for i in xrange(19):
             self.assertLessEqual(unsorted[i], unsorted[i + 1])
Пример #2
0
def run_tests():
    import numpy as np
    for L in map(np.array, [[], [1.], [1.]*10]):
        old = L.copy()
        qsort(L)
        assert np.all(old == L)

    for n in np.r_[np.arange(2, 10),11,101,100,1000]:
        L = np.random.random(int(n))
        old = sorted(L.copy())
        t = float("+inf")
        for _ in xrange(10):
            np.random.shuffle(L)
            t = min(measure_qsort(L), t)
            assert np.allclose(old, L), L
        report_time(n, t)

    for n in np.r_[1e4,1e5,1e6]:
        t = float("+inf")
        for _ in range(3):
            t = min(measure_qsort(np.random.random_sample(n)), t)
        report_time(n, t)
Пример #3
0
 def test_qsort_empty_list(self):
     list = []
     sorted_list = qsort(list)
     self.assertEqual([], sorted_list)
Пример #4
0
 def test_qsort_many_elems(self):
     list = [2, 48, 2, 59, 127, 10, -28, 26, 32]
     sorted_list = qsort(list)
     self.assertEqual([-28, 2, 2, 10, 26, 32, 48, 59, 127], sorted_list)
Пример #5
0
 def test_qsort_reverse_sorted_elems(self):
     list = [6, 5, 4, 3, 2, 1]
     sorted_list = qsort(list)
     self.assertEqual([1, 2, 3, 4, 5, 6], sorted_list)
Пример #6
0
 def test_qsort_sorted_elems(self):
     list = [1, 2, 3, 4, 5, 6, 7]
     sorted_list = qsort(list)
     self.assertEqual([1, 2, 3, 4, 5, 6, 7], sorted_list)
Пример #7
0
 def test_qsort_same_elems(self):
     list = [2, 2, 2, 2, 2]
     sorted_list = qsort(list)
     self.assertEqual([2, 2, 2, 2, 2], sorted_list)
Пример #8
0
 def test_qsort_doubleton2(self):
     list = [-2, -3]
     sorted_list = qsort(list)
     self.assertEqual([-3, -2], sorted_list)
Пример #9
0
 def test_qsort_doubleton1(self):
     list = [10, 11]
     sorted_list = qsort(list)
     self.assertEqual([10, 11], sorted_list)
Пример #10
0
 def test_qsort_singleton(self):
     list = [1]
     sorted_list = qsort(list)
     self.assertEqual([1], sorted_list)
Пример #11
0
from quicksort import qsort

arr = [2,1,3,7,4,5,14,27,11]
sorted_arr = qsort(arr)
max = sorted_arr.pop()

print("The maximum value in the list is {}".format(max))
Пример #12
0
 def test_valid_values_with_mid_pivot(self):
     data = self.gen_data(8)
     for d in data:
         qsort(d, choose_pivot=_mid_pivot)
         self.assertEqual(d, sorted(d))
Пример #13
0
 def test_valid_values_with_default_rand_pivot(self):
     data = self.gen_data(8)
     for d in data:
         qsort(d)
         self.assertEqual(d, sorted(d))
Пример #14
0
 def test_bad_values(self):
     bad_data = ((None, None), (1, None), ('abc', None))
     for arg, expected in bad_data:
         with self.assertRaises(ValueError):
             self.assertEqual(qsort(arg), expected)
Пример #15
0
 def testNull(self):
     a = []
     qsort(a, 0, len(a) - 1)
     self.assertEqual(a, [])
Пример #16
0
 def testSame(self):
     a = [1, 1, 1]
     qsort(a, 0, len(a) - 1)
     self.assertEqual(a, [1, 1, 1])