Skip to content

Commit 0eb1825

Browse files
Tests for odd_even_transposition_parallel (#10926)
* [ADD] tests for odd_even_transposition_parallel * adding another test because build failed 6 hrs * comment out all tests to see if it fails * list(range(10)[::-1]) test uncommented * [a, x, c] test uncommented * [1.9, 42.0, 2.8] test uncommented * [False, True, False] test uncommented * [1, 32.0, 9] test uncommented * [1, 32.0, 9] test uncommented * [-442, -98, -554, 266, -491, 985, -53, -529, 82, -429] test uncommented * test non global lock * [DEL] Testing multiple data types. Couldn't get doctest to work * [ADD] Comment on why non global process lock
1 parent b0837d3 commit 0eb1825

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

sorts/odd_even_transposition_parallel.py

+23-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
from multiprocessing import Lock, Pipe, Process
1414

1515
# lock used to ensure that two processes do not access a pipe at the same time
16-
process_lock = Lock()
16+
# NOTE This breaks testing on build runner. May work better locally
17+
# process_lock = Lock()
1718

1819
"""
1920
The function run by the processes that sorts the list
@@ -28,7 +29,7 @@
2829

2930

3031
def oe_process(position, value, l_send, r_send, lr_cv, rr_cv, result_pipe):
31-
global process_lock
32+
process_lock = Lock()
3233

3334
# we perform n swaps since after n swaps we know we are sorted
3435
# we *could* stop early if we are sorted already, but it takes as long to
@@ -72,6 +73,26 @@ def oe_process(position, value, l_send, r_send, lr_cv, rr_cv, result_pipe):
7273

7374

7475
def odd_even_transposition(arr):
76+
"""
77+
>>> odd_even_transposition(list(range(10)[::-1])) == sorted(list(range(10)[::-1]))
78+
True
79+
>>> odd_even_transposition(["a", "x", "c"]) == sorted(["x", "a", "c"])
80+
True
81+
>>> odd_even_transposition([1.9, 42.0, 2.8]) == sorted([1.9, 42.0, 2.8])
82+
True
83+
>>> odd_even_transposition([False, True, False]) == sorted([False, False, True])
84+
True
85+
>>> odd_even_transposition([1, 32.0, 9]) == sorted([False, False, True])
86+
False
87+
>>> odd_even_transposition([1, 32.0, 9]) == sorted([1.0, 32, 9.0])
88+
True
89+
>>> unsorted_list = [-442, -98, -554, 266, -491, 985, -53, -529, 82, -429]
90+
>>> odd_even_transposition(unsorted_list) == sorted(unsorted_list)
91+
True
92+
>>> unsorted_list = [-442, -98, -554, 266, -491, 985, -53, -529, 82, -429]
93+
>>> odd_even_transposition(unsorted_list) == sorted(unsorted_list + [1])
94+
False
95+
"""
7596
process_array_ = []
7697
result_pipe = []
7798
# initialize the list of pipes where the values will be retrieved

0 commit comments

Comments
 (0)