]> gitweb.factorcode.org Git - factor.git/blob - core/math/floats/floats-tests.factor
core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota...
[factor.git] / core / math / floats / floats-tests.factor
1 USING: grouping kernel math math.constants math.order sequences
2 tools.test ;
3
4 { t } [ 0.0 float? ] unit-test
5 { t } [ 3.1415 number? ] unit-test
6 { f } [ 12 float? ] unit-test
7
8 { f } [ 1 1.0 = ] unit-test
9 { t } [ 1 1.0 number= ] unit-test
10
11 { f } [ 1 >bignum 1.0 = ] unit-test
12 { t } [ 1 >bignum 1.0 number= ] unit-test
13
14 { f } [ 1.0 1 = ] unit-test
15 { t } [ 1.0 1 number= ] unit-test
16
17 { f } [ 1.0 1 >bignum = ] unit-test
18 { t } [ 1.0 1 >bignum number= ] unit-test
19
20 { f } [ 1 1.3 = ] unit-test
21 { f } [ 1 >bignum 1.3 = ] unit-test
22 { f } [ 1.3 1 = ] unit-test
23 { f } [ 1.3 1 >bignum = ] unit-test
24
25 { t } [ 134.3 >fixnum 134 = ] unit-test
26
27 { 3 } [ 3.5 >bignum ] unit-test
28 { -3 } [ -3.5 >bignum ] unit-test
29
30 { 3 } [ 3.5 >fixnum ] unit-test
31 { -3 } [ -3.5 >fixnum ] unit-test
32
33 { 2.1 } [ -2.1 neg ] unit-test
34
35 { 3 } [ 3.1415 >fixnum ] unit-test
36 { 3 } [ 3.1415 >bignum ] unit-test
37
38 { t } [ pi 3 > ] unit-test
39 { f } [ e 2 <= ] unit-test
40
41 { t } [ 1.0 dup float>bits bits>float = ] unit-test
42 { t } [ pi double>bits bits>double pi = ] unit-test
43 { t } [ e double>bits bits>double e = ] unit-test
44
45 { 0b11111111111000000000000000000000000000000000000000000000000000 }
46 [ 1.5 double>bits ] unit-test
47
48 { 1.5 }
49 [ 0b11111111111000000000000000000000000000000000000000000000000000 bits>double ]
50 unit-test
51
52 { 2.0 } [ 1.0 1 + ] unit-test
53 { 0.0 } [ 1.0 1 - ] unit-test
54
55 { t } [ 0.0 zero? ] unit-test
56 { t } [ -0.0 zero? ] unit-test
57
58 { 0 } [ 1/0. >bignum ] unit-test
59
60 { t } [ 64 <iota> [ 2^ 0.5 * ] map [ < ] monotonic? ] unit-test
61
62 { 5 } [ 10.5 1.9 /i ] unit-test
63
64 { t } [ 0   0   /f                 fp-nan? ] unit-test
65 { t } [ 0.0 0.0 /f                 fp-nan? ] unit-test
66 { t } [ 0.0 0.0 /                  fp-nan? ] unit-test
67 { t } [ 0   0   [ >bignum ] bi@ /f fp-nan? ] unit-test
68
69 { 1/0. } [ 1 0 /f ] unit-test
70 { 1/0. } [ 1.0 0.0 /f ] unit-test
71 { 1/0. } [ 1.0 0.0 / ] unit-test
72 { 1/0. } [ 1 0 [ >bignum ] bi@ /f ] unit-test
73
74 { -1/0. } [ -1 0 /f ] unit-test
75 { -1/0. } [ -1.0 0.0 /f ] unit-test
76 { -1/0. } [ -1.0 0.0 / ] unit-test
77 { -1/0. } [ -1 0 [ >bignum ] bi@ /f ] unit-test
78
79 { t } [ 0/0. 0/0. unordered? ] unit-test
80 { t } [ 1.0 0/0. unordered? ] unit-test
81 { t } [ 0/0. 1.0 unordered? ] unit-test
82 { f } [ 1.0 1.0 unordered? ] unit-test
83
84 { t } [ -0.0 fp-sign ] unit-test
85 { t } [ -1.0 fp-sign ] unit-test
86 { f } [ 0.0 fp-sign ] unit-test
87 { f } [ 1.0 fp-sign ] unit-test
88
89 { t } [ -0.0 abs 0.0 fp-bitwise= ] unit-test
90 { 1.5 } [ -1.5 abs ] unit-test
91 { 1.5 } [ 1.5 abs ] unit-test
92
93 { 5.0 } [ 3 5.0 max ] unit-test
94 { 3 } [ 3 5.0 min ] unit-test
95
96 { 39 0x1.999999999998ap-4 } [ 4.0 .1 /mod ] unit-test
97 { 38 0x1.9999999999984p-4 } [ 3.9 .1 /mod ] unit-test
98 { -39 0x1.999999999998ap-4 } [ 4.0 -.1 /mod ] unit-test
99 { -38 0x1.9999999999984p-4 } [ 3.9 -.1 /mod ] unit-test
100 { 39 -0x1.999999999998ap-4 } [ -4.0 -.1 /mod ] unit-test
101 { 38 -0x1.9999999999984p-4 } [ -3.9 -.1 /mod ] unit-test
102 { -39 -0x1.999999999998ap-4 } [ -4.0 .1 /mod ] unit-test
103 { -38 -0x1.9999999999984p-4 } [ -3.9 .1 /mod ] unit-test
104
105 { 0.5 } [ 3.5 0.75 mod ] unit-test
106 { -0.5 } [ -3.5 0.75 mod ] unit-test
107 { -0.5 } [ -3.5 -0.75 mod ] unit-test
108 { 0.5 } [ 3.5 -0.75 mod ] unit-test
109
110 { 4 0.5 } [ 3.5 0.75 /mod ] unit-test
111 { -4 -0.5 } [ -3.5 0.75 /mod ] unit-test
112 { 4 -0.5 } [ -3.5 -0.75 /mod ] unit-test
113 { -4 0.5 } [ 3.5 -0.75 /mod ] unit-test