summaryrefslogtreecommitdiff
path: root/cpan/Math-BigInt/t/constant.t
blob: 1f760d6280de6f3755932f8565f7be612a767fc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!perl

use strict;
use warnings;

use Test::More tests => 7;

use Math::BigInt ':constant';

is(2 ** 255,
   '578960446186580977117854925043439539266'
   . '34992332820282019728792003956564819968',
   '2 ** 255');

{
    no warnings 'portable';     # protect against "non-portable" warnings

    # hexadecimal constants
    is(0x123456789012345678901234567890,
       Math::BigInt->new('0x123456789012345678901234567890'),
       'hexadecimal constant 0x123456789012345678901234567890');

    # binary constants
    is(0b01010100011001010110110001110011010010010110000101101101,
       Math::BigInt->new('0b0101010001100101011011000111'
                         . '0011010010010110000101101101'),
       'binary constant 0b0101010001100101011011000111'
       . '0011010010010110000101101101');
}

use Math::BigFloat ':constant';
is(1.0 / 3.0, '0.3333333333333333333333333333333333333333',
   '1.0 / 3.0 = 0.3333333333333333333333333333333333333333');

# stress-test Math::BigFloat->import()

Math::BigFloat->import(qw/:constant/);
pass('Math::BigFloat->import(qw/:constant/);');

Math::BigFloat->import(qw/:constant upgrade Math::BigRat/);
pass('Math::BigFloat->import(qw/:constant upgrade Math::BigRat/);');

Math::BigFloat->import(qw/upgrade Math::BigRat :constant/);
pass('Math::BigFloat->import(qw/upgrade Math::BigRat :constant/);');

# all tests done