aboutsummaryrefslogtreecommitdiff
path: root/challenge-142/roger-bell-west/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-142/roger-bell-west/python/ch-2.py')
-rwxr-xr-xchallenge-142/roger-bell-west/python/ch-2.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-142/roger-bell-west/python/ch-2.py b/challenge-142/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..f377b7678a
--- /dev/null
+++ b/challenge-142/roger-bell-west/python/ch-2.py
@@ -0,0 +1,35 @@
+#! /usr/bin/python3
+
+import unittest
+
+from random import randint
+import multiprocessing as mp
+from time import sleep
+
+def sleeper(x,q):
+ sleep(float(x)/500.0)
+ q.put(x)
+
+def sleepsort(n):
+ q=mp.SimpleQueue()
+ pq=[]
+ for i in n:
+ p=mp.Process(target=sleeper,args=(i,q))
+ p.start()
+ pq.append(p)
+ for p in pq:
+ p.join()
+ r=[]
+ while not q.empty():
+ r.append(q.get())
+ return r
+
+class TestSleepsort(unittest.TestCase):
+
+ def test_ex1(self):
+ a=[]
+ for i in range(10):
+ a.append(randint(1,100))
+ self.assertEqual(sleepsort(a),sorted(a),'example 1')
+
+unittest.main()