This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
File::Copy fails on tied handles
[perl5.git] / lib / bigint.t
CommitLineData
57ebbfd0 1#!./perl
8990e307 2
20822f61 3BEGIN { @INC = '../lib' }
8990e307 4require "bigint.pl";
57ebbfd0
LW
5
6$test = 0;
7$| = 1;
8print "1..246\n";
9while (<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
28abc:NaN
29 1 a:NaN
301bcd2:NaN
3111111b:NaN
32+1z:NaN
33-1z:NaN
340:+0
35+0:+0
36+00:+0
37+0 0 0:+0
38000000 0000000 00000:+0
39-0:+0
40-0000:+0
41+1:+1
42+01:+1
43+001:+1
44+00000100000:+100000
45123456789:+123456789
46-1:-1
47-01:-1
48-001:-1
49-123456789:-123456789
50-00000100000:-100000
51&bneg
52abd:NaN
53+0:+0
54+1:-1
55-1:+1
56+123456789:-123456789
57-123456789:+123456789
58&babs
59abc:NaN
60+0:+0
61+1:+1
62-1:+1
63+123456789:+123456789
64-123456789:+123456789
65&bcmp
66abc:abc:
67abc:+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
89abc:abc:NaN
90abc:+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
127abc:abc:NaN
128abc:+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
165abc:abc:NaN
166abc:+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
198abc:abc:NaN
199abc:+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
235abc:abc:NaN
236abc:+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
272abc:abc:NaN
273abc:+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