This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade Math::BigRat from version 0.260802 to 0.260804
[perl5.git] / cpan / Math-BigRat / t / big_ap.t
CommitLineData
6320cdc0 1#!perl
7d341013 2
12fc2493
AMS
3# Test that accuracy() and precision() in BigInt/BigFloat do not disturb
4# the rounding force in BigRat.
5
7d341013 6use strict;
11c955be
SH
7use warnings;
8
c32198f6 9use Test::More tests => 17;
7d341013
T
10
11use Math::BigInt;
12use Math::BigFloat;
13use Math::BigRat;
14
6320cdc0
SH
15my $proper = Math::BigRat -> new('12345678901234567890/2');
16my $proper_inc = Math::BigRat -> new('12345678901234567890/2') -> binc();
17my $proper_dec = Math::BigRat -> new('12345678901234567890/2') -> bdec();
18my $proper_int = Math::BigInt -> new('12345678901234567890');
19my $proper_float = Math::BigFloat -> new('12345678901234567890');
20my $proper2 = Math::BigRat -> new('12345678901234567890');
7d341013 21
6320cdc0
SH
22Math::BigInt -> accuracy(3);
23Math::BigFloat -> accuracy(5);
7d341013 24
11c955be 25my ($x, $y, $z);
7d341013
T
26
27##############################################################################
28# new()
29
6320cdc0 30note "Test new()";
11c955be 31
6320cdc0
SH
32$z = Math::BigRat->new("12345678901234567890/2");
33is($z, $proper, q|Math::BigRat->new("12345678901234567890/2")|);
11c955be 34
6320cdc0
SH
35$z = Math::BigRat->new("1234567890123456789E1");
36is($z, $proper2, q|Math::BigRat->new("1234567890123456789E1")|);
7d341013 37
6320cdc0
SH
38$z = Math::BigRat->new("12345678901234567890/1E0");
39is($z, $proper2, q|Math::BigRat->new("12345678901234567890/1E0")|);
7d341013 40
6320cdc0
SH
41$z = Math::BigRat->new("1234567890123456789e1/1");
42is($z, $proper2, q|Math::BigRat->new("1234567890123456789e1/1")|);
43
44$z = Math::BigRat->new("1234567890123456789e1/1E0");
45is($z, $proper2, q|Math::BigRat->new("1234567890123456789e1/1E0")|);
7d341013 46
11c955be 47$z = Math::BigRat->new($proper_int);
6320cdc0 48is($z, $proper2, qq|Math::BigRat->new("$proper_int")|);
7d341013 49
11c955be 50$z = Math::BigRat->new($proper_float);
6320cdc0 51is($z, $proper2, qq|Math::BigRat->new("$proper_float")|);
7d341013
T
52
53##############################################################################
54# bdiv
55
6320cdc0
SH
56note "Test bdiv()";
57
58$x = Math::BigRat->new("12345678901234567890");
59$y = Math::BigRat->new("2");
7d341013 60$z = $x->copy->bdiv($y);
11c955be 61is($z, $proper);
7d341013
T
62
63##############################################################################
64# bmul
65
6320cdc0
SH
66note "Test bmul()";
67
11c955be 68$x = Math::BigRat->new("$proper");
6320cdc0 69$y = Math::BigRat->new("1");
7d341013 70$z = $x->copy->bmul($y);
11c955be 71is($z, $proper);
7d341013 72
6320cdc0 73$z = Math::BigRat->new("12345678901234567890/1E0");
11c955be 74is($z, $proper2);
7d341013 75
11c955be
SH
76$z = Math::BigRat->new($proper_int);
77is($z, $proper2);
78
79$z = Math::BigRat->new($proper_float);
80is($z, $proper2);
7d341013
T
81
82##############################################################################
83# bdiv
84
6320cdc0
SH
85note "Test bdiv()";
86
87$x = Math::BigRat->new("12345678901234567890");
88$y = Math::BigRat->new("2");
7d341013 89$z = $x->copy->bdiv($y);
11c955be 90is($z, $proper);
7d341013
T
91
92##############################################################################
93# bmul
94
6320cdc0
SH
95note "Test bmul()";
96
11c955be 97$x = Math::BigRat->new("$proper");
6320cdc0 98$y = Math::BigRat->new("1");
7d341013 99$z = $x->copy->bmul($y);
11c955be 100is($z, $proper);
7d341013 101
11c955be 102$x = Math::BigRat->new("$proper");
6320cdc0 103$y = Math::BigRat->new("2");
7d341013 104$z = $x->copy->bmul($y);
11c955be 105is($z, $proper2);
7d341013
T
106
107##############################################################################
6320cdc0
SH
108# binc
109
110note "Test binc()";
7d341013 111
11c955be
SH
112$x = $proper->copy()->binc();
113is($x, $proper_inc);
114
6320cdc0
SH
115##############################################################################
116# binc
117
118note "Test bdec()";
119
11c955be
SH
120$x = $proper->copy()->bdec();
121is($x, $proper_dec);