]> gitweb.factorcode.org Git - factor.git/blob - basis/sequences/deep/deep-tests.factor
sequences.deep: adding a test for deep-reduce.
[factor.git] / basis / sequences / deep / deep-tests.factor
1 USING: sequences.deep kernel tools.test strings math arrays
2 namespaces make sequences ;
3 IN: sequences.deep.tests
4
5 [ [ "hello" 3 4 swap ] ] [ [ { "hello" V{ 3 4 } } swap ] flatten ] unit-test
6
7 { "ABC" } [ { { 65 } 66 { { 67 } } } "" flatten-as ] unit-test
8
9 [ "foo" t ] [ { { "foo" } "bar" } [ string? ] (deep-find) ] unit-test
10
11 [ f f ] [ { { "foo" } "bar" } [ number? ] (deep-find) ] unit-test
12
13 [ { { "foo" } "bar" } t ] [ { { "foo" } "bar" } [ array? ] (deep-find) ] unit-test
14
15 : change-something ( seq -- newseq )
16     dup array? [ "hi" suffix ] [ "hello" append ] if ;
17
18 [ { { "heyhello" "hihello" } "hihello" } ]
19 [ "hey" 1array 1array [ change-something ] deep-map ] unit-test
20
21 [ { { "heyhello" "hihello" } } ]
22 [ "hey" 1array 1array [ change-something ] deep-map! ] unit-test
23
24 [ t ] [ "foo" [ string? ] deep-any?  ] unit-test
25
26 [ "foo" ] [ "foo" [ string? ] deep-find ] unit-test
27
28 [ { { 1 2 } 1 2 } ] [ [ { 1 2 } [ , ] deep-each ] { } make ] unit-test
29
30 [ t ]
31 [ { { 1 2 3 } 4 } { { { 1 { { 1 2 3 } 4 } } } 2 } deep-member? ] unit-test
32
33 [ t ]
34 [ { { 1 2 3 } 4 } { { { 1 2 3 } 4 } 2 } deep-member? ] unit-test
35
36 [ f ]
37 [ { 1 2 3 4 } { 1 2 3 { 4 } } deep-subseq? ] unit-test
38
39 [ t ]
40 [ { 1 2 3 4 } { 1 2 3 4 } deep-subseq? ] unit-test
41
42 [ t ]
43 [ { 1 2 3 4 } { { 1 2 3 4 } } deep-subseq? ] unit-test
44
45 { 3 } [
46     { 1 { 2 3 { 4 } } 5 { { 6 } 7 } } 0 [
47         dup integer? [ even? [ 1 + ] when ] [ drop ] if
48     ] deep-reduce
49 ] unit-test