This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Math-BigInt to CPAN version 1.999811
[perl5.git] / cpan / Math-BigInt / t / bestr-mbf.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 460;
7
8 use Math::BigFloat;
9
10 while (<DATA>) {
11     s/#.*$//;                   # remove comments
12     s/\s+$//;                   # remove trailing whitespace
13     next unless length;         # skip empty lines
14
15     my ($x_str, $expected) = split /:/;
16     my ($x, $str);
17
18     my $test = qq|\$x = Math::BigFloat -> new("$x_str");|
19              . qq| \$str = \$x -> bestr();|;
20
21     note "\n$test\n\n";
22     eval $test;
23
24     is($str, $expected, qq|input value is "$x_str"|);
25     is($x,   $x_str, "input object is unmodified");
26 }
27
28 __DATA__
29
30 NaN:NaN
31
32 inf:inf
33 -inf:-inf
34
35 0:0e+0
36
37 # positive numbers
38
39 0.000000000001:1e-12
40 0.00000000001:10e-12
41 0.0000000001:100e-12
42 0.000000001:1e-9
43 0.00000001:10e-9
44 0.0000001:100e-9
45 0.000001:1e-6
46 0.00001:10e-6
47 0.0001:100e-6
48 0.001:1e-3
49 0.01:10e-3
50 0.1:100e-3
51 1:1e+0
52 10:10e+0
53 100:100e+0
54 1000:1e+3
55 10000:10e+3
56 100000:100e+3
57 1000000:1e+6
58 10000000:10e+6
59 100000000:100e+6
60 1000000000:1e+9
61 10000000000:10e+9
62 100000000000:100e+9
63 1000000000000:1e+12
64
65 0.0000000000012:1.2e-12
66 0.000000000012:12e-12
67 0.00000000012:120e-12
68 0.0000000012:1.2e-9
69 0.000000012:12e-9
70 0.00000012:120e-9
71 0.0000012:1.2e-6
72 0.000012:12e-6
73 0.00012:120e-6
74 0.0012:1.2e-3
75 0.012:12e-3
76 0.12:120e-3
77 1.2:1.2e+0
78 12:12e+0
79 120:120e+0
80 1200:1.2e+3
81 12000:12e+3
82 120000:120e+3
83 1200000:1.2e+6
84 12000000:12e+6
85 120000000:120e+6
86 1200000000:1.2e+9
87 12000000000:12e+9
88 120000000000:120e+9
89 1200000000000:1.2e+12
90
91 0.00000000000123:1.23e-12
92 0.0000000000123:12.3e-12
93 0.000000000123:123e-12
94 0.00000000123:1.23e-9
95 0.0000000123:12.3e-9
96 0.000000123:123e-9
97 0.00000123:1.23e-6
98 0.0000123:12.3e-6
99 0.000123:123e-6
100 0.00123:1.23e-3
101 0.0123:12.3e-3
102 0.123:123e-3
103 1.23:1.23e+0
104 12.3:12.3e+0
105 123:123e+0
106 1230:1.23e+3
107 12300:12.3e+3
108 123000:123e+3
109 1230000:1.23e+6
110 12300000:12.3e+6
111 123000000:123e+6
112 1230000000:1.23e+9
113 12300000000:12.3e+9
114 123000000000:123e+9
115 1230000000000:1.23e+12
116
117 0.000000000001234:1.234e-12
118 0.00000000001234:12.34e-12
119 0.0000000001234:123.4e-12
120 0.000000001234:1.234e-9
121 0.00000001234:12.34e-9
122 0.0000001234:123.4e-9
123 0.000001234:1.234e-6
124 0.00001234:12.34e-6
125 0.0001234:123.4e-6
126 0.001234:1.234e-3
127 0.01234:12.34e-3
128 0.1234:123.4e-3
129 1.234:1.234e+0
130 12.34:12.34e+0
131 123.4:123.4e+0
132 1234:1.234e+3
133 12340:12.34e+3
134 123400:123.4e+3
135 1234000:1.234e+6
136 12340000:12.34e+6
137 123400000:123.4e+6
138 1234000000:1.234e+9
139 12340000000:12.34e+9
140 123400000000:123.4e+9
141 1234000000000:1.234e+12
142
143 0.000003141592:3.141592e-6
144 0.00003141592:31.41592e-6
145 0.0003141592:314.1592e-6
146 0.003141592:3.141592e-3
147 0.03141592:31.41592e-3
148 0.3141592:314.1592e-3
149 3.141592:3.141592e+0
150 31.41592:31.41592e+0
151 314.1592:314.1592e+0
152 3141.592:3.141592e+3
153 31415.92:31.41592e+3
154 314159.2:314.1592e+3
155 3141592:3.141592e+6
156
157 # negative numbers
158
159 -0.000000000001:-1e-12
160 -0.00000000001:-10e-12
161 -0.0000000001:-100e-12
162 -0.000000001:-1e-9
163 -0.00000001:-10e-9
164 -0.0000001:-100e-9
165 -0.000001:-1e-6
166 -0.00001:-10e-6
167 -0.0001:-100e-6
168 -0.001:-1e-3
169 -0.01:-10e-3
170 -0.1:-100e-3
171 -1:-1e+0
172 -10:-10e+0
173 -100:-100e+0
174 -1000:-1e+3
175 -10000:-10e+3
176 -100000:-100e+3
177 -1000000:-1e+6
178 -10000000:-10e+6
179 -100000000:-100e+6
180 -1000000000:-1e+9
181 -10000000000:-10e+9
182 -100000000000:-100e+9
183 -1000000000000:-1e+12
184
185 -0.0000000000012:-1.2e-12
186 -0.000000000012:-12e-12
187 -0.00000000012:-120e-12
188 -0.0000000012:-1.2e-9
189 -0.000000012:-12e-9
190 -0.00000012:-120e-9
191 -0.0000012:-1.2e-6
192 -0.000012:-12e-6
193 -0.00012:-120e-6
194 -0.0012:-1.2e-3
195 -0.012:-12e-3
196 -0.12:-120e-3
197 -1.2:-1.2e+0
198 -12:-12e+0
199 -120:-120e+0
200 -1200:-1.2e+3
201 -12000:-12e+3
202 -120000:-120e+3
203 -1200000:-1.2e+6
204 -12000000:-12e+6
205 -120000000:-120e+6
206 -1200000000:-1.2e+9
207 -12000000000:-12e+9
208 -120000000000:-120e+9
209 -1200000000000:-1.2e+12
210
211 -0.00000000000123:-1.23e-12
212 -0.0000000000123:-12.3e-12
213 -0.000000000123:-123e-12
214 -0.00000000123:-1.23e-9
215 -0.0000000123:-12.3e-9
216 -0.000000123:-123e-9
217 -0.00000123:-1.23e-6
218 -0.0000123:-12.3e-6
219 -0.000123:-123e-6
220 -0.00123:-1.23e-3
221 -0.0123:-12.3e-3
222 -0.123:-123e-3
223 -1.23:-1.23e+0
224 -12.3:-12.3e+0
225 -123:-123e+0
226 -1230:-1.23e+3
227 -12300:-12.3e+3
228 -123000:-123e+3
229 -1230000:-1.23e+6
230 -12300000:-12.3e+6
231 -123000000:-123e+6
232 -1230000000:-1.23e+9
233 -12300000000:-12.3e+9
234 -123000000000:-123e+9
235 -1230000000000:-1.23e+12
236
237 -0.000000000001234:-1.234e-12
238 -0.00000000001234:-12.34e-12
239 -0.0000000001234:-123.4e-12
240 -0.000000001234:-1.234e-9
241 -0.00000001234:-12.34e-9
242 -0.0000001234:-123.4e-9
243 -0.000001234:-1.234e-6
244 -0.00001234:-12.34e-6
245 -0.0001234:-123.4e-6
246 -0.001234:-1.234e-3
247 -0.01234:-12.34e-3
248 -0.1234:-123.4e-3
249 -1.234:-1.234e+0
250 -12.34:-12.34e+0
251 -123.4:-123.4e+0
252 -1234:-1.234e+3
253 -12340:-12.34e+3
254 -123400:-123.4e+3
255 -1234000:-1.234e+6
256 -12340000:-12.34e+6
257 -123400000:-123.4e+6
258 -1234000000:-1.234e+9
259 -12340000000:-12.34e+9
260 -123400000000:-123.4e+9
261 -1234000000000:-1.234e+12
262
263 -0.000003141592:-3.141592e-6
264 -0.00003141592:-31.41592e-6
265 -0.0003141592:-314.1592e-6
266 -0.003141592:-3.141592e-3
267 -0.03141592:-31.41592e-3
268 -0.3141592:-314.1592e-3
269 -3.141592:-3.141592e+0
270 -31.41592:-31.41592e+0
271 -314.1592:-314.1592e+0
272 -3141.592:-3.141592e+3
273 -31415.92:-31.41592e+3
274 -314159.2:-314.1592e+3
275 -3141592:-3.141592e+6