6 use Test::More tests => 3942 # tests in require'd file
7 + 20; # tests in this file
9 use Math::BigInt only => 'Calc';
12 $CLASS = "Math::BigInt";
13 $CALC = Math::BigInt -> config('lib'); # backend library
17 #############################################################################
18 # bgcd() as function, class method and instance method.
20 my $gcd0 = Math::BigInt::bgcd(-12, 18, 27);
21 isa_ok($gcd0, "Math::BigInt", "bgcd() as function");
22 is($gcd0, 3, "bgcd() as function");
24 my $gcd1 = Math::BigInt->bgcd(-12, 18, 27);
25 isa_ok($gcd1, "Math::BigInt", "bgcd() as class method");
26 is($gcd1, 3, "bgcd() as class method");
28 $x = Math::BigInt -> new(-12);
29 my $gcd2 = $x -> bgcd(18, 27);
30 isa_ok($gcd2, "Math::BigInt", "bgcd() as instance method");
31 is($gcd2, 3, "bgcd() as instance method");
32 is($x, -12, "bgcd() does not modify invocand");
34 #############################################################################
35 # blcm() as function, class method and instance method.
37 my $lcm0 = Math::BigInt::blcm(-12, 18, 27);
38 isa_ok($lcm0, "Math::BigInt", "blcm() as function");
39 is($lcm0, 108, "blcm() as function");
41 my $lcm1 = Math::BigInt->blcm(-12, 18, 27);
42 isa_ok($lcm1, "Math::BigInt", "blcm() as class method");
43 is($lcm1, 108, "blcm() as class method");
45 $x = Math::BigInt -> new(-12);
46 my $lcm2 = $x -> blcm(18, 27);
47 isa_ok($lcm2, "Math::BigInt", "blcm() as instance method");
48 is($lcm2, 108, "blcm() as instance method");
49 is($x, -12, "blcm() does not modify invocand");
51 #############################################################################
52 # from_hex(), from_bin() and from_oct() tests
54 $x = Math::BigInt->from_hex('0xcafe');
56 qq|Math::BigInt->from_hex("0xcafe")|);
58 $x = Math::BigInt->from_hex('0xcafebabedead');
59 is($x, "223195403574957",
60 qq|Math::BigInt->from_hex("0xcafebabedead")|);
62 $x = Math::BigInt->from_bin('0b1001');
64 qq|Math::BigInt->from_bin("0b1001")|);
66 $x = Math::BigInt->from_bin('0b1001100110011001100110011001');
68 qq|Math::BigInt->from_bin("0b1001100110011001100110011001");|);
70 $x = Math::BigInt->from_oct('0775');
72 qq|Math::BigInt->from_oct("0775");|);
74 $x = Math::BigInt->from_oct('07777777777777711111111222222222');
75 is($x, "9903520314281112085086151826",
76 qq|Math::BigInt->from_oct("07777777777777711111111222222222");|);
78 #############################################################################
81 require 't/bigintpm.inc'; # all tests here for sharing