]> gitweb.factorcode.org Git - factor.git/blob - core/test/combinators.factor
more sql changes
[factor.git] / core / test / combinators.factor
1 IN: temporary
2 USING: alien errors strings ;
3 USE: kernel
4 USE: math
5 USE: test
6 USE: io
7 USE: prettyprint
8 USE: namespaces
9
10 [ slip ] unit-test-fails
11 [ 1 slip ] unit-test-fails
12 [ 1 2 slip ] unit-test-fails
13 [ 1 2 3 slip ] unit-test-fails
14
15 [ 5 ] [ [ 2 2 + ] 1 slip + ] unit-test
16
17 [ [ ] keep ] unit-test-fails
18
19 [ 6 ] [ 2 [ sq ] keep + ] unit-test
20
21 [ [ ] 2keep ] unit-test-fails
22 [ 1 [ ] 2keep ] unit-test-fails
23 [ 3 1 2 ] [ 1 2 [ 2drop 3 ] 2keep ] unit-test
24
25 [ 0 ] [ f [ sq ] [ 0 ] if* ] unit-test
26 [ 4 ] [ 2 [ sq ] [ 0 ] if* ] unit-test
27
28 [ 0 ] [ f [ 0 ] unless* ] unit-test
29 [ t ] [ t [ "Hello" ] unless* ] unit-test
30
31 [ "2\n" ] [ [ 1 2 [ . ] [ sq . ] ?if ] string-out ] unit-test
32 [ "9\n" ] [ [ 3 f [ . ] [ sq . ] ?if ] string-out ] unit-test
33
34 [ "even" ] [
35     2 {
36         { [ dup 2 mod 0 = ] [ drop "even" ] }
37         { [ dup 2 mod 1 = ] [ drop "odd" ] }
38     } cond
39 ] unit-test
40
41 [ "odd" ] [
42     3 {
43         { [ dup 2 mod 0 = ] [ drop "even" ] }
44         { [ dup 2 mod 1 = ] [ drop "odd" ] }
45     } cond
46 ] unit-test
47
48 [ "neither" ] [
49     3 {
50         { [ dup string? ] [ drop "string" ] }
51         { [ dup float? ] [ drop "float" ] }
52         { [ dup alien? ] [ drop "alien" ] }
53         { [ t ] [ drop "neither" ] }
54     } cond
55 ] unit-test
56
57 [ ] [
58     [
59         [ drop ] catch drop
60         [ drop ] catch drop
61     ] keep-datastack
62 ] unit-test