def test_single_input(self): data = rand_list(count=1) data_cp = data[:] heap_sort(data) self.assertEqual(data, data_cp)
def kth(array, k): pivot_point = len(array) / 2 pivot_value = array[pivot_point] below = [s for s in array if s < pivot_value] above = [s for s in array if s > pivot_value] a = len(above) b = len(array) - len(below) if k < a: return kth(above, k) elif k > b: return kth(below, k - b) else: return pivot_value import random array = [random.randint(-100, 100) for i in range(32)] print("array", array) k = 3 kval = kth(array, k) print("k = ", k, " kval = ", kval) from heap_sort import * heap_sort(array) print("sorted", array) print(array[len(array) - k - 1])
def test_all_same_input(self): single_val = rand_list(count=1)[0] data = [single_val]*100 heap_sort(data) for i in range(0, 100): self.assertEqual(single_val, data[i])
def test_zero_input(self): data = [] heap_sort(data) self.assertEqual(data, [])
def test_all_zero_input(self): data = [0]*100 heap_sort(data) for i in range(0, 100): self.assertEqual(data[i], 0)
def test_array_input(self): data = rand_list() heap_sort(data) for i in range(1, len(data)): self.assertLessEqual(data[i-1], data[i])
def test_double_input(self): data = rand_list(count=2) heap_sort(data) self.assertLessEqual(data[0], data[1])
def test_heap_sort(self): heap = heap_sort(self.ex) self.assertEqual(heap, [1, 2, 3, 4, 7, 8, 9, 10, 14, 16])
def visual_test(heap): print(heap) print('Sorted:') print(heap_sort(heap)) print()