This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Try ExtUtils::Command.t everywhere, not just on Win32
[perl5.git] / lib / bigint.t
1 #!./perl
2
3 BEGIN { @INC = '../lib' }
4 require "bigint.pl";
5
6 $test = 0;
7 $| = 1;
8 print "1..246\n";
9 while (<DATA>) {
10         chop;
11         if (/^&/) {
12                 $f = $_;
13         } else {
14                 ++$test;
15                 @args = split(/:/,$_,99);
16                 $ans = pop(@args);
17                 $try = "$f('" . join("','", @args) . "');";
18                 if (($ans1 = eval($try)) eq $ans) {
19                         print "ok $test\n";
20                 } else {
21                         print "not ok $test\n";
22                         print "# '$try' expected: '$ans' got: '$ans1'\n";
23                 }
24         }
25
26 __END__
27 &bnorm
28 abc:NaN
29    1 a:NaN
30 1bcd2:NaN
31 11111b:NaN
32 +1z:NaN
33 -1z:NaN
34 0:+0
35 +0:+0
36 +00:+0
37 +0 0 0:+0
38 000000  0000000   00000:+0
39 -0:+0
40 -0000:+0
41 +1:+1
42 +01:+1
43 +001:+1
44 +00000100000:+100000
45 123456789:+123456789
46 -1:-1
47 -01:-1
48 -001:-1
49 -123456789:-123456789
50 -00000100000:-100000
51 &bneg
52 abd:NaN
53 +0:+0
54 +1:-1
55 -1:+1
56 +123456789:-123456789
57 -123456789:+123456789
58 &babs
59 abc:NaN
60 +0:+0
61 +1:+1
62 -1:+1
63 +123456789:+123456789
64 -123456789:+123456789
65 &bcmp
66 abc:abc:
67 abc:+0:
68 +0:abc:
69 +0:+0:0
70 -1:+0:-1
71 +0:-1:1
72 +1:+0:1
73 +0:+1:-1
74 -1:+1:-1
75 +1:-1:1
76 -1:-1:0
77 +1:+1:0
78 +123:+123:0
79 +123:+12:1
80 +12:+123:-1
81 -123:-123:0
82 -123:-12:-1
83 -12:-123:1
84 +123:+124:-1
85 +124:+123:1
86 -123:-124:1
87 -124:-123:-1
88 &badd
89 abc:abc:NaN
90 abc:+0:NaN
91 +0:abc:NaN
92 +0:+0:+0
93 +1:+0:+1
94 +0:+1:+1
95 +1:+1:+2
96 -1:+0:-1
97 +0:-1:-1
98 -1:-1:-2
99 -1:+1:+0
100 +1:-1:+0
101 +9:+1:+10
102 +99:+1:+100
103 +999:+1:+1000
104 +9999:+1:+10000
105 +99999:+1:+100000
106 +999999:+1:+1000000
107 +9999999:+1:+10000000
108 +99999999:+1:+100000000
109 +999999999:+1:+1000000000
110 +9999999999:+1:+10000000000
111 +99999999999:+1:+100000000000
112 +10:-1:+9
113 +100:-1:+99
114 +1000:-1:+999
115 +10000:-1:+9999
116 +100000:-1:+99999
117 +1000000:-1:+999999
118 +10000000:-1:+9999999
119 +100000000:-1:+99999999
120 +1000000000:-1:+999999999
121 +10000000000:-1:+9999999999
122 +123456789:+987654321:+1111111110
123 -123456789:+987654321:+864197532
124 -123456789:-987654321:-1111111110
125 +123456789:-987654321:-864197532
126 &bsub
127 abc:abc:NaN
128 abc:+0:NaN
129 +0:abc:NaN
130 +0:+0:+0
131 +1:+0:+1
132 +0:+1:-1
133 +1:+1:+0
134 -1:+0:-1
135 +0:-1:+1
136 -1:-1:+0
137 -1:+1:-2
138 +1:-1:+2
139 +9:+1:+8
140 +99:+1:+98
141 +999:+1:+998
142 +9999:+1:+9998
143 +99999:+1:+99998
144 +999999:+1:+999998
145 +9999999:+1:+9999998
146 +99999999:+1:+99999998
147 +999999999:+1:+999999998
148 +9999999999:+1:+9999999998
149 +99999999999:+1:+99999999998
150 +10:-1:+11
151 +100:-1:+101
152 +1000:-1:+1001
153 +10000:-1:+10001
154 +100000:-1:+100001
155 +1000000:-1:+1000001
156 +10000000:-1:+10000001
157 +100000000:-1:+100000001
158 +1000000000:-1:+1000000001
159 +10000000000:-1:+10000000001
160 +123456789:+987654321:-864197532
161 -123456789:+987654321:-1111111110
162 -123456789:-987654321:+864197532
163 +123456789:-987654321:+1111111110
164 &bmul
165 abc:abc:NaN
166 abc:+0:NaN
167 +0:abc:NaN
168 +0:+0:+0
169 +0:+1:+0
170 +1:+0:+0
171 +0:-1:+0
172 -1:+0:+0
173 +123456789123456789:+0:+0
174 +0:+123456789123456789:+0
175 -1:-1:+1
176 -1:+1:-1
177 +1:-1:-1
178 +1:+1:+1
179 +2:+3:+6
180 -2:+3:-6
181 +2:-3:-6
182 -2:-3:+6
183 +111:+111:+12321
184 +10101:+10101:+102030201
185 +1001001:+1001001:+1002003002001
186 +100010001:+100010001:+10002000300020001
187 +10000100001:+10000100001:+100002000030000200001
188 +11111111111:+9:+99999999999
189 +22222222222:+9:+199999999998
190 +33333333333:+9:+299999999997
191 +44444444444:+9:+399999999996
192 +55555555555:+9:+499999999995
193 +66666666666:+9:+599999999994
194 +77777777777:+9:+699999999993
195 +88888888888:+9:+799999999992
196 +99999999999:+9:+899999999991
197 &bdiv
198 abc:abc:NaN
199 abc:+1:abc:NaN
200 +1:abc:NaN
201 +0:+0:NaN
202 +0:+1:+0
203 +1:+0:NaN
204 +0:-1:+0
205 -1:+0:NaN
206 +1:+1:+1
207 -1:-1:+1
208 +1:-1:-1
209 -1:+1:-1
210 +1:+2:+0
211 +2:+1:+2
212 +1000000000:+9:+111111111
213 +2000000000:+9:+222222222
214 +3000000000:+9:+333333333
215 +4000000000:+9:+444444444
216 +5000000000:+9:+555555555
217 +6000000000:+9:+666666666
218 +7000000000:+9:+777777777
219 +8000000000:+9:+888888888
220 +9000000000:+9:+1000000000
221 +35500000:+113:+314159
222 +71000000:+226:+314159
223 +106500000:+339:+314159
224 +1000000000:+3:+333333333
225 +10:+5:+2
226 +100:+4:+25
227 +1000:+8:+125
228 +10000:+16:+625
229 +999999999999:+9:+111111111111
230 +999999999999:+99:+10101010101
231 +999999999999:+999:+1001001001
232 +999999999999:+9999:+100010001
233 +999999999999999:+99999:+10000100001
234 &bmod
235 abc:abc:NaN
236 abc:+1:abc:NaN
237 +1:abc:NaN
238 +0:+0:NaN
239 +0:+1:+0
240 +1:+0:NaN
241 +0:-1:+0
242 -1:+0:NaN
243 +1:+1:+0
244 -1:-1:+0
245 +1:-1:+0
246 -1:+1:+0
247 +1:+2:+1
248 +2:+1:+0
249 +1000000000:+9:+1
250 +2000000000:+9:+2
251 +3000000000:+9:+3
252 +4000000000:+9:+4
253 +5000000000:+9:+5
254 +6000000000:+9:+6
255 +7000000000:+9:+7
256 +8000000000:+9:+8
257 +9000000000:+9:+0
258 +35500000:+113:+33
259 +71000000:+226:+66
260 +106500000:+339:+99
261 +1000000000:+3:+1
262 +10:+5:+0
263 +100:+4:+0
264 +1000:+8:+0
265 +10000:+16:+0
266 +999999999999:+9:+0
267 +999999999999:+99:+0
268 +999999999999:+999:+0
269 +999999999999:+9999:+0
270 +999999999999999:+99999:+0
271 &bgcd
272 abc:abc:NaN
273 abc:+0:NaN
274 +0:abc:NaN
275 +0:+0:+0
276 +0:+1:+1
277 +1:+0:+1
278 +1:+1:+1
279 +2:+3:+1
280 +3:+2:+1
281 +100:+625:+25
282 +4096:+81:+1