]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/isequences/isequences-tests.factor
b594a4895499c3b81940f243b17cc836c1469d99
[factor.git] / unmaintained / isequences / isequences-tests.factor
1 ! Copyright (C) 2007 Robbert van Dalen.
2 ! See http://factorcode.org/license.txt for BSD license.
3
4 USING: kernel sequences isequences.interface isequences.base isequences.ops tools.test strings ;
5 IN: temporary
6
7 ! strict isequences (++)
8 !
9 { 4 } [ 4 i-length ] unit-test
10 { 4 } [ { 1 2 3 4 } i-length ] unit-test
11 { -4 } [ 4 -- i-length ] unit-test
12 { -4 } [ { 1 2 3 4 } -- i-length ] unit-test
13
14 { 4 } [ { 1 2 3 } { 4 5 6 } ++ 3 i-at ] unit-test
15 { { 3 2 1 } } [ { 1 2 3 } -- to-sequence ] unit-test
16 { 0 } [ 100 30 i-at ] unit-test
17 { 2 } [ { 1 2 3 4 } 1 i-at ] unit-test
18 { 2 } [ { 1 2 3 4 } -- -1 i-at ] unit-test
19
20 { 6 } [ 10 4 -- ++ ] unit-test 
21 { { 1 2 3 4 5 6 } }  [ { 1 2 3 } { 4 5 6 } ++ to-sequence ] unit-test
22 { { 1 2 3 0 0 0 } }  [ { 1 2 3 } 3 ++ to-sequence ] unit-test
23 { { 0 1 2 3 4 5 6 7 8 9 } }  [ 10 [ <i> ] map unclip [ ++ ] reduce to-sequence ] unit-test
24 { { 0 1 2 3 } }  [ { 0 1 2 3 4 5 } 2 -- ++ to-sequence ] unit-test 
25 { { 3 2 1 } } [ { 1 2 3 4 5 } -- 2 ++ to-sequence ] unit-test
26 { { 0 1 2 3 } } [ { 0 1 2 3 4 5 6 } [ 7 8 9 ] -- ++ to-sequence ] unit-test
27 { { 6 5 4 3 2 1 } } [ { 1 2 3 } -- { 4 5 6 } -- ++ to-sequence ] unit-test
28 { { 0 1 } }  [ 100000 [ <i> ] map unclip [ ++ ] reduce -99998 ++ to-sequence ] unit-test
29 { { } } [ { 1 2 3 } { 4 5 6 } -- ++ to-sequence ] unit-test
30
31
32 ! (Lazy) Enchilada operators ( ** || `` ~~ :: // ## )
33 !
34 { { 3 2 1 } } [ { 1 2 3 } `` to-sequence ] unit-test
35 { { 1 2 3 } } [ { 1 2 3 } `` -- to-sequence ] unit-test
36 { { 1 1 2 2 3 3 } { 4 5 4 5 4 5 } } [ { 1 2 3 } { 4 5 } ** [ to-sequence ] 2apply ] unit-test
37 { { 3 3 2 2 1 1 } { 4 5 4 5 4 5 } } [ { 1 2 3 } -- { 4 5 } ** [ to-sequence ] 2apply ] unit-test
38 { { { 1 3 } { 2 4 } } } [ { { 1 } { 2 } } { { 3 } { 4 } } || to-sequence [ to-sequence ] map ] unit-test
39 { { { 1 4 } { 2 3 } } } [ { { 1 } { 2 } } { { 3 } { 4 } } -- || to-sequence [ to-sequence ] map ] unit-test
40
41
42 { 0 } [ 2 ~~ -2 4 ~~ ++ :: || dup ## :: swap :: ## :: swap ++ to-sequence 4 ~~ i-cmp ] unit-test
43 { { { 1 4 } { 2 5 } { 3 } } } [ { { 1 } { 2 } { 3 } } { { 4 } { 5 } } || to-sequence [ to-sequence ] map ] unit-test
44 { 0 } [ 4 ~~ to-sequence 4 [ <i> <i> ] map unclip [ ++ ] reduce i-cmp ] unit-test
45 { { 1 1 1 1 2 2 2 3 3 4 } { 1 1 } }  [ { 1 1 2 1 } { 2 3 2 4 3 1 } << [ to-sequence ] 2apply ] unit-test
46
47 { { 0 1 2 "a" 3 4 5 "b" 6 7 8 "c" 9 10 11 "d" } } [ { 0 1 2 3 4 5 6 7 8 9 10 11 } 3 swap ** nip 3 // drop { "a" "b" "c" "d" } ++ 4 swap ** nip 4 // drop to-sequence ] unit-test