3 # Test that accuracy() and precision() in BigInt/BigFloat do not disturb
4 # the rounding force in BigRat.
13 unshift @INC, '../lib';
21 my $r = 'Math::BigRat';
22 my $proper = $r->new('12345678901234567890/2');
23 my $proper_inc = $r->new('12345678901234567890/2')->binc();
24 my $proper_dec = $r->new('12345678901234567890/2')->bdec();
25 my $proper_int = Math::BigInt->new('12345678901234567890');
26 my $proper_float = Math::BigFloat->new('12345678901234567890');
27 my $proper2 = $r->new('12345678901234567890');
31 Math::BigInt->accuracy(3);
32 Math::BigFloat->accuracy(5);
36 ##############################################################################
39 $z = $r->new('12345678901234567890/2');
42 $z = $r->new('1234567890123456789E1');
45 $z = $r->new('12345678901234567890/1E0');
47 $z = $r->new('1234567890123456789e1/1');
49 $z = $r->new('1234567890123456789e1/1E0');
52 $z = $r->new($proper_int);
55 $z = $r->new($proper_float);
58 ##############################################################################
61 $x = $r->new('12345678901234567890'); $y = Math::BigRat->new('2');
62 $z = $x->copy->bdiv($y);
65 ##############################################################################
68 $x = $r->new("$proper"); $y = Math::BigRat->new('1');
69 $z = $x->copy->bmul($y);
71 $z = $r->new('12345678901234567890/1E0');
74 $z = $r->new($proper_int);
77 $z = $r->new($proper_float);
80 ##############################################################################
83 $x = $r->new('12345678901234567890'); $y = Math::BigRat->new('2');
84 $z = $x->copy->bdiv($y);
87 ##############################################################################
90 $x = $r->new("$proper"); $y = Math::BigRat->new('1');
91 $z = $x->copy->bmul($y);
94 $x = $r->new("$proper"); $y = Math::BigRat->new('2');
95 $z = $x->copy->bmul($y);
98 ##############################################################################
101 $x = $proper->copy()->binc(); ok ($x,$proper_inc);
102 $x = $proper->copy()->bdec(); ok ($x,$proper_dec);