]> gitweb.factorcode.org Git - factor.git/blob - basis/concurrency/combinators/combinators-tests.factor
562111242d0040d56d629b572e896e7d1dd27358
[factor.git] / basis / concurrency / combinators / combinators-tests.factor
1 IN: concurrency.combinators.tests\r
2 USING: concurrency.combinators tools.test random kernel math \r
3 concurrency.mailboxes threads sequences accessors arrays ;\r
4 \r
5 [ [ drop ] parallel-each ] must-infer\r
6 { 2 0 } [ [ 2drop ] 2parallel-each ] must-infer-as\r
7 [ [ ] parallel-map ] must-infer\r
8 { 2 1 } [ [ 2array ] 2parallel-map ] must-infer-as\r
9 [ [ ] parallel-filter ] must-infer\r
10 \r
11 [ { 1 4 9 } ] [ { 1 2 3 } [ sq ] parallel-map ] unit-test\r
12 \r
13 [ { 1 4 9 } ] [ { 1 2 3 } [ 1000 random sleep sq ] parallel-map ] unit-test\r
14 \r
15 [ { 1 2 3 } [ dup 2 mod 0 = [ "Even" throw ] when ] parallel-map ]\r
16 [ error>> "Even" = ] must-fail-with\r
17 \r
18 [ V{ 0 3 6 9 } ]\r
19 [ 10 [ 3 mod zero? ] parallel-filter ] unit-test\r
20 \r
21 [ 10 ]\r
22 [\r
23     V{ } clone\r
24     10 over [ push ] curry parallel-each\r
25     length\r
26 ] unit-test\r
27 \r
28 [ { 10 20 30 } ] [\r
29     { 1 4 3 } { 10 5 10 } [ * ] 2parallel-map\r
30 ] unit-test\r
31 \r
32 [ { -9 -1 -7 } ] [\r
33     { 1 4 3 } { 10 5 10 } [ - ] 2parallel-map\r
34 ] unit-test\r
35 \r
36 [\r
37     { 1 4 3 } { 1 0 1 } [ / drop ] 2parallel-each\r
38 ] must-fail\r
39 \r
40 [ 20 ]\r
41 [\r
42     V{ } clone\r
43     10 10 pick [ [ push ] [ push ] bi ] curry 2parallel-each\r
44     length\r
45 ] unit-test\r
46 \r
47 [ { f } [ "OOPS" throw ] parallel-each ] must-fail\r