]> gitweb.factorcode.org Git - factor.git/blob - basis/interval-sets/interval-sets-tests.factor
2d454eeb6182dda411531f3ed9b9a599372947e0
[factor.git] / basis / interval-sets / interval-sets-tests.factor
1 ! Copyright (C) 2009 Daniel Ehrenberg.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: tools.test interval-sets math grouping sequences accessors
4 combinators.short-circuit literals ;
5 IN: interval-sets.tests
6
7 [ f ] [ 0 T{ interval-set } in? ] unit-test
8 [ f ] [ 2 T{ interval-set } in? ] unit-test
9
10 CONSTANT: i1 $[
11     { { 3 4 } } <interval-set> ]
12
13 [ f ] [ 2 i1 in? ] unit-test
14 [ t ] [ 3 i1 in? ] unit-test
15 [ t ] [ 4 i1 in? ] unit-test
16 [ f ] [ 5 i1 in? ] unit-test
17
18 CONSTANT: i2 $[
19     { { 3 4 } } <interval-set>
20     0x10FFFF <interval-not> ] ! unicode-max
21
22 [ t ] [ 2 i2 in? ] unit-test
23 [ f ] [ 3 i2 in? ] unit-test
24 [ f ] [ 4 i2 in? ] unit-test
25 [ t ] [ 5 i2 in? ] unit-test
26
27 CONSTANT: i3 $[
28     { { 2 4 } } <interval-set>
29     { { 6 8 } } <interval-set>
30     <interval-or> ]
31
32 [ f ] [ 1 i3 in? ] unit-test
33 [ t ] [ 2 i3 in? ] unit-test
34 [ t ] [ 3 i3 in? ] unit-test
35 [ t ] [ 4 i3 in? ] unit-test
36 [ f ] [ 5 i3 in? ] unit-test
37 [ t ] [ 6 i3 in? ] unit-test
38 [ t ] [ 7 i3 in? ] unit-test
39 [ t ] [ 8 i3 in? ] unit-test
40 [ f ] [ 9 i3 in? ] unit-test
41
42 CONSTANT: i4 $[
43     { { 2 4 } } <interval-set>
44     { { 6 8 } } <interval-set>
45     <interval-and> ]
46
47 [ f ] [ 1 i4 in? ] unit-test
48 [ f ] [ 2 i4 in? ] unit-test
49 [ f ] [ 3 i4 in? ] unit-test
50 [ f ] [ 4 i4 in? ] unit-test
51 [ f ] [ 5 i4 in? ] unit-test
52 [ f ] [ 6 i4 in? ] unit-test
53 [ f ] [ 7 i4 in? ] unit-test
54 [ f ] [ 8 i4 in? ] unit-test
55 [ f ] [ 9 i4 in? ] unit-test
56
57 CONSTANT: i5 $[
58     { { 2 5 } } <interval-set>
59     { { 4 8 } } <interval-set>
60     <interval-or> ]
61
62 [ f ] [ 1 i5 in? ] unit-test
63 [ t ] [ 2 i5 in? ] unit-test
64 [ t ] [ 3 i5 in? ] unit-test
65 [ t ] [ 4 i5 in? ] unit-test
66 [ t ] [ 5 i5 in? ] unit-test
67 [ t ] [ 6 i5 in? ] unit-test
68 [ t ] [ 7 i5 in? ] unit-test
69 [ t ] [ 8 i5 in? ] unit-test
70 [ f ] [ 9 i5 in? ] unit-test
71
72 CONSTANT: i6 $[
73     { { 2 5 } } <interval-set>
74     { { 4 8 } } <interval-set>
75     <interval-and> ]
76
77 [ f ] [ 1 i6 in? ] unit-test
78 [ f ] [ 2 i6 in? ] unit-test
79 [ f ] [ 3 i6 in? ] unit-test
80 [ t ] [ 4 i6 in? ] unit-test
81 [ t ] [ 5 i6 in? ] unit-test
82 [ f ] [ 6 i6 in? ] unit-test
83 [ f ] [ 7 i6 in? ] unit-test
84 [ f ] [ 8 i6 in? ] unit-test
85 [ f ] [ 9 i6 in? ] unit-test
86
87 : criterion ( interval-set -- ? )
88     array>> {
89         [ [ < ] monotonic? ]
90         [ length even? ]
91     } 1&& ;
92
93 [ t ] [ i1 criterion ] unit-test
94 [ t ] [ i2 criterion ] unit-test
95 [ t ] [ i3 criterion ] unit-test
96 [ t ] [ i4 criterion ] unit-test
97 [ t ] [ i5 criterion ] unit-test
98 [ t ] [ i6 criterion ] unit-test