19 @args = split(/:/,$_,99);
21 $try = "\$x = new Math::BigInt \"$args[0]\";";
24 } elsif ($f eq "bneg") {
26 } elsif ($f eq "babs") {
28 } elsif ($f eq "bint") {
31 $try .= "\$y = new Math::BigInt \"$args[1]\";";
33 $try .= "\$x <=> \$y;";
34 }elsif ($f eq "badd"){
36 }elsif ($f eq "bsub"){
38 }elsif ($f eq "bmul"){
40 }elsif ($f eq "bdiv"){
42 }elsif ($f eq "bmod"){
44 }elsif ($f eq "bgcd"){
45 $try .= "Math::BigInt::bgcd(\$x, \$y);";
46 }elsif ($f eq "blsft"){
47 $try .= "\$x << \$y;";
48 }elsif ($f eq "brsft"){
49 $try .= "\$x >> \$y;";
50 }elsif ($f eq "band"){
52 }elsif ($f eq "bior"){
54 }elsif ($f eq "bxor"){
56 }elsif ($f eq "bnot"){
58 } else { warn "Unknown op"; }
60 #print ">>>",$try,"<<<\n";
62 if ("$ans1" eq $ans) { #bug!
65 print "not ok $test\n";
66 print "# '$try' expected: '$ans' got: '$ans1'\n";
72 use Math::BigInt(0.02,':constant');
76 unless 2**150 eq "+1427247692705959881058285969449495136382746624";
80 for ($i = 1; $i < 10; $i++) {
83 print "not " unless "@a" eq "+1 +2 +3 +4 +5 +6 +7 +8 +9";
99 000000 0000000 00000:+0
110 -123456789:-123456789
117 +123456789:-123456789
118 -123456789:+123456789
124 +123456789:+123456789
125 -123456789:+123456789
169 +9999999:+1:+10000000
170 +99999999:+1:+100000000
171 +999999999:+1:+1000000000
172 +9999999999:+1:+10000000000
173 +99999999999:+1:+100000000000
180 +10000000:-1:+9999999
181 +100000000:-1:+99999999
182 +1000000000:-1:+999999999
183 +10000000000:-1:+9999999999
184 +123456789:+987654321:+1111111110
185 -123456789:+987654321:+864197532
186 -123456789:-987654321:-1111111110
187 +123456789:-987654321:-864197532
208 +99999999:+1:+99999998
209 +999999999:+1:+999999998
210 +9999999999:+1:+9999999998
211 +99999999999:+1:+99999999998
218 +10000000:-1:+10000001
219 +100000000:-1:+100000001
220 +1000000000:-1:+1000000001
221 +10000000000:-1:+10000000001
222 +123456789:+987654321:-864197532
223 -123456789:+987654321:-1111111110
224 -123456789:-987654321:+864197532
225 +123456789:-987654321:+1111111110
235 +123456789123456789:+0:+0
236 +0:+123456789123456789:+0
246 +10101:+10101:+102030201
247 +1001001:+1001001:+1002003002001
248 +100010001:+100010001:+10002000300020001
249 +10000100001:+10000100001:+100002000030000200001
250 +11111111111:+9:+99999999999
251 +22222222222:+9:+199999999998
252 +33333333333:+9:+299999999997
253 +44444444444:+9:+399999999996
254 +55555555555:+9:+499999999995
255 +66666666666:+9:+599999999994
256 +77777777777:+9:+699999999993
257 +88888888888:+9:+799999999992
258 +99999999999:+9:+899999999991
274 +1000000000:+9:+111111111
275 +2000000000:+9:+222222222
276 +3000000000:+9:+333333333
277 +4000000000:+9:+444444444
278 +5000000000:+9:+555555555
279 +6000000000:+9:+666666666
280 +7000000000:+9:+777777777
281 +8000000000:+9:+888888888
282 +9000000000:+9:+1000000000
283 +35500000:+113:+314159
284 +71000000:+226:+314159
285 +106500000:+339:+314159
286 +1000000000:+3:+333333333
291 +999999999999:+9:+111111111111
292 +999999999999:+99:+10101010101
293 +999999999999:+999:+1001001001
294 +999999999999:+9999:+100010001
295 +999999999999999:+99999:+10000100001
330 +999999999999:+999:+0
331 +999999999999:+9999:+0
332 +999999999999999:+99999:+0
349 +1:+48:+281474976710656
355 +281474976710656:+48:+1
360 +281474976710656:+0:+0
361 +281474976710656:+1:+0
362 +281474976710656:+281474976710656:+281474976710656
366 +281474976710656:+0:+281474976710656
367 +281474976710656:+1:+281474976710657
368 +281474976710656:+281474976710656:+281474976710656
372 +281474976710656:+0:+281474976710656
373 +281474976710656:+1:+281474976710657
374 +281474976710656:+281474976710656:+0
379 +281474976710656:-281474976710657
383 +11111111111111111234:+11111111111111111234
385 -11111111111111111234:-11111111111111111234