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