]> gitweb.factorcode.org Git - factor.git/blob - core/math/parser/parser-tests.factor
HEX: X.XXXpEEE hexadecimal float literal syntax
[factor.git] / core / math / parser / parser-tests.factor
1 USING: kernel literals math math.parser sequences tools.test ;
2 IN: math.parser.tests
3
4 [ f ]
5 [ f string>number ]
6 unit-test
7
8 [ f ]
9 [ "12345abcdef" string>number ]
10 unit-test
11
12 [ t ]
13 [ "-12" string>number 0 < ]
14 unit-test
15
16 [ f ]
17 [ "--12" string>number ]
18 unit-test
19
20 [ f ]
21 [ "-" string>number ]
22 unit-test
23
24 [ f ]
25 [ "e" string>number ]
26 unit-test
27
28 [ 100000 ] [ "100,000" string>number ] unit-test
29
30 [ 100000.0 ] [ "100,000.0" string>number ] unit-test
31
32 [ f ] [ "," string>number ] unit-test
33 [ f ] [ "-," string>number ] unit-test
34 [ f ] [ "1," string>number ] unit-test
35 [ f ] [ "-1," string>number ] unit-test
36 [ f ] [ ",2" string>number ] unit-test
37 [ f ] [ "-,2" string>number ] unit-test
38
39 [ 2.0 ] [ "2." string>number ] unit-test
40
41 [ 255 ] [ "ff" hex> ] unit-test
42
43 [ "100.0" ]
44 [ "1.0e2" string>number number>string ]
45 unit-test
46
47 [ "-100.0" ]
48 [ "-1.0e2" string>number number>string ]
49 unit-test
50
51 [ "0.01" ]
52 [ "1.0e-2" string>number number>string ]
53 unit-test
54
55 [ "-0.01" ]
56 [ "-1.0e-2" string>number number>string ]
57 unit-test
58
59 [ t ]
60 [ "-1.0e-12" string>number number>string { "-1.0e-12" "-1.0e-012" } member? ]
61 unit-test
62
63 [ f ]
64 [ "-1e-2e4" string>number ]
65 unit-test
66
67 [ "3.14" ]
68 [ "3.14" string>number number>string ]
69 unit-test
70
71 [ f ]
72 [ "." string>number ]
73 unit-test
74
75 [ f ]
76 [ ".e" string>number ]
77 unit-test
78
79 [ "101.0" ]
80 [ "1.01e2" string>number number>string ]
81 unit-test
82
83 [ "-101.0" ]
84 [ "-1.01e2" string>number number>string ]
85 unit-test
86
87 [ "1.01" ]
88 [ "101.0e-2" string>number number>string ]
89 unit-test
90
91 [ "-1.01" ]
92 [ "-101.0e-2" string>number number>string ]
93 unit-test
94
95 [ f ]
96 [ "1e1/2" string>number ]
97 unit-test
98
99 [ f ]
100 [ "e/2" string>number ]
101 unit-test
102
103 [ f ] [ "12" bin> ] unit-test
104 [ f ] [ "fdsf" bin> ] unit-test
105 [ 3 ] [ "11" bin> ] unit-test
106
107 [ f ] [ "\0." string>number ] unit-test
108
109 [ 1 1 >base ] must-fail
110 [ 1 0 >base ] must-fail
111 [ 1 -1 >base ] must-fail
112
113 [ "0/0." ] [ 0.0 0.0 / number>string ] unit-test
114
115 [ "1/0." ] [ 1.0 0.0 / number>string ] unit-test
116
117 [ "-1/0." ] [ -1.0 0.0 / number>string ] unit-test
118
119 [ t ] [ "0/0." string>number fp-nan? ] unit-test
120
121 [ 1/0. ] [ "1/0." string>number ] unit-test
122
123 [ -1/0. ] [ "-1/0." string>number ] unit-test
124
125 [ "-0.0" ] [ -0.0 number>string ] unit-test
126
127 [ "-3/4" ] [ -3/4 number>string ] unit-test
128 [ "-1-1/4" ] [ -5/4 number>string ] unit-test
129
130 [ "1.0p0" ] [ 1.0 >hex ] unit-test
131 [ "1.8p2" ] [ 6.0 >hex ] unit-test
132 [ "1.8p-2" ] [ 0.375 >hex ] unit-test
133 [ "-1.8p2" ] [ -6.0 >hex ] unit-test
134 [ "1.8p10" ] [ 1536.0 >hex ] unit-test
135 [ "0.0" ] [ 0.0 >hex ] unit-test
136 [ "1.0p-1074" ] [ 1 bits>double >hex ] unit-test
137 [ "-0.0" ] [ -0.0 >hex ] unit-test
138
139 [ 1.0 ] [ "1.0" hex> ] unit-test
140 [ 15.5 ] [ "f.8" hex> ] unit-test
141 [ 15.53125 ] [ "f.88" hex> ] unit-test
142 [ -15.5 ] [ "-f.8" hex> ] unit-test
143 [ 15.5 ] [ "f.8p0" hex> ] unit-test
144 [ -15.5 ] [ "-f.8p0" hex> ] unit-test
145 [ 62.0 ] [ "f.8p2" hex> ] unit-test
146 [ 3.875 ] [ "f.8p-2" hex> ] unit-test
147 [ $[ 1 bits>double ] ] [ "1.0p-1074" hex> ] unit-test
148 [ 0.0 ] [ "1.0p-1075" hex> ] unit-test
149 [ 1/0. ] [ "1.0p1024" hex> ] unit-test
150 [ -1/0. ] [ "-1.0p1024" hex> ] unit-test
151