my
$proper
= Math::BigRat -> new(
'12345678901234567890/2'
);
my
$proper_inc
= Math::BigRat -> new(
'12345678901234567890/2'
) -> binc();
my
$proper_dec
= Math::BigRat -> new(
'12345678901234567890/2'
) -> bdec();
my
$proper_int
= Math::BigInt -> new(
'12345678901234567890'
);
my
$proper_float
= Math::BigFloat -> new(
'12345678901234567890'
);
my
$proper2
= Math::BigRat -> new(
'12345678901234567890'
);
Math::BigInt -> accuracy(3);
Math::BigFloat -> accuracy(5);
my
(
$x
,
$y
,
$z
);
note
"Test new()"
;
$z
= Math::BigRat->new(
"12345678901234567890/2"
);
is(
$z
,
$proper
,
q|Math::BigRat->new("12345678901234567890/2")|
);
$z
= Math::BigRat->new(
"1234567890123456789E1"
);
is(
$z
,
$proper2
,
q|Math::BigRat->new("1234567890123456789E1")|
);
$z
= Math::BigRat->new(
"12345678901234567890/1E0"
);
is(
$z
,
$proper2
,
q|Math::BigRat->new("12345678901234567890/1E0")|
);
$z
= Math::BigRat->new(
"1234567890123456789e1/1"
);
is(
$z
,
$proper2
,
q|Math::BigRat->new("1234567890123456789e1/1")|
);
$z
= Math::BigRat->new(
"1234567890123456789e1/1E0"
);
is(
$z
,
$proper2
,
q|Math::BigRat->new("1234567890123456789e1/1E0")|
);
$z
= Math::BigRat->new(
$proper_int
);
is(
$z
,
$proper2
,
qq|Math::BigRat->new("$proper_int")|
);
$z
= Math::BigRat->new(
$proper_float
);
is(
$z
,
$proper2
,
qq|Math::BigRat->new("$proper_float")|
);
note
"Test bdiv()"
;
$x
= Math::BigRat->new(
"12345678901234567890"
);
$y
= Math::BigRat->new(
"2"
);
$z
=
$x
->copy->bdiv(
$y
);
is(
$z
,
$proper
);
note
"Test bmul()"
;
$x
= Math::BigRat->new(
"$proper"
);
$y
= Math::BigRat->new(
"1"
);
$z
=
$x
->copy->bmul(
$y
);
is(
$z
,
$proper
);
$z
= Math::BigRat->new(
"12345678901234567890/1E0"
);
is(
$z
,
$proper2
);
$z
= Math::BigRat->new(
$proper_int
);
is(
$z
,
$proper2
);
$z
= Math::BigRat->new(
$proper_float
);
is(
$z
,
$proper2
);
note
"Test bdiv()"
;
$x
= Math::BigRat->new(
"12345678901234567890"
);
$y
= Math::BigRat->new(
"2"
);
$z
=
$x
->copy->bdiv(
$y
);
is(
$z
,
$proper
);
note
"Test bmul()"
;
$x
= Math::BigRat->new(
"$proper"
);
$y
= Math::BigRat->new(
"1"
);
$z
=
$x
->copy->bmul(
$y
);
is(
$z
,
$proper
);
$x
= Math::BigRat->new(
"$proper"
);
$y
= Math::BigRat->new(
"2"
);
$z
=
$x
->copy->bmul(
$y
);
is(
$z
,
$proper2
);
note
"Test binc()"
;
$x
=
$proper
->copy()->binc();
is(
$x
,
$proper_inc
);
note
"Test bdec()"
;
$x
=
$proper
->copy()->bdec();
is(
$x
,
$proper_dec
);