xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/lib/bigintpl.t (revision 0:68f95e015346)
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