The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl

# Test whether $Math::BigInt::upgrade breaks our neck

use strict;
use warnings;

use Test::More tests => 5;

use Math::BigInt upgrade => 'Math::BigRat';
use Math::BigRat;

my $rat = 'Math::BigRat';
my($x, $y, $z);

##############################################################################
# bceil/bfloor

$x = $rat->new('49/4');
is($x->bfloor(), '12', 'floor(49/4)');

$x = $rat->new('49/4');
is($x->bceil(), '13', 'ceil(49/4)');

##############################################################################
# bsqrt

$x = $rat->new('144');
is($x->bsqrt(), '12', 'bsqrt(144)');

$x = $rat->new('144/16');
is($x->bsqrt(), '3', 'bsqrt(144/16)');

$x = $rat->new('1/3');
is($x->bsqrt(),
   '1443375672974064411272871951254893639119/2500000000000000000000000000000000000000',
   'bsqrt(1/3)');

# all tests successful

1;