def go_sort(): arr = np.random.randint(1000, size=10).tolist() compare_arr = sorted(arr) sorter = Sorter() assert sorter.sort(arr) == compare_arr assert sorter.sort(arr, 'merge') == compare_arr assert sorter.sort(arr, 'radix') == compare_arr print sorter.sort(arr, args.mode)
def test_stable_sort(self): tmp = [] with open('file.txt', 'w') as file: for i in range(11): file.write(str(i) + ' 1' + '\n') tmp.append(str(i) + ' 1') s = Sorter('file.txt', static_column=1) s.sort() sorted = get_text('file.txt') self.assertEqual(sorted, tmp) s = Sorter('file.txt', static_column=1, is_reversible=True) s.sort() sorted = get_text('file.txt') tmp.reverse() self.assertEqual(sorted, tmp) with open('file.txt', 'w') as file: for i in range(11): file.write(str(10 - i) + ' ' + str(i) + '\n') tmp = ['10 0', '9 1', '0 10', '8 2', '7 3', '6 4', '5 5', '4 6', '3 7', '2 8', '1 9'] s = Sorter('file.txt', static_column=1) s.sort() sorted = get_text('file.txt') self.assertEqual(sorted, tmp) s = Sorter('file.txt', static_column=1, is_reversible=True) s.sort() sorted = get_text('file.txt') tmp.reverse() self.assertEqual(sorted, tmp) os.remove('file.txt')
def do_test(self): tmp_dir = tempfile.mkdtemp() os.chdir(tmp_dir) self.create_random_file("test.txt", 5000, 30) sorter = Sorter(input_file_name="test.txt", separators=" ", is_bar_need=False) sorter.strings_in_tmp_file = 50 sorter.sort() result_file = open("test.txt", 'r') previous_string = result_file.readline().replace("\n", "") current_string = result_file.readline().replace("\n", "") while current_string != "": self.assertEqual(0, sorter.compare_strings( [previous_string, current_string])) previous_string = current_string current_string = result_file.readline().replace("\n", "") result_file.close()
def test_multisort(self): with open('file.txt', 'w')as file: for i in range(11): file.write(str(i) + '\n') s = Sorter('file.txt') s.sort() sorted = get_text('file.txt') self.assertEqual(sorted, ['0', '1', '10', '2', '3', '4', '5', '6', '7', '8', '9']) s = Sorter('file.txt', is_reversible=True) s.sort() sorted = get_text('file.txt') self.assertEqual(sorted, ['9', '8', '7', '6', '5', '4', '3', '2', '10', '1', '0']) os.remove('file.txt')
def test_million_strings(self): f = None try: f = open('million.txt', 'r') except: pass if f is not None: f.close() s = Sorter('million.txt') s.sort() f = open('million.txt', 'r') self.assertEqual(f.read(1), ' ') f.close() s = Sorter('million.txt',is_reversible=True) s.sort() f= open('million.txt', 'r') self.assertEqual(f.read(1), 'Z') f.close()
def start(event, context): sorter = Sorter() times = sorter.sort() return {"statusCode": 200, "body": json.dumps(times)}
face2_warped = w.warp(face2, face2_fx, face2_fy, 1 - warp_amount) # We alpha blend the original images face_out = ( 1 - warp_amount) * face1_warped + warp_amount * face2_warped # write video frame out.write(face_out.astype(np.uint8)) # put the last face into the video for duration "pause" for i in range(int(pause * fps)): out.write(faces[-1]) out.release() # a much simpler version of the video maker that doesn't perform the morphing operations def make_video_nomorph(faces, out_filename, pause=1, fps=30): out = cv2.VideoWriter(out_filename, cv2.VideoWriter_fourcc(*'mp4v'), fps, (800, 800)) for i in range(len(faces)): for j in range(int(pause * fps)): out.write(faces[i]) out.release() if __name__ == "__main__": path = "./images/set3/" sorter = Sorter(path) sorter.sort() facelist = sorter.list_all() facelist = align_faces(facelist) make_video(facelist, "./data/out.mp4") make_video_nomorph(facelist, "./data/out_nomorph.mp4")