1*256a93a4Safresh1# -*- mode: perl; -*-
2*256a93a4Safresh1
3*256a93a4Safresh1use strict;
4*256a93a4Safresh1use warnings;
5*256a93a4Safresh1
6*256a93a4Safresh1use Test::More;
7*256a93a4Safresh1
8*256a93a4Safresh1plan skip_all => 'Need at least Perl v5.10.1' if $] < "5.010001";
9*256a93a4Safresh1
10*256a93a4Safresh1plan tests => 96;
11*256a93a4Safresh1
12*256a93a4Safresh1note "\nbigint -> bigfloat -> bigrat\n\n";
13*256a93a4Safresh1
14*256a93a4Safresh1{
15*256a93a4Safresh1    note "use bigint;";
16*256a93a4Safresh1    use bigint;
17*256a93a4Safresh1    is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
18*256a93a4Safresh1    is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
19*256a93a4Safresh1
20*256a93a4Safresh1    {
21*256a93a4Safresh1        note "use bigfloat;";
22*256a93a4Safresh1        use bigfloat;
23*256a93a4Safresh1        is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
24*256a93a4Safresh1        is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
25*256a93a4Safresh1
26*256a93a4Safresh1        {
27*256a93a4Safresh1            note "use bigrat;";
28*256a93a4Safresh1            use bigrat;
29*256a93a4Safresh1            is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
30*256a93a4Safresh1            is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
31*256a93a4Safresh1
32*256a93a4Safresh1            note "no bigrat;";
33*256a93a4Safresh1            no bigrat;
34*256a93a4Safresh1            is(ref(hex("1")), "", 'ref(hex("1"))');
35*256a93a4Safresh1            is(ref(oct("1")), "", 'ref(oct("1"))');
36*256a93a4Safresh1        }
37*256a93a4Safresh1
38*256a93a4Safresh1        is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
39*256a93a4Safresh1        is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
40*256a93a4Safresh1
41*256a93a4Safresh1        note "no bigfloat;";
42*256a93a4Safresh1        no bigfloat;
43*256a93a4Safresh1        is(ref(hex("1")), "", 'ref(hex("1"))');
44*256a93a4Safresh1        is(ref(oct("1")), "", 'ref(oct("1"))');
45*256a93a4Safresh1    }
46*256a93a4Safresh1
47*256a93a4Safresh1    is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
48*256a93a4Safresh1    is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
49*256a93a4Safresh1
50*256a93a4Safresh1    note "no bigint;";
51*256a93a4Safresh1    no bigint;
52*256a93a4Safresh1    is(ref(hex("1")), "", 'ref(hex("1"))');
53*256a93a4Safresh1    is(ref(oct("1")), "", 'ref(oct("1"))');
54*256a93a4Safresh1}
55*256a93a4Safresh1
56*256a93a4Safresh1note "\nbigint -> bigrat -> bigfloat\n\n";
57*256a93a4Safresh1
58*256a93a4Safresh1{
59*256a93a4Safresh1    note "use bigint;";
60*256a93a4Safresh1    use bigint;
61*256a93a4Safresh1    is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
62*256a93a4Safresh1    is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
63*256a93a4Safresh1
64*256a93a4Safresh1    {
65*256a93a4Safresh1        note "use bigrat;";
66*256a93a4Safresh1        use bigrat;
67*256a93a4Safresh1        is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
68*256a93a4Safresh1        is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
69*256a93a4Safresh1
70*256a93a4Safresh1        {
71*256a93a4Safresh1            note "use bigfloat;";
72*256a93a4Safresh1            use bigfloat;
73*256a93a4Safresh1            is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
74*256a93a4Safresh1            is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
75*256a93a4Safresh1
76*256a93a4Safresh1            note "no bigfloat;";
77*256a93a4Safresh1            no bigfloat;
78*256a93a4Safresh1            is(ref(hex("1")), "", 'ref(hex("1"))');
79*256a93a4Safresh1            is(ref(oct("1")), "", 'ref(oct("1"))');
80*256a93a4Safresh1        }
81*256a93a4Safresh1
82*256a93a4Safresh1        is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
83*256a93a4Safresh1        is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
84*256a93a4Safresh1
85*256a93a4Safresh1        note "no bigrat;";
86*256a93a4Safresh1        no bigrat;
87*256a93a4Safresh1        is(ref(hex("1")), "", 'ref(hex("1"))');
88*256a93a4Safresh1        is(ref(oct("1")), "", 'ref(oct("1"))');
89*256a93a4Safresh1    }
90*256a93a4Safresh1
91*256a93a4Safresh1    is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
92*256a93a4Safresh1    is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
93*256a93a4Safresh1
94*256a93a4Safresh1    note "no bigint;";
95*256a93a4Safresh1    no bigint;
96*256a93a4Safresh1    is(ref(hex("1")), "", 'ref(hex("1"))');
97*256a93a4Safresh1    is(ref(oct("1")), "", 'ref(oct("1"))');
98*256a93a4Safresh1}
99*256a93a4Safresh1
100*256a93a4Safresh1note "\nbigfloat -> bigint -> bigrat\n\n";
101*256a93a4Safresh1
102*256a93a4Safresh1{
103*256a93a4Safresh1    note "use bigfloat;";
104*256a93a4Safresh1    use bigfloat;
105*256a93a4Safresh1    is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
106*256a93a4Safresh1    is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
107*256a93a4Safresh1
108*256a93a4Safresh1    {
109*256a93a4Safresh1        note "use bigint;";
110*256a93a4Safresh1        use bigint;
111*256a93a4Safresh1        is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
112*256a93a4Safresh1        is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
113*256a93a4Safresh1
114*256a93a4Safresh1        {
115*256a93a4Safresh1            note "use bigrat;";
116*256a93a4Safresh1            use bigrat;
117*256a93a4Safresh1            is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
118*256a93a4Safresh1            is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
119*256a93a4Safresh1
120*256a93a4Safresh1            note "no bigrat;";
121*256a93a4Safresh1            no bigrat;
122*256a93a4Safresh1            is(ref(hex("1")), "", 'ref(hex("1"))');
123*256a93a4Safresh1            is(ref(oct("1")), "", 'ref(oct("1"))');
124*256a93a4Safresh1        }
125*256a93a4Safresh1
126*256a93a4Safresh1        is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
127*256a93a4Safresh1        is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
128*256a93a4Safresh1
129*256a93a4Safresh1        note "no bigint;";
130*256a93a4Safresh1        no bigint;
131*256a93a4Safresh1        is(ref(hex("1")), "", 'ref(hex("1"))');
132*256a93a4Safresh1        is(ref(oct("1")), "", 'ref(oct("1"))');
133*256a93a4Safresh1    }
134*256a93a4Safresh1
135*256a93a4Safresh1    is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
136*256a93a4Safresh1    is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
137*256a93a4Safresh1
138*256a93a4Safresh1    note "no bigfloat;";
139*256a93a4Safresh1    no bigfloat;
140*256a93a4Safresh1    is(ref(hex("1")), "", 'ref(hex("1"))');
141*256a93a4Safresh1    is(ref(oct("1")), "", 'ref(oct("1"))');
142*256a93a4Safresh1}
143*256a93a4Safresh1
144*256a93a4Safresh1note "\nbigfloat -> bigrat -> bigint\n\n";
145*256a93a4Safresh1
146*256a93a4Safresh1{
147*256a93a4Safresh1    note "use bigfloat;";
148*256a93a4Safresh1    use bigfloat;
149*256a93a4Safresh1    is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
150*256a93a4Safresh1    is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
151*256a93a4Safresh1
152*256a93a4Safresh1    {
153*256a93a4Safresh1        note "use bigrat;";
154*256a93a4Safresh1        use bigrat;
155*256a93a4Safresh1        is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
156*256a93a4Safresh1        is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
157*256a93a4Safresh1
158*256a93a4Safresh1        {
159*256a93a4Safresh1            note "use bigint;";
160*256a93a4Safresh1            use bigint;
161*256a93a4Safresh1            is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
162*256a93a4Safresh1            is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
163*256a93a4Safresh1
164*256a93a4Safresh1            note "no bigint;";
165*256a93a4Safresh1            no bigint;
166*256a93a4Safresh1            is(ref(hex("1")), "", 'ref(hex("1"))');
167*256a93a4Safresh1            is(ref(oct("1")), "", 'ref(oct("1"))');
168*256a93a4Safresh1        }
169*256a93a4Safresh1
170*256a93a4Safresh1        is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
171*256a93a4Safresh1        is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
172*256a93a4Safresh1
173*256a93a4Safresh1        note "no bigrat;";
174*256a93a4Safresh1        no bigrat;
175*256a93a4Safresh1        is(ref(hex("1")), "", 'ref(hex("1"))');
176*256a93a4Safresh1        is(ref(oct("1")), "", 'ref(oct("1"))');
177*256a93a4Safresh1    }
178*256a93a4Safresh1
179*256a93a4Safresh1    is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
180*256a93a4Safresh1    is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
181*256a93a4Safresh1
182*256a93a4Safresh1    note "no bigfloat;";
183*256a93a4Safresh1    no bigfloat;
184*256a93a4Safresh1    is(ref(hex("1")), "", 'ref(hex("1"))');
185*256a93a4Safresh1    is(ref(oct("1")), "", 'ref(oct("1"))');
186*256a93a4Safresh1}
187*256a93a4Safresh1
188*256a93a4Safresh1note "\nbigrat -> bigint -> bigfloat\n\n";
189*256a93a4Safresh1
190*256a93a4Safresh1{
191*256a93a4Safresh1    note "use bigrat;";
192*256a93a4Safresh1    use bigrat;
193*256a93a4Safresh1    is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
194*256a93a4Safresh1    is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
195*256a93a4Safresh1
196*256a93a4Safresh1    {
197*256a93a4Safresh1        note "use bigint;";
198*256a93a4Safresh1        use bigint;
199*256a93a4Safresh1        is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
200*256a93a4Safresh1        is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
201*256a93a4Safresh1
202*256a93a4Safresh1        {
203*256a93a4Safresh1            note "use bigfloat;";
204*256a93a4Safresh1            use bigfloat;
205*256a93a4Safresh1            is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
206*256a93a4Safresh1            is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
207*256a93a4Safresh1
208*256a93a4Safresh1            note "no bigfloat;";
209*256a93a4Safresh1            no bigfloat;
210*256a93a4Safresh1            is(ref(hex("1")), "", 'ref(hex("1"))');
211*256a93a4Safresh1            is(ref(oct("1")), "", 'ref(oct("1"))');
212*256a93a4Safresh1        }
213*256a93a4Safresh1
214*256a93a4Safresh1        is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
215*256a93a4Safresh1        is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
216*256a93a4Safresh1
217*256a93a4Safresh1        note "no bigint;";
218*256a93a4Safresh1        no bigint;
219*256a93a4Safresh1        is(ref(hex("1")), "", 'ref(hex("1"))');
220*256a93a4Safresh1        is(ref(oct("1")), "", 'ref(oct("1"))');
221*256a93a4Safresh1    }
222*256a93a4Safresh1
223*256a93a4Safresh1    is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
224*256a93a4Safresh1    is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
225*256a93a4Safresh1
226*256a93a4Safresh1    note "no bigrat;";
227*256a93a4Safresh1    no bigrat;
228*256a93a4Safresh1    is(ref(hex("1")), "", 'ref(hex("1"))');
229*256a93a4Safresh1    is(ref(oct("1")), "", 'ref(oct("1"))');
230*256a93a4Safresh1}
231*256a93a4Safresh1
232*256a93a4Safresh1note "\nbigrat -> bigfloat -> bigint\n\n";
233*256a93a4Safresh1
234*256a93a4Safresh1{
235*256a93a4Safresh1    note "use bigrat;";
236*256a93a4Safresh1    use bigrat;
237*256a93a4Safresh1    is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
238*256a93a4Safresh1    is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
239*256a93a4Safresh1
240*256a93a4Safresh1    {
241*256a93a4Safresh1        note "use bigfloat;";
242*256a93a4Safresh1        use bigfloat;
243*256a93a4Safresh1        is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
244*256a93a4Safresh1        is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
245*256a93a4Safresh1
246*256a93a4Safresh1        {
247*256a93a4Safresh1            note "use bigint;";
248*256a93a4Safresh1            use bigint;
249*256a93a4Safresh1            is(ref(hex("1")), "Math::BigInt", 'ref(hex("1"))');
250*256a93a4Safresh1            is(ref(oct("1")), "Math::BigInt", 'ref(oct("1"))');
251*256a93a4Safresh1
252*256a93a4Safresh1            note "no bigint;";
253*256a93a4Safresh1            no bigint;
254*256a93a4Safresh1            is(ref(hex("1")), "", 'ref(hex("1"))');
255*256a93a4Safresh1            is(ref(oct("1")), "", 'ref(oct("1"))');
256*256a93a4Safresh1        }
257*256a93a4Safresh1
258*256a93a4Safresh1        is(ref(hex("1")), "Math::BigFloat", 'ref(hex("1"))');
259*256a93a4Safresh1        is(ref(oct("1")), "Math::BigFloat", 'ref(oct("1"))');
260*256a93a4Safresh1
261*256a93a4Safresh1        note "no bigfloat;";
262*256a93a4Safresh1        no bigfloat;
263*256a93a4Safresh1        is(ref(hex("1")), "", 'ref(hex("1"))');
264*256a93a4Safresh1        is(ref(oct("1")), "", 'ref(oct("1"))');
265*256a93a4Safresh1    }
266*256a93a4Safresh1
267*256a93a4Safresh1    is(ref(hex("1")), "Math::BigRat", 'ref(hex("1"))');
268*256a93a4Safresh1    is(ref(oct("1")), "Math::BigRat", 'ref(oct("1"))');
269*256a93a4Safresh1
270*256a93a4Safresh1    note "no bigrat;";
271*256a93a4Safresh1    no bigrat;
272*256a93a4Safresh1    is(ref(hex("1")), "", 'ref(hex("1"))');
273*256a93a4Safresh1    is(ref(oct("1")), "", 'ref(oct("1"))');
274*256a93a4Safresh1}
275