]> gitweb.factorcode.org Git - factor.git/blob - basis/interval-sets/interval-sets-tests.factor
Remove filtering on timestamps and use short ISO8601 to display them
[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 } interval-in? ] unit-test
8 { f } [ 2 T{ interval-set } interval-in? ] unit-test
9
10 CONSTANT: i1 $[
11     { { 3 4 } } <interval-set> ]
12
13 { f } [ 2 i1 interval-in? ] unit-test
14 { t } [ 3 i1 interval-in? ] unit-test
15 { t } [ 4 i1 interval-in? ] unit-test
16 { f } [ 5 i1 interval-in? ] unit-test
17
18 CONSTANT: i2 $[
19     { { 3 4 } } <interval-set>
20     0x10FFFF <interval-not> ] ! unicode-max
21
22 { t } [ 2 i2 interval-in? ] unit-test
23 { f } [ 3 i2 interval-in? ] unit-test
24 { f } [ 4 i2 interval-in? ] unit-test
25 { t } [ 5 i2 interval-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 interval-in? ] unit-test
33 { t } [ 2 i3 interval-in? ] unit-test
34 { t } [ 3 i3 interval-in? ] unit-test
35 { t } [ 4 i3 interval-in? ] unit-test
36 { f } [ 5 i3 interval-in? ] unit-test
37 { t } [ 6 i3 interval-in? ] unit-test
38 { t } [ 7 i3 interval-in? ] unit-test
39 { t } [ 8 i3 interval-in? ] unit-test
40 { f } [ 9 i3 interval-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 interval-in? ] unit-test
48 { f } [ 2 i4 interval-in? ] unit-test
49 { f } [ 3 i4 interval-in? ] unit-test
50 { f } [ 4 i4 interval-in? ] unit-test
51 { f } [ 5 i4 interval-in? ] unit-test
52 { f } [ 6 i4 interval-in? ] unit-test
53 { f } [ 7 i4 interval-in? ] unit-test
54 { f } [ 8 i4 interval-in? ] unit-test
55 { f } [ 9 i4 interval-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 interval-in? ] unit-test
63 { t } [ 2 i5 interval-in? ] unit-test
64 { t } [ 3 i5 interval-in? ] unit-test
65 { t } [ 4 i5 interval-in? ] unit-test
66 { t } [ 5 i5 interval-in? ] unit-test
67 { t } [ 6 i5 interval-in? ] unit-test
68 { t } [ 7 i5 interval-in? ] unit-test
69 { t } [ 8 i5 interval-in? ] unit-test
70 { f } [ 9 i5 interval-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 interval-in? ] unit-test
78 { f } [ 2 i6 interval-in? ] unit-test
79 { f } [ 3 i6 interval-in? ] unit-test
80 { t } [ 4 i6 interval-in? ] unit-test
81 { t } [ 5 i6 interval-in? ] unit-test
82 { f } [ 6 i6 interval-in? ] unit-test
83 { f } [ 7 i6 interval-in? ] unit-test
84 { f } [ 8 i6 interval-in? ] unit-test
85 { f } [ 9 i6 interval-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