]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/tree/propagation/info/info-tests.factor
factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!
[factor.git] / basis / compiler / tree / propagation / info / info-tests.factor
1 USING: accessors math math.intervals sequences classes.algebra
2 kernel tools.test compiler.tree.propagation.info arrays ;
3 IN: compiler.tree.propagation.info.tests
4
5 { f } [ 0.0 -0.0 eql? ] unit-test
6
7 { t t } [
8     0 10 [a,b] <interval-info>
9     5 20 [a,b] <interval-info>
10     value-info-intersect
11     [ class>> real class= ]
12     [ interval>> 5 10 [a,b] = ]
13     bi
14 ] unit-test
15
16 { float 10.0 t } [
17     10.0 <literal-info>
18     10.0 <literal-info>
19     value-info-intersect
20     [ class>> ] [ >literal< ] bi
21 ] unit-test
22
23 { null } [
24     10 <literal-info>
25     10.0 <literal-info>
26     value-info-intersect
27     class>>
28 ] unit-test
29
30 { fixnum 10 t } [
31     10 <literal-info>
32     10 <literal-info>
33     value-info-union
34     [ class>> ] [ >literal< ] bi
35 ] unit-test
36
37 { 3.0 t } [
38     3 3 [a,b] <interval-info> float <class-info>
39     value-info-intersect >literal<
40 ] unit-test
41
42 { 3 t } [
43     2 3 (a,b] <interval-info> fixnum <class-info>
44     value-info-intersect >literal<
45 ] unit-test
46
47 { T{ value-info-state f null empty-interval f f } } [
48     fixnum -10 0 [a,b] <class/interval-info>
49     fixnum 19 29 [a,b] <class/interval-info>
50     value-info-intersect
51 ] unit-test
52
53 { 3 t } [
54     3 <literal-info>
55     null-info value-info-union >literal<
56 ] unit-test
57
58 { } [ { } value-infos-union drop ] unit-test
59
60 TUPLE: test-tuple { x read-only } ;
61
62 { t } [
63     f f 3 <literal-info> 3array test-tuple <tuple-info> dup
64     object-info value-info-intersect =
65 ] unit-test
66
67 { t } [
68     null-info 3 <literal-info> value-info<=
69 ] unit-test
70
71 { t t } [
72     f <literal-info>
73     fixnum 0 40 [a,b] <class/interval-info>
74     value-info-union
75     \ f class-not <class-info>
76     value-info-intersect
77     [ class>> fixnum class= ]
78     [ interval>> 0 40 [a,b] = ] bi
79 ] unit-test