]> gitweb.factorcode.org Git - factor.git/blob - extra/coroutines/coroutines-tests.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / extra / coroutines / coroutines-tests.factor
1 ! Copyright (C) 2005 Chris Double, 2007 Clemens Hofreither, 2008 James Cash.
2 ! See http://factorcode.org/license.txt for BSD license.
3 IN: coroutines.tests
4 USING: coroutines kernel sequences prettyprint tools.test math ;
5
6 : test1 ( -- co )
7   [ drop 1 coyield* 2 coyield* 3 coterminate ] cocreate ;
8
9 : test2 ( -- co )
10   [ 1 + coyield* ] cocreate ;
11
12 test1 dup *coresume . dup *coresume . dup *coresume . dup *coresume 2drop
13 [ test2 42 over coresume . dup *coresume . drop ] must-fail
14 { 43 } [ 42 test2 coresume ] unit-test
15
16 : test3 ( -- co )
17   [ [ coyield* ] each ] cocreate ;
18
19 { "c" "b" "a" } [ test3 { "a" "b" "c" } over coresume [ dup *coresume [ *coresume ] dip ] dip ] unit-test
20
21 { 4+2/3 } [ [ 1 + coyield 2 * coyield 3 / coreset ] cocreate 1 5 [ over coresume ] times nip ] unit-test