factor/basis/timers/timers-tests.factor

68 lines
1.6 KiB
Factor
Raw Normal View History

2010-06-10 17:39:13 -04:00
USING: timers timers.private calendar concurrency.count-downs
concurrency.promises fry kernel math math.order sequences
threads tools.test tools.time ;
2010-06-10 17:39:13 -04:00
IN: timers.tests
2008-03-03 03:22:27 -05:00
[ ] [
1 <count-down>
{ f } clone 2dup
2010-06-10 17:39:13 -04:00
[ first stop-timer count-down ] 2curry 1 seconds later
2008-03-03 03:22:27 -05:00
swap set-first
await
] unit-test
[ ] [
2010-03-27 12:03:06 -04:00
self [ resume ] curry instant later drop
"test" suspend drop
2008-03-03 03:22:27 -05:00
] unit-test
2010-05-21 19:09:01 -04:00
[ t ] [
[
<promise>
[ '[ t _ fulfill ] 2 seconds later drop ]
[ 5 seconds ?promise-timeout drop ] bi
] benchmark 1,500,000,000 2,500,000,000 between?
2010-05-21 19:09:01 -04:00
] unit-test
[ { 3 } ] [
{ 3 } dup
'[ 4 _ set-first ] 2 seconds later
1/2 seconds sleep
2010-06-10 17:39:13 -04:00
stop-timer
2010-05-21 19:09:01 -04:00
] unit-test
[ { 1 } ] [
{ 0 }
dup '[ 0 _ [ 1 + ] change-nth ] 3 seconds later
2010-06-10 17:39:13 -04:00
[ stop-timer ] [ start-timer ] bi
4 seconds sleep
] unit-test
[ { 0 } ] [
{ 0 }
dup '[ 3 seconds sleep 1 _ set-first ] 1 seconds later
2010-06-10 17:39:13 -04:00
2 seconds sleep stop-timer
1/2 seconds sleep
] unit-test
[ { 0 } ] [
{ 0 }
dup '[ 1 _ set-first ] 300 milliseconds later
150 milliseconds sleep
2010-06-10 17:39:13 -04:00
[ restart-timer ] [ 200 milliseconds sleep stop-timer ] bi
] unit-test
[ { 1 } ] [
{ 0 }
dup '[ 0 _ [ 1 + ] change-nth ] 200 milliseconds later
2010-06-10 17:39:13 -04:00
100 milliseconds sleep restart-timer 300 milliseconds sleep
] unit-test
[ { 4 } ] [
{ 0 }
dup '[ 0 _ [ 1 + ] change-nth ] 300 milliseconds 300 milliseconds
2010-06-10 17:39:13 -04:00
<timer> dup start-timer
700 milliseconds sleep dup restart-timer
700 milliseconds sleep stop-timer 500 milliseconds sleep
] unit-test