still futzing around with insertion_sort and timeit

cat-town
Dan Buch 13 years ago
parent 88658c2a5d
commit b5a69f4397

@ -2,7 +2,7 @@ from __future__ import print_function
import os import os
import random import random
import unittest import timeit
DEBUG = os.environ.get('DEBUG') == '1' DEBUG = os.environ.get('DEBUG') == '1'
@ -32,26 +32,26 @@ def insertion_sort(arr):
return arr return arr
class TestStuff(unittest.TestCase): def main():
for power in range(1, 5):
to_sort = list(range(10 ** power))
to_sort_sorted = to_sort[:]
to_sort_reversed = list(reversed(to_sort[:]))
def test_insertion_sort_small(self): for i in range(3):
self.assertEqual( random.shuffle(to_sort)
[1, 2, 3, 4, 5, 6],
insertion_sort([5, 2, 4, 6, 1, 3])
)
def test_insertion_sort_large(self): for arr, desc in (
inlist = range(1000) (to_sort_sorted, 'sorted'),
listcopy = inlist[:] (to_sort, 'shuffled'),
random.shuffle(inlist) (to_sort_reversed, 'reversed')):
random.shuffle(inlist)
self.assertEqual(listcopy, insertion_sort(inlist))
def test_insertion_sort_large_reversed(self): timing = timeit.timeit(
inlist = range(1000) lambda: insertion_sort(arr),
listcopy = inlist[:] number=10
self.assertEqual(listcopy, insertion_sort(list(reversed(inlist)))) )
print('{} {}: {}'.format(10 ** power, desc, timing))
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() main()

Loading…
Cancel
Save