]> gitweb.factorcode.org Git - factor.git/blob - core/generalizations/generalizations-tests.factor
Revert "interpolate: allow format directives to be used"
[factor.git] / core / generalizations / generalizations-tests.factor
1 USING: arrays ascii generalizations kernel math math.parser
2 sequences sequences.generalizations tools.test ;
3 IN: generalizations.tests
4
5 { 1 2 3 4 1 } [ 1 2 3 4 4 npick ] unit-test
6 { 1 2 3 4 2 } [ 1 2 3 4 3 npick ] unit-test
7 { 1 2 3 4 3 } [ 1 2 3 4 2 npick ] unit-test
8 { 1 2 3 4 4 } [ 1 2 3 4 1 npick ] unit-test
9 [ 1 2 3 4 0 npick ] [ nonpositive-npick? ] must-fail-with
10 [ 1 2 3 4 -11 npick ] [ nonpositive-npick? ] must-fail-with
11
12 [ 1 1 ndup ] must-infer
13 { 1 1 } [ 1 1 ndup ] unit-test
14 { 1 2 1 2 } [ 1 2 2 ndup ] unit-test
15 { 1 2 3 1 2 3 } [ 1 2 3 3 ndup ] unit-test
16 { 1 2 3 4 1 2 3 4 } [ 1 2 3 4 4 ndup ] unit-test
17 [ 1 2 2 nrot ] must-infer
18 { 2 1 } [ 1 2 2 nrot ] unit-test
19 { 2 3 1 } [ 1 2 3 3 nrot ] unit-test
20 { 2 3 4 1 } [ 1 2 3 4 4 nrot ] unit-test
21 [ 1 2 2 -nrot ] must-infer
22 { 2 1 } [ 1 2 2 -nrot ] unit-test
23 { 3 1 2 } [ 1 2 3 3 -nrot ] unit-test
24 { 4 1 2 3 } [ 1 2 3 4 4 -nrot ] unit-test
25 [ 1 2 3 4 3 nnip ] must-infer
26 { 4 } [ 1 2 3 4 3 nnip ] unit-test
27 [ 1 2 3 4 4 ndrop ] must-infer
28 { 0 } [ 0 1 2 3 4 4 ndrop ] unit-test
29 [ [ 1 ] 5 ndip ] must-infer
30 { 1 2 3 4 } [ 2 3 4 [ 1 ] 3 ndip ] unit-test
31
32 [ [ 1 2 3 ] 2 3 0 nrotated ] must-infer
33 [ [ 1 2 3 ] 2 3 0 -nrotated ] must-infer
34 { 1 2 3 4 } [ 1 2 3 4  4 4 0 nrotated ] unit-test
35 { 1 2 3 4 } [ 1 2 3 4  4 4 0 -nrotated ] unit-test
36 { 3 1 2 4 } [ 1 2 3 4  1 3 1 -nrotated ] unit-test
37
38
39 { 1 2 3  1 2 }
40 [ 1 2 3  2 1 0 noverd ] unit-test
41
42 { 1 2 3  4 5 6 7 8  1 2 3  9 }
43 [ 1 2 3  4 5 6 7 8  9  3 5 1 noverd ] unit-test
44
45 { t }
46 [
47     1 2 3 4 5 6 7   8 9    3 2  ntuckd 10 narray
48     1 2 3 4 5 6 7   8 9  1 3 2 mntuckd 10 narray =
49 ] unit-test
50
51 { 1  4 5  2 3  4 5  6 7 }
52 [ 1 2 3 4 5 6 7  2 4 2 mntuckd ] unit-test
53
54 { 1 2 3 4 2 3 4 5 6 5 6 7 }
55 [ 1 2 3 4 5 6 7  5 2 1 mntuckd ] unit-test
56
57 { 4 5 6 7  0 1 2 3 4 5 6 7 8 9 } [
58     0 1 2 3   4 5 6 7   8 9
59     4 8 2 mntuckd
60 ] unit-test
61
62 { 1 2 3 5 4 } [ 1 2 3 4 5  2 0 -nrotd ] unit-test
63 { 1 2 4 3 5 } [ 1 2 3 4 5  2 1 -nrotd ] unit-test
64 { 1 3 2 4 5 } [ 1 2 3 4 5  2 2 -nrotd ] unit-test
65 { 2 1 3 4 5 } [ 1 2 3 4 5  2 3 -nrotd ] unit-test
66
67 { 1 2 3 5 4 } [ 1 2 3 4 5  2 0  nrotd ] unit-test
68 { 1 2 4 3 5 } [ 1 2 3 4 5  2 1  nrotd ] unit-test
69 { 1 3 2 4 5 } [ 1 2 3 4 5  2 2  nrotd ] unit-test
70 { 2 1 3 4 5 } [ 1 2 3 4 5  2 3  nrotd ] unit-test
71
72 { 1 2 5 3 4 } [ 1 2 3 4 5  3 0 -nrotd ] unit-test
73 { 1 2 5 3 4 } [ 1 2 3 4 5  -3 0 nrotd ] unit-test
74 { 1 4 2 3 5 } [ 1 2 3 4 5  3 1 -nrotd ] unit-test
75 { 1 4 2 3 5 } [ 1 2 3 4 5  -3 1 nrotd ] unit-test
76 { 3 1 2 4 5 } [ 1 2 3 4 5  3 2 -nrotd ] unit-test
77 { 3 1 2 4 5 } [ 1 2 3 4 5  -3 2 nrotd ] unit-test
78
79 { 1 2 4 5 3 } [ 1 2 3 4 5  3 0 nrotd ] unit-test
80 { 1 2 4 5 3 } [ 1 2 3 4 5  -3 0 -nrotd ] unit-test
81 { 1 3 4 2 5 } [ 1 2 3 4 5  3 1 nrotd ] unit-test
82 { 1 3 4 2 5 } [ 1 2 3 4 5  -3 1 -nrotd ] unit-test
83 { 2 3 1 4 5 } [ 1 2 3 4 5  3 2 nrotd ] unit-test
84 { 2 3 1 4 5 } [ 1 2 3 4 5  -3 2 -nrotd ] unit-test
85
86 [ 1 2 3 4 5 [ drop drop drop drop drop 2 ] 5 nkeep ] must-infer
87 [ 1 2 3 4 5 2 '[ drop drop drop drop drop _ ] 5 nkeep ] must-infer
88 { 2 1 2 3 4 5 } [ 1 2 3 4 5 [ drop drop drop drop drop 2 ] 5 nkeep ] unit-test
89 { 2 1 2 3 4 5 } [ 1 2 3 4 5 2 '[ drop drop drop drop drop _ ] 5 nkeep ] unit-test
90 { [ 1 2 3 + ] } [ 1 2 3 [ + ] 3 ncurry ] unit-test
91
92 { "HELLO" } [ "hello" [ >upper ] 1 napply ] unit-test
93 { { 1 2 } { 2 4 } { 3 8 } { 4 16 } { 5 32 } } [ 1 2 3 4 5 [ dup 2^ 2array ] 5 napply ] unit-test
94 [ [ dup 2^ 2array ] 5 napply ] must-infer
95
96 { { "xyc" "xyd" } } [ "x" "y" { "c" "d" } [ 3append ] 2 nwith map ] unit-test
97
98 { 4 5 1 2 3 } [ 1 2 3 4 5 2 3 mnswap ] unit-test
99
100 { 1 2 3 4 5 6 } [ 1 2 3 4 5 6 2 4 mnswap 4 2 mnswap ] unit-test
101
102 { 17 } [ 3 1 3 3 7 5 nsum ] unit-test
103 { 4 1 } [ 4 nsum ] must-infer-as
104
105 { "e1" "o1" "o2" "e2" "o1" "o2" } [ "e1" "e2" "o1" "o2" 2 nweave ] unit-test
106 { 3 5 } [ 2 nweave ] must-infer-as
107
108 { { 0 1 2 } { 3 5 4 } { 7 8 6 } }
109 [ 9 [ ] each-integer { [ 3array ] [ swap 3array ] [ rot 3array ] } 3 nspread ] unit-test
110
111 { 1 2 3 4 1 2 3 } [ 1 2 3 4 3 nover ] unit-test
112
113 { [ 1 2 3 ] [ 1 2 3 ] }
114 [ 1 2 3 [ ] [ ] 3 nbi-curry ] unit-test
115
116 { 15 3 } [ 1 2 3 4 5 [ + + + + ] [ - - - - ] 5 nbi ] unit-test
117
118 : nover-test ( -- a b c d e f g )
119    1 2 3 4 3 nover ;
120
121 { 1 2 3 4 1 2 3 } [ nover-test ] unit-test
122
123 [ '[ number>string _ append ] 4 napply ] must-infer
124
125 { 6 8 10 12 } [
126     1 2 3 4
127     5 6 7 8 [ + ] 4 apply-curry 4 spread*
128 ] unit-test
129
130 { 6 } [ 5 [ 1 + ] 1 spread* ] unit-test
131 { 6 } [ 5 [ 1 + ] 1 cleave* ] unit-test
132 { 6 } [ 5 [ 1 + ] 1 napply  ] unit-test
133
134 { 6 } [ 6 0 spread* ] unit-test
135 { 6 } [ 6 0 cleave* ] unit-test
136 { 6 } [ 6 [ 1 + ] 0 napply ] unit-test
137
138 { 6 7 8 9 } [
139     1
140     5 6 7 8 [ + ] 4 apply-curry 4 cleave*
141 ] unit-test
142
143 { 8 3 8 3/2 } [
144     6 5 4 3
145     2 [ + ] [ - ] [ * ] [ / ] 4 cleave-curry 4 spread*
146 ] unit-test
147
148 { 8 4 0 -3 } [
149     6 5 4  3
150     2 1 0 -1 [ + ] [ - ] [ * ] [ / ] 4 spread-curry 4 spread*
151 ] unit-test
152
153 { { 1 2 } { 3 4 } { 5 6 } }
154 [ 1 2 3 4 5 6 [ 2array ] 2 3 mnapply ] unit-test
155
156 { 1 4 9 16 }
157 [ 1 1 2 2 3 3 4 4 [ * ] 2 4 mnapply ] unit-test
158
159 { 1 8 27 64 125 }
160 [ 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 [ * * ] 3 5 mnapply ] unit-test
161
162 { { 1 2 3 } { 4 5 6 } }
163 [ 1 2 3 4 5 6 [ 3array ] 3 2 mnapply ] unit-test
164
165 { { 1 2 3 } { 4 5 6 } }
166 [ 1 2 3 4 5 6 [ 3array ] [ 3array ] 3 2 nspread* ] unit-test
167
168 { }
169 [ [ 2array ] 2 0 mnapply ] unit-test
170
171 { }
172 [ 2 0 nspread* ] unit-test