summaryrefslogtreecommitdiff
path: root/dist/Math-BigInt/t/bigfltpm.t
diff options
context:
space:
mode:
Diffstat (limited to 'dist/Math-BigInt/t/bigfltpm.t')
-rw-r--r--dist/Math-BigInt/t/bigfltpm.t49
1 files changed, 49 insertions, 0 deletions
diff --git a/dist/Math-BigInt/t/bigfltpm.t b/dist/Math-BigInt/t/bigfltpm.t
new file mode 100644
index 0000000000..50b47afac4
--- /dev/null
+++ b/dist/Math-BigInt/t/bigfltpm.t
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -w
+
+use Test;
+use strict;
+
+BEGIN
+ {
+ $| = 1;
+ # to locate the testing files
+ my $location = $0; $location =~ s/bigfltpm.t//i;
+ unshift @INC, '../lib';
+ if (-d 't')
+ {
+ chdir 't';
+ require File::Spec;
+ unshift @INC, File::Spec->catdir(File::Spec->updir, $location);
+ }
+ else
+ {
+ unshift @INC, $location;
+ }
+ print "# INC = @INC\n";
+
+ plan tests => 2308
+ + 5; # own tests
+ }
+
+use Math::BigInt lib => 'Calc';
+use Math::BigFloat;
+
+use vars qw ($class $try $x $y $f @args $ans $ans1 $ans1_str $setup $CL);
+$class = "Math::BigFloat";
+$CL = "Math::BigInt::Calc";
+
+ok ($class->config()->{class},$class);
+ok ($class->config()->{with}, $CL);
+
+# bug #17447: Can't call method Math::BigFloat->bsub, not a valid method
+my $c = Math::BigFloat->new( '123.3' );
+ok ($c->fsub(123) eq '0.3', 1); # calling fsub on a BigFloat works
+
+# Bug until BigInt v1.86, the scale wasn't treated as a scalar:
+$c = Math::BigFloat->new('0.008'); my $d = Math::BigFloat->new(3);
+my $e = $c->bdiv(Math::BigFloat->new(3),$d);
+
+ok ($e,'0.00267'); # '0.008 / 3 => 0.0027');
+ok (ref($e->{_e}->[0]), ''); # 'Not a BigInt');
+
+require 'bigfltpm.inc'; # all tests here for sharing