added sorting exercise
This commit is contained in:
22
loops/sort/test_sort.py
Normal file
22
loops/sort/test_sort.py
Normal file
@ -0,0 +1,22 @@
|
||||
from random import randint
|
||||
from typing import Iterator
|
||||
from sort import selection_sort, binary_search
|
||||
|
||||
def get_random_collection(min: int, max: int, size: int) -> Iterator[int]:
|
||||
return [randint(min, max) for _ in range(size)]
|
||||
|
||||
def test_selection_sort():
|
||||
xs = [5, 4, 3, 2, 1, 0]
|
||||
assert list(selection_sort(xs)) == sorted(xs)
|
||||
assert xs == [5, 4, 3, 2, 1, 0], "list was modified in `selection_sort` return a copy instead"
|
||||
xs = get_random_collection(0, 100, 100)
|
||||
print(xs)
|
||||
assert list(selection_sort(xs)) == sorted(xs)
|
||||
|
||||
def test_binary_search():
|
||||
xs = sorted(set(get_random_collection(0, 10000, 100)))
|
||||
for i, e in enumerate(xs):
|
||||
assert binary_search(xs, e) == i
|
||||
assert binary_search([], 1) == None
|
||||
assert binary_search([2], 1) == None
|
||||
assert binary_search([2, 3], 1) == None
|
Reference in New Issue
Block a user