+ 20;
our
(
$CLASS
,
$LIB
);
$CLASS
=
"Math::BigInt"
;
$LIB
= Math::BigInt -> config(
'lib'
);
my
$x
;
my
$gcd0
= Math::BigInt::bgcd(-12, 18, 27);
isa_ok(
$gcd0
,
"Math::BigInt"
,
"bgcd() as function"
);
is(
$gcd0
, 3,
"bgcd() as function"
);
my
$gcd1
= Math::BigInt->bgcd(-12, 18, 27);
isa_ok(
$gcd1
,
"Math::BigInt"
,
"bgcd() as class method"
);
is(
$gcd1
, 3,
"bgcd() as class method"
);
$x
= Math::BigInt -> new(-12);
my
$gcd2
=
$x
-> bgcd(18, 27);
isa_ok(
$gcd2
,
"Math::BigInt"
,
"bgcd() as instance method"
);
is(
$gcd2
, 3,
"bgcd() as instance method"
);
is(
$x
, -12,
"bgcd() does not modify invocand"
);
my
$lcm0
= Math::BigInt::blcm(-12, 18, 27);
isa_ok(
$lcm0
,
"Math::BigInt"
,
"blcm() as function"
);
is(
$lcm0
, 108,
"blcm() as function"
);
my
$lcm1
= Math::BigInt->blcm(-12, 18, 27);
isa_ok(
$lcm1
,
"Math::BigInt"
,
"blcm() as class method"
);
is(
$lcm1
, 108,
"blcm() as class method"
);
$x
= Math::BigInt -> new(-12);
my
$lcm2
=
$x
-> blcm(18, 27);
isa_ok(
$lcm2
,
"Math::BigInt"
,
"blcm() as instance method"
);
is(
$lcm2
, 108,
"blcm() as instance method"
);
is(
$x
, -12,
"blcm() does not modify invocand"
);
$x
= Math::BigInt->from_hex(
'0xcafe'
);
is(
$x
,
"51966"
,
qq|Math::BigInt->from_hex("0xcafe")|
);
$x
= Math::BigInt->from_hex(
'0xcafebabedead'
);
is(
$x
,
"223195403574957"
,
qq|Math::BigInt->from_hex("0xcafebabedead")|
);
$x
= Math::BigInt->from_bin(
'0b1001'
);
is(
$x
,
"9"
,
qq|Math::BigInt->from_bin("0b1001")|
);
$x
= Math::BigInt->from_bin(
'0b1001100110011001100110011001'
);
is(
$x
,
"161061273"
,
qq|Math::BigInt->from_bin("0b1001100110011001100110011001");|
);
$x
= Math::BigInt->from_oct(
'0775'
);
is(
$x
,
"509"
,
qq|Math::BigInt->from_oct("0775");|
);
$x
= Math::BigInt->from_oct(
'07777777777777711111111222222222'
);
is(
$x
,
"9903520314281112085086151826"
,
qq|Math::BigInt->from_oct("07777777777777711111111222222222");|
);
require
'./t/bigintpm.inc'
;