]> gitweb.factorcode.org Git - factor.git/blob - basis/sequences/product/product-tests.factor
Switch to https urls
[factor.git] / basis / sequences / product / product-tests.factor
1 ! Copyright (C) 2009 Joe Groff.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: arrays kernel make math sequences sequences.product tools.test ;
4
5 { { { 0 "a" } { 1 "a" } { 2 "a" } { 0 "b" } { 1 "b" } { 2 "b" } } }
6 [ { { 0 1 2 } { "a" "b" } } <product-sequence> >array ] unit-test
7
8 { { "a" "aa" "aaa" "b" "bb" "bbb" } }
9 [ { { 1 2 3 } { "a" "b" } } [ first2 <repetition> concat ] product-map ] unit-test
10
11 {
12     {
13         { 0 "a" t } { 1 "a" t } { 2 "a" t } { 0 "b" t } { 1 "b" t } { 2 "b" t }
14         { 0 "a" f } { 1 "a" f } { 2 "a" f } { 0 "b" f } { 1 "b" f } { 2 "b" f }
15     }
16 } [ { { 0 1 2 } { "a" "b" } { t f } } [ ] product-map ] unit-test
17
18 { "a1b1c1a2b2c2" } [
19     [
20         { { "a" "b" "c" } { "1" "2" } }
21         [ [ % ] each ] product-each
22     ] "" make
23 ] unit-test
24
25 { { } } [ { { } { 1 } } [ ] product-map ] unit-test
26 { } [ { { } { 1 } } [ drop ] product-each ] unit-test
27
28 { f } [
29     { } [ sum zero? ] product-find
30 ] unit-test
31
32 { f } [
33     { f } [ sum zero? ] product-find
34 ] unit-test
35
36 { { 2 4 8 } } [
37     { { 1 2 3 } { 4 5 6 } { 7 8 9 } }
38     [ [ even? ] all? ] product-find
39 ] unit-test
40
41 { f } [
42     { { 1 2 3 } { 4 5 6 } { 7 8 9 } }
43     [ [ 10 > ] all? ] product-find
44 ] unit-test