]> gitweb.factorcode.org Git - factor.git/blob - basis/splitting/monotonic/monotonic-tests.factor
factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test
[factor.git] / basis / splitting / monotonic / monotonic-tests.factor
1 IN: splitting.monotonic
2 USING: tools.test math arrays kernel sequences ;
3
4 { { } } [ { } [ < ] monotonic-split ] unit-test
5 { { V{ 1 } } } [ { 1 } [ < ] monotonic-split ] unit-test
6 { { V{ 1 2 } } } [ { 1 2 } [ < ] monotonic-split ] unit-test
7 { { V{ 1 } V{ 2 } } } [ { 1 2 } [ > ] monotonic-split ] unit-test
8 { { V{ 1 } V{ -1 5 } V{ 2 4 } } }
9 [ { 1 -1 5 2 4 } [ < ] monotonic-split ] unit-test
10 { { V{ 1 1 1 1 } V{ 2 2 } V{ 3 } V{ 4 } V{ 5 } V{ 6 6 6 } } }
11 [ { 1 1 1 1 2 2 3 4 5 6 6 6 } [ = ] monotonic-split ] unit-test
12
13 { { } }
14 [ { } [ = ] slice monotonic-slice ] unit-test
15
16 { t }
17 [ { 1 } [ = ] slice monotonic-slice [ slice? ] all? ] unit-test
18
19 { { { 1 } } }
20 [ { 1 } [ = ] slice monotonic-slice [ >array ] map ] unit-test
21
22 [ { 1 } [ = ] slice monotonic-slice ] must-infer
23
24 { t }
25 [ { 1 1 1 2 2 3 3 4 } [ = ] slice monotonic-slice [ slice? ] all? ] unit-test
26
27 { { { 1 1 1 } { 2 2 } { 3 3 } { 4 } } }
28 [ { 1 1 1 2 2 3 3 4 } [ = ] slice monotonic-slice [ >array ] map ] unit-test
29
30 { { { 3 3 } } }
31 [ { 3 3 } [ = ] slice monotonic-slice [ >array ] map ] unit-test
32
33 {
34     {
35         T{ upward-slice { from 0 } { to 3 } { seq { 1 2 3 2 1 } } }
36         T{ downward-slice { from 2 } { to 5 } { seq { 1 2 3 2 1 } } }
37     }
38 }
39 [ { 1 2 3 2 1 } trends ] unit-test
40
41 {
42     {
43         T{ upward-slice
44             { from 0 }
45             { to 3 }
46             { seq { 1 2 3 3 2 1 } }
47         }
48         T{ stable-slice
49             { from 2 }
50             { to 4 }
51             { seq { 1 2 3 3 2 1 } }
52         }
53         T{ downward-slice
54             { from 3 }
55             { to 6 }
56             { seq { 1 2 3 3 2 1 } }
57         }
58     }
59 } [ { 1 2 3 3 2 1 } trends ] unit-test
60
61
62 { { { 2 2 } { 3 3 3 3 } { 4 } { 5 } } }
63 [
64     { 2 2 3 3 3 3 4 5 }
65     [ [ odd? ] same? ] slice monotonic-slice
66     [ >array ] map
67 ] unit-test
68
69 {
70     { { 1 1 1 } { 2 2 2 2 } { 3 3 } }
71 } [
72     { 1 1 1 2 2 2 2 3 3 }
73     [ [ odd? ] same? ] slice monotonic-slice
74     [ >array ] map
75 ] unit-test