]> gitweb.factorcode.org Git - factor.git/blob - basis/timers/timers-tests.factor
82274aff45c318a17ba6f2a8de0d3880f5fede74
[factor.git] / basis / timers / timers-tests.factor
1 USING: timers timers.private calendar concurrency.count-downs\r
2 concurrency.promises fry kernel math math.order sequences\r
3 threads tools.test tools.time ;\r
4 IN: timers.tests\r
5 \r
6 [ ] [\r
7     1 <count-down>\r
8     { f } clone 2dup\r
9     [ first stop-timer count-down ] 2curry 1 seconds later\r
10     swap set-first\r
11     await\r
12 ] unit-test\r
13 \r
14 [ ] [\r
15     self [ resume ] curry instant later drop\r
16     "test" suspend drop\r
17 ] unit-test\r
18 \r
19 [ t ] [\r
20     [\r
21         <promise>\r
22         [ '[ t _ fulfill ] 2 seconds later drop ]\r
23         [ 5 seconds ?promise-timeout drop ] bi\r
24     ] benchmark 1,500,000,000 2,500,000,000 between?\r
25 ] unit-test\r
26 \r
27 [ { 3 } ] [\r
28     { 3 } dup\r
29     '[ 4 _ set-first ] 2 seconds later\r
30     1/2 seconds sleep\r
31     stop-timer\r
32 ] unit-test\r
33 \r
34 [ { 1 } ] [\r
35     { 0 }\r
36     dup '[ 0 _ [ 1 + ] change-nth ] 3 seconds later\r
37     [ stop-timer ] [ start-timer ] bi\r
38     4 seconds sleep\r
39 ] unit-test\r
40 \r
41 [ { 0 } ] [\r
42     { 0 }\r
43     dup '[ 3 seconds sleep 1 _ set-first ] 1 seconds later\r
44     2 seconds sleep stop-timer\r
45     1/2 seconds sleep\r
46 ] unit-test\r
47 \r
48 [ { 0 } ] [\r
49     { 0 }\r
50     dup '[ 1 _ set-first ] 300 milliseconds later\r
51     150 milliseconds sleep\r
52     [ restart-timer ] [ 200 milliseconds sleep stop-timer ] bi\r
53 ] unit-test\r
54 \r
55 [ { 1 } ] [\r
56     { 0 }\r
57     dup '[ 0 _ [ 1 + ] change-nth ] 200 milliseconds later\r
58     100 milliseconds sleep restart-timer 300 milliseconds sleep\r
59 ] unit-test\r
60 \r
61 [ { 4 } ] [\r
62     { 0 }\r
63     dup '[ 0 _ [ 1 + ] change-nth ] 300 milliseconds 300 milliseconds\r
64     <timer> dup start-timer\r
65     700 milliseconds sleep dup restart-timer\r
66     700 milliseconds sleep stop-timer 500 milliseconds sleep\r
67 ] unit-test\r