our
@ISA
=
qw/Math::BigFloat Exporter/
;
sub
isa {
my
(
$self
,
$class
) =
@_
;
return
if
$class
=~ /^Math::Big(Int|Float$)/;
UNIVERSAL::isa(
$self
,
$class
);
}
sub
bmul {
return
__PACKAGE__->new(123);
}
sub
badd {
return
__PACKAGE__->new(321);
}
my
(
$x
,
$y
,
$z
);
our
(
$CLASS
,
$EXPECTED_CLASS
,
$LIB
);
$CLASS
=
"Math::BigFloat"
;
$EXPECTED_CLASS
=
"Math::BigFloat::Test"
;
$LIB
=
"Math::BigInt::Calc"
;
is(Math::BigFloat->upgrade(),
$EXPECTED_CLASS
,
qq|Math::BigFloat->upgrade()|
);
is(Math::BigFloat->downgrade(),
undef
,
qq|Math::BigFloat->downgrade()|
);
$x
=
$CLASS
->new(123);
$y
=
$EXPECTED_CLASS
->new(123);
$z
=
$x
->bmul(
$y
);
is(
ref
(
$z
),
$EXPECTED_CLASS
,
qq|\$x = $CLASS->new(123); \$y = $EXPECTED_CLASS->new(123);|
.
q| $z = $x->bmul($y); ref($z)|
);
is(
$z
, 123,
qq|\$x = $CLASS->new(123); \$y = $EXPECTED_CLASS->new(123);|
.
q| $z = $x->bmul($y); $z|
);
$x
=
$CLASS
->new(123);
$y
=
$EXPECTED_CLASS
->new(123);
$z
=
$x
->badd(
$y
);
is(
ref
(
$z
),
$EXPECTED_CLASS
,
qq|$x = $CLASS->new(123); $y = $EXPECTED_CLASS->new(123);|
.
q| $z = $x->badd($y); ref($z)|
);
is(
$z
, 321,
qq|$x = $CLASS->new(123); $y = $EXPECTED_CLASS->new(123);|
.
q| $z = $x->badd($y); $z|
);