]> gitweb.factorcode.org Git - factor.git/blob - basis/timers/timers-tests.factor
core, basis, extra: Remove DOS line endings from files.
[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