1*eac174f2Safresh1# -*- mode: perl; -*- 2b8851fccSafresh1 3b8851fccSafresh1############################################################################### 4b8851fccSafresh1 5b8851fccSafresh1use strict; 6b8851fccSafresh1use warnings; 7b8851fccSafresh1 8*eac174f2Safresh1use Test::More tests => 17; 9b8851fccSafresh1 10*eac174f2Safresh1use bigint; 11b8851fccSafresh1 12b8851fccSafresh1############################################################################### 13b8851fccSafresh1# general tests 14b8851fccSafresh1 15b8851fccSafresh1my $x = 5; 16*eac174f2Safresh1is(ref($x), 'Math::BigInt', '$x = 5 makes $x a Math::BigInt'); 17b8851fccSafresh1 18*eac174f2Safresh1$x = 2 + 3.5; 19*eac174f2Safresh1is($x, 5.5, '2 + 3.5 = 5.5'); 20*eac174f2Safresh1is(ref($x), 'Math::BigInt', '$x = 2 + 3.5 makes $x a Math::BigInt'); 21b8851fccSafresh1 22b8851fccSafresh1$x = 2 ** 255; 23*eac174f2Safresh1is(ref($x), 'Math::BigInt', '$x = 2 ** 255 makes $x a Math::BigInt'); 24b8851fccSafresh1 25b8851fccSafresh1is(12->bfac(), 479001600, '12->bfac() = 479001600'); 26b8851fccSafresh1is(9/4, 2, '9/4 = 2'); 27b8851fccSafresh1 28*eac174f2Safresh1is(4.5 + 4.5, 8, '4.5 + 4.5 = 8'); # truncate 29*eac174f2Safresh1is(ref(4.5 + 4.5), 'Math::BigInt', '4.5 + 4.5 makes a Math::BigInt'); 30b8851fccSafresh1 31b8851fccSafresh1############################################################################### 32b8851fccSafresh1# accuracy and precision 33b8851fccSafresh1 34b8851fccSafresh1is(bigint->accuracy(), undef, 'get accuracy'); 35*eac174f2Safresh1bigint->accuracy(12); 36b8851fccSafresh1is(bigint->accuracy(), 12, 'get accuracy again'); 37*eac174f2Safresh1bigint->accuracy(undef); 38*eac174f2Safresh1is(bigint->accuracy(), undef, 'get accuracy again'); 39b8851fccSafresh1 40b8851fccSafresh1is(bigint->precision(), undef, 'get precision'); 41*eac174f2Safresh1bigint->precision(12); 42b8851fccSafresh1is(bigint->precision(), 12, 'get precision again'); 43*eac174f2Safresh1bigint->precision(undef); 44*eac174f2Safresh1is(bigint->precision(), undef, 'get precision again'); 45b8851fccSafresh1 46b8851fccSafresh1is(bigint->round_mode(), 'even', 'get round mode'); 47*eac174f2Safresh1bigint->round_mode('odd'); 48b8851fccSafresh1is(bigint->round_mode(), 'odd', 'get round mode again'); 49*eac174f2Safresh1bigint->round_mode('even'); 50*eac174f2Safresh1is(bigint->round_mode(), 'even', 'get round mode again'); 51