]> gitweb.factorcode.org Git - factor.git/blob - core/ranges/ranges-tests.factor
inverse: Fix docs
[factor.git] / core / ranges / ranges-tests.factor
1 USING: arrays kernel math ranges sequences sets tools.test ;
2
3 { { } } [ 1 1 (a..b) >array ] unit-test
4 { { } } [ 1 1 (a..b] >array ] unit-test
5 { { } } [ 1 1 [a..b) >array ] unit-test
6 { { 1 } } [ 1 1 [a..b] >array ] unit-test
7
8 { { }  } [ 1 2 (a..b) >array ] unit-test
9 { { 2 } } [ 1 2 (a..b] >array ] unit-test
10 { { 1 } } [ 1 2 [a..b) >array ] unit-test
11 { { 1 2 } } [ 1 2 [a..b] >array ] unit-test
12
13 { { } } [ 2 1 (a..b) >array ] unit-test
14 { { 1 } } [ 2 1 (a..b] >array ] unit-test
15 { { 2 } } [ 2 1 [a..b) >array ] unit-test
16 { { 2 1 } } [ 2 1 [a..b] >array ] unit-test
17
18 { { 1 2 3 4 5 } } [ 1 5 1 <range> >array ] unit-test
19 { { 5 4 3 2 1 } } [ 5 1 -1 <range> >array ] unit-test
20
21 { { 0 1/3 2/3 1 } } [ 0 1 1/3 <range> >array ] unit-test
22 { { 0 1/3 2/3 1 } } [ 1 0 -1/3 <range> >array reverse ] unit-test
23
24 { 0 } [ 0 -1 .0001 <range> length ] unit-test
25 { 0 } [ 0 -1 .5 <range> length ] unit-test
26 { 0 } [ 0 -1 1 <range> length ] unit-test
27 { 0 } [ 0 -1 2 <range> length ] unit-test
28 { 0 } [ 0 -1 3 <range> length ] unit-test
29 { 0 } [ 0 -1 4 <range> length ] unit-test
30
31 { 0 } [ 0 -2 .0001 <range> length ] unit-test
32 { 0 } [ 0 -2 1 <range> length ] unit-test
33 { 0 } [ 0 -2 2 <range> length ] unit-test
34 { 0 } [ 0 -2 3 <range> length ] unit-test
35 { 0 } [ 0 -2 4 <range> length ] unit-test
36
37 { 0 } [ -1 0 -.0001 <range> length ] unit-test
38 { 0 } [ -1 0 -.5 <range> length ] unit-test
39 { 0 } [ -1 0 -1 <range> length ] unit-test
40 { 0 } [ -1 0 -2 <range> length ] unit-test
41 { 0 } [ -1 0 -3 <range> length ] unit-test
42 { 0 } [ -1 0 -4 <range> length ] unit-test
43
44 { 0 } [ -2 0 -.0001 <range> length ] unit-test
45 { 0 } [ -2 0 -1 <range> length ] unit-test
46 { 0 } [ -2 0 -2 <range> length ] unit-test
47 { 0 } [ -2 0 -3 <range> length ] unit-test
48 { 0 } [ -2 0 -4 <range> length ] unit-test
49
50 { 100 } [
51     1 100 [a..b] [ 2^ [1..b] ] map members length
52 ] unit-test
53
54 { t } [ -10 10 1 <range> [ sum ] [ >array sum ] bi = ] unit-test
55 { t } [ -10 10 2 <range> [ sum ] [ >array sum ] bi = ] unit-test
56 { t } [ 10 -10 -1 <range> [ sum ] [ >array sum ] bi = ] unit-test
57 { t } [ 10 -10 -2 <range> [ sum ] [ >array sum ] bi = ] unit-test
58
59 ! Empty range
60 { 0 } [ 1 0 1 <range> sum ] unit-test
61
62 { t } [ 4 4 10 2 <range> in? ] unit-test
63 { t } [ 6 4 10 2 <range> in? ] unit-test
64 { t } [ 10 4 10 2 <range> in? ] unit-test
65 { t } [ -6 4 -10 -2 <range> in? ] unit-test
66 { t } [ 6 10 4 -1 <range> in? ] unit-test
67
68 { f } [ 5 4 10 2 <range> in? ] unit-test
69 { f } [ 3 4 10 2 <range> in? ] unit-test
70 { f } [ 4.0 4 10 2 <range> in? ] unit-test
71 { f } [ 6.0 4 10 2 <range> in? ] unit-test
72 { f } [ 10.0 4 10 2 <range> in? ] unit-test
73
74 { { } } [ 1 8 2 <range> 2 9 2 <range> intersect >array ] unit-test
75 { { } } [ 1 8 2 <range> 8 1 -2 <range> intersect >array ] unit-test
76 { { } } [ 1 -9 1 <range> 1 8 1 <range> intersect >array ] unit-test
77 { { 13 19 25 31 37 43 49 } } [
78     1 100 3 <range> 11 50 2 <range> intersect >array ] unit-test
79 { { 6 } } [
80     6 7 1 <range> 6 -20 -4 <range> intersect >array ] unit-test
81 { { 3 3+1/3 3+2/3 4 4+1/3 4+2/3 5 } } [
82     2 5 1/3 <range> 3 10 1/3 <range> intersect >array ] unit-test
83 { { 1.0 1.5 2.0 } } [
84     1.0 2.0 0.25 <range> 1.0 2.0 0.5 <range> intersect >array ] unit-test
85
86 { f } [ 1 8 2 <range> 2 9 2 <range> intersects? ] unit-test
87 { f } [ 1 8 2 <range> 8 1 -2 <range> intersects? ] unit-test
88 { f } [ 1 -9 1 <range> 1 8 1 <range> intersects? ] unit-test
89 { t } [ 1 100 3 <range> 11 50 2 <range> intersects? ] unit-test
90 { t } [ 6 7 1 <range> 6 -20 -4 <range> intersects? ] unit-test
91
92 { t } [ 6 9 2 <range> 6 8 2 <range> set= ] unit-test
93 { t } [ 2 9 2 <range> 8 1 -2 <range> set= ] unit-test
94 { t } [ 9 0 3 <range> 4 8 -2 <range> set= ] unit-test
95 { f } [ 1 8 1 <range> 1 8 2 <range> set= ] unit-test
96
97 { t } [ 3 10 4 <range> 1 10 2 <range> subset? ] unit-test
98 { t } [ 1 0 1 <range> 10 2 1 <range> subset? ] unit-test
99 { f } [ 1 10 2 <range> 3 10 4 <range> subset? ] unit-test
100
101 { { 1.5 2.5 3.5 } } [ 1.5 3.7 [a..b) >array ] unit-test
102 { { 1+1/2 2+1/2 3+1/2 } } [ 3/2 37/10 [a..b) >array ] unit-test