1eac174f2Safresh1# -*- mode: perl; -*- 2b8851fccSafresh1 3b8851fccSafresh1use strict; 4b8851fccSafresh1use warnings; 5b8851fccSafresh1 6*3d61058aSafresh1use Test::More tests => 2136 # tests in require'd file 7eac174f2Safresh1 + 6; # tests in this file 8b8851fccSafresh1 9eac174f2Safresh1use Math::BigInt; 10b8851fccSafresh1use Math::BigFloat; 11b8851fccSafresh1 12eac174f2Safresh1my $x = Math::BigInt -> new(9); 13eac174f2Safresh1my $y = Math::BigInt -> new(4); 14eac174f2Safresh1 15eac174f2Safresh1# Without upgrading. 16eac174f2Safresh1 17eac174f2Safresh1my $zi = $x / $y; 18eac174f2Safresh1cmp_ok($zi, "==", 2, "9/4 = 2 without upgrading"); 19eac174f2Safresh1is(ref($zi), "Math::BigInt", "9/4 gives a Math::BigInt without upgrading"); 20eac174f2Safresh1 21eac174f2Safresh1# With upgrading. 22eac174f2Safresh1 23eac174f2Safresh1Math::BigInt -> upgrade("Math::BigFloat"); 24eac174f2Safresh1my $zf = $x / $y; 25eac174f2Safresh1cmp_ok($zf, "==", 2.25, "9/4 = 2.25 with upgrading"); 26eac174f2Safresh1is(ref($zf), "Math::BigFloat", "9/4 gives a Math::BigFloat with upgrading"); 27eac174f2Safresh1 28eac174f2Safresh1# Other tests. 29eac174f2Safresh1 30b46d8ef2Safresh1our ($CLASS, $EXPECTED_CLASS, $LIB); 31b8851fccSafresh1$CLASS = "Math::BigInt"; 32b8851fccSafresh1$EXPECTED_CLASS = "Math::BigFloat"; 33b46d8ef2Safresh1$LIB = "Math::BigInt::Calc"; # backend 34b8851fccSafresh1 35b8851fccSafresh1is(Math::BigInt->upgrade(), "Math::BigFloat", 36e0680481Safresh1 "Math::BigInt->upgrade()"); 37e0680481Safresh1is(Math::BigInt->downgrade(), undef, 38e0680481Safresh1 "Math::BigInt->downgrade()"); 39b8851fccSafresh1 40b46d8ef2Safresh1require './t/upgrade.inc'; # all tests here for sharing 41