note
"\nNo upgrading or downgrading\n\n"
;
Math::BigInt -> upgrade(
undef
);
Math::BigRat -> downgrade(
undef
);
subtest
'$x = Math::BigInt -> from_dec("4.5");'
=>
sub
{
my
$x
= Math::BigInt -> from_dec(
"4.5"
);
is(
ref
(
$x
),
"Math::BigInt"
,
"class"
);
is(
$x
,
"NaN"
,
"value"
);
};
subtest
'$x = Math::BigRat -> from_dec("4");'
=>
sub
{
my
$x
= Math::BigRat -> from_dec(
"4"
);
is(
ref
(
$x
),
"Math::BigRat"
,
"class"
);
is(
$x
,
"4"
,
"value"
);
};
subtest
'$x = Math::BigInt -> new("4"); $q = $x -> from_dec("4.5");'
=>
sub
{
my
$x
= Math::BigInt -> new(
"4"
);
my
$q
=
$x
-> from_dec(
"4.5"
);
is(
ref
(
$x
),
"Math::BigInt"
,
"class"
);
is(
$x
,
"NaN"
,
"value"
);
is(refaddr(
$x
), refaddr(
$q
),
"address"
);
};
subtest
'$x = Math::BigRat -> new("4.5"); $q = $x -> from_dec("4");'
=>
sub
{
my
$x
= Math::BigRat -> new(
"4.5"
);
my
$q
=
$x
-> from_dec(
"4"
);
is(
ref
(
$x
),
"Math::BigRat"
,
"class"
);
is(
$x
,
"4"
,
"value"
);
is(refaddr(
$x
), refaddr(
$q
),
"address"
);
};
note
"\nUpgrading and downgrading\n\n"
;
Math::BigInt -> upgrade(
"Math::BigRat"
);
Math::BigRat -> downgrade(
"Math::BigInt"
);
subtest
'$x = Math::BigInt -> from_dec("4.5");'
=>
sub
{
my
$x
= Math::BigInt -> from_dec(
"4.5"
);
is(
ref
(
$x
),
"Math::BigRat"
,
"class"
);
is(
$x
,
"9/2"
,
"value"
);
};
subtest
'$x = Math::BigRat -> from_dec("4");'
=>
sub
{
my
$x
= Math::BigRat -> from_dec(
"4"
);
is(
ref
(
$x
),
"Math::BigInt"
,
"class"
);
is(
$x
,
"4"
,
"value"
);
};
subtest
'$x = Math::BigInt -> new("4"); $q = $x -> from_dec("4.5");'
=>
sub
{
my
$x
= Math::BigInt -> new(
"4"
);
my
$q
=
$x
-> from_dec(
"4.5"
);
is(
ref
(
$x
),
"Math::BigRat"
,
"class"
);
is(
$x
,
"9/2"
,
"value"
);
is(refaddr(
$x
), refaddr(
$q
),
"address"
);
};
subtest
'$x = Math::BigRat -> new("4.5"); $q = $x -> from_dec("4");'
=>
sub
{
my
$x
= Math::BigRat -> new(
"4.5"
);
my
$q
=
$x
-> from_dec(
"4"
);
is(
ref
(
$x
),
"Math::BigInt"
,
"class"
);
is(
$x
,
"4"
,
"value"
);
is(refaddr(
$x
), refaddr(
$q
),
"address"
);
};
done_testing();