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