1N/A#!/usr/bin/perl -w
1N/A
1N/Ause Test;
1N/Ause strict;
1N/A
1N/ABEGIN
1N/A {
1N/A $| = 1;
1N/A chdir 't' if -d 't';
1N/A unshift @INC, '../lib';
1N/A plan tests => 17;
1N/A }
1N/A
1N/Ause Math::BigInt;
1N/Ause Math::BigFloat;
1N/Ause Math::BigRat;
1N/A
1N/Amy $r = 'Math::BigRat';
1N/Amy $proper = $r->new('12345678901234567890/2');
1N/Amy $proper_inc = $r->new('12345678901234567890/2')->binc();
1N/Amy $proper_dec = $r->new('12345678901234567890/2')->bdec();
1N/Amy $proper_int = Math::BigInt->new('12345678901234567890');
1N/Amy $proper_float = Math::BigFloat->new('12345678901234567890');
1N/Amy $proper2 = $r->new('12345678901234567890');
1N/A
1N/Aprint "# Start\n";
1N/A
1N/AMath::BigInt->accuracy(3);
1N/AMath::BigFloat->accuracy(5);
1N/A
1N/Amy ($x,$y,$z);
1N/A
1N/A##############################################################################
1N/A# new()
1N/A
1N/A$z = $r->new('12345678901234567890/2');
1N/Aok ($z,$proper);
1N/A
1N/A$z = $r->new('1234567890123456789E1');
1N/Aok ($z,$proper2);
1N/A
1N/A$z = $r->new('12345678901234567890/1E0');
1N/Aok ($z,$proper2);
1N/A$z = $r->new('1234567890123456789e1/1');
1N/Aok ($z,$proper2);
1N/A$z = $r->new('1234567890123456789e1/1E0');
1N/Aok ($z,$proper2);
1N/A
1N/A$z = $r->new($proper_int);
1N/Aok ($z,$proper2);
1N/A
1N/A$z = $r->new($proper_float);
1N/Aok ($z,$proper2);
1N/A
1N/A##############################################################################
1N/A# bdiv
1N/A
1N/A$x = $r->new('12345678901234567890'); $y = Math::BigRat->new('2');
1N/A$z = $x->copy->bdiv($y);
1N/Aok ($z,$proper);
1N/A
1N/A##############################################################################
1N/A# bmul
1N/A
1N/A$x = $r->new("$proper"); $y = Math::BigRat->new('1');
1N/A$z = $x->copy->bmul($y);
1N/Aok ($z,$proper);
1N/A$z = $r->new('12345678901234567890/1E0');
1N/Aok ($z,$proper2);
1N/A
1N/A$z = $r->new($proper_int);
1N/Aok ($z,$proper2);
1N/A
1N/A$z = $r->new($proper_float);
1N/Aok ($z,$proper2);
1N/A
1N/A##############################################################################
1N/A# bdiv
1N/A
1N/A$x = $r->new('12345678901234567890'); $y = Math::BigRat->new('2');
1N/A$z = $x->copy->bdiv($y);
1N/Aok ($z,$proper);
1N/A
1N/A##############################################################################
1N/A# bmul
1N/A
1N/A$x = $r->new("$proper"); $y = Math::BigRat->new('1');
1N/A$z = $x->copy->bmul($y);
1N/Aok ($z,$proper);
1N/A
1N/A$x = $r->new("$proper"); $y = Math::BigRat->new('2');
1N/A$z = $x->copy->bmul($y);
1N/Aok ($z,$proper2);
1N/A
1N/A##############################################################################
1N/A# binc
1N/A
1N/A$x = $proper->copy()->binc(); ok ($x,$proper_inc);
1N/A$x = $proper->copy()->bdec(); ok ($x,$proper_dec);
1N/A