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