xref: /openbsd-src/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
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