5 unshift @INC, '../lib';
19 @args = split(/:/,$_,99);
21 $try = "\$x = new Math::BigInt \"$args[0]\";";
24 } elsif ($f eq "bneg") {
26 } elsif ($f eq "babs") {
29 $try .= "\$y = new Math::BigInt \"$args[1]\";";
31 $try .= "\$x <=> \$y;";
32 }elsif ($f eq "badd"){
34 }elsif ($f eq "bsub"){
36 }elsif ($f eq "bmul"){
38 }elsif ($f eq "bdiv"){
40 }elsif ($f eq "bmod"){
42 }elsif ($f eq "bgcd"){
43 $try .= "Math::BigInt::bgcd(\$x, \$y);";
44 }elsif ($f eq "blsft"){
45 $try .= "\$x << \$y;";
46 }elsif ($f eq "brsft"){
47 $try .= "\$x >> \$y;";
48 }elsif ($f eq "band"){
50 }elsif ($f eq "bior"){
52 }elsif ($f eq "bxor"){
54 }elsif ($f eq "bnot"){
56 } else { warn "Unknown op"; }
58 #print ">>>",$try,"<<<\n";
60 if ("$ans1" eq $ans) { #bug!
63 print "not ok $test\n";
64 print "# '$try' expected: '$ans' got: '$ans1'\n";
70 use Math::BigInt ':constant';
74 unless 2**150 eq "+1427247692705959881058285969449495136382746624";
78 for ($i = 1; $i < 10; $i++) {
81 print "not " unless "@a" eq "+1 +2 +3 +4 +5 +6 +7 +8 +9";
97 000000 0000000 00000:+0
108 -123456789:-123456789
115 +123456789:-123456789
116 -123456789:+123456789
122 +123456789:+123456789
123 -123456789:+123456789
167 +9999999:+1:+10000000
168 +99999999:+1:+100000000
169 +999999999:+1:+1000000000
170 +9999999999:+1:+10000000000
171 +99999999999:+1:+100000000000
178 +10000000:-1:+9999999
179 +100000000:-1:+99999999
180 +1000000000:-1:+999999999
181 +10000000000:-1:+9999999999
182 +123456789:+987654321:+1111111110
183 -123456789:+987654321:+864197532
184 -123456789:-987654321:-1111111110
185 +123456789:-987654321:-864197532
206 +99999999:+1:+99999998
207 +999999999:+1:+999999998
208 +9999999999:+1:+9999999998
209 +99999999999:+1:+99999999998
216 +10000000:-1:+10000001
217 +100000000:-1:+100000001
218 +1000000000:-1:+1000000001
219 +10000000000:-1:+10000000001
220 +123456789:+987654321:-864197532
221 -123456789:+987654321:-1111111110
222 -123456789:-987654321:+864197532
223 +123456789:-987654321:+1111111110
233 +123456789123456789:+0:+0
234 +0:+123456789123456789:+0
244 +10101:+10101:+102030201
245 +1001001:+1001001:+1002003002001
246 +100010001:+100010001:+10002000300020001
247 +10000100001:+10000100001:+100002000030000200001
248 +11111111111:+9:+99999999999
249 +22222222222:+9:+199999999998
250 +33333333333:+9:+299999999997
251 +44444444444:+9:+399999999996
252 +55555555555:+9:+499999999995
253 +66666666666:+9:+599999999994
254 +77777777777:+9:+699999999993
255 +88888888888:+9:+799999999992
256 +99999999999:+9:+899999999991
272 +1000000000:+9:+111111111
273 +2000000000:+9:+222222222
274 +3000000000:+9:+333333333
275 +4000000000:+9:+444444444
276 +5000000000:+9:+555555555
277 +6000000000:+9:+666666666
278 +7000000000:+9:+777777777
279 +8000000000:+9:+888888888
280 +9000000000:+9:+1000000000
281 +35500000:+113:+314159
282 +71000000:+226:+314159
283 +106500000:+339:+314159
284 +1000000000:+3:+333333333
289 +999999999999:+9:+111111111111
290 +999999999999:+99:+10101010101
291 +999999999999:+999:+1001001001
292 +999999999999:+9999:+100010001
293 +999999999999999:+99999:+10000100001
328 +999999999999:+999:+0
329 +999999999999:+9999:+0
330 +999999999999999:+99999:+0
347 +1:+48:+281474976710656
353 +281474976710656:+48:+1
358 +281474976710656:+0:+0
359 +281474976710656:+1:+0
360 +281474976710656:+281474976710656:+281474976710656
364 +281474976710656:+0:+281474976710656
365 +281474976710656:+1:+281474976710657
366 +281474976710656:+281474976710656:+281474976710656
370 +281474976710656:+0:+281474976710656
371 +281474976710656:+1:+281474976710657
372 +281474976710656:+281474976710656:+0
377 +281474976710656:-281474976710657