Need to skip optree walking tests if perlio not built
[p5sagit/p5-mst-13.2.git] / lib / Math / BigRat / t / big_ap.t
CommitLineData
7d341013 1#!/usr/bin/perl -w
2
3use Test;
4use strict;
5
6BEGIN
7 {
8 $| = 1;
9 chdir 't' if -d 't';
10 unshift @INC, '../lib';
11 plan tests => 17;
12 }
13
14use Math::BigInt;
15use Math::BigFloat;
16use Math::BigRat;
17
18my $r = 'Math::BigRat';
19my $proper = $r->new('12345678901234567890/2');
20my $proper_inc = $r->new('12345678901234567890/2')->binc();
21my $proper_dec = $r->new('12345678901234567890/2')->bdec();
22my $proper_int = Math::BigInt->new('12345678901234567890');
23my $proper_float = Math::BigFloat->new('12345678901234567890');
24my $proper2 = $r->new('12345678901234567890');
25
26print "# Start\n";
27
28Math::BigInt->accuracy(3);
29Math::BigFloat->accuracy(5);
30
31my ($x,$y,$z);
32
33##############################################################################
34# new()
35
36$z = $r->new('12345678901234567890/2');
37ok ($z,$proper);
38
39$z = $r->new('1234567890123456789E1');
40ok ($z,$proper2);
41
42$z = $r->new('12345678901234567890/1E0');
43ok ($z,$proper2);
44$z = $r->new('1234567890123456789e1/1');
45ok ($z,$proper2);
46$z = $r->new('1234567890123456789e1/1E0');
47ok ($z,$proper2);
48
49$z = $r->new($proper_int);
50ok ($z,$proper2);
51
52$z = $r->new($proper_float);
53ok ($z,$proper2);
54
55##############################################################################
56# bdiv
57
58$x = $r->new('12345678901234567890'); $y = Math::BigRat->new('2');
59$z = $x->copy->bdiv($y);
60ok ($z,$proper);
61
62##############################################################################
63# bmul
64
65$x = $r->new("$proper"); $y = Math::BigRat->new('1');
66$z = $x->copy->bmul($y);
67ok ($z,$proper);
68$z = $r->new('12345678901234567890/1E0');
69ok ($z,$proper2);
70
71$z = $r->new($proper_int);
72ok ($z,$proper2);
73
74$z = $r->new($proper_float);
75ok ($z,$proper2);
76
77##############################################################################
78# bdiv
79
80$x = $r->new('12345678901234567890'); $y = Math::BigRat->new('2');
81$z = $x->copy->bdiv($y);
82ok ($z,$proper);
83
84##############################################################################
85# bmul
86
87$x = $r->new("$proper"); $y = Math::BigRat->new('1');
88$z = $x->copy->bmul($y);
89ok ($z,$proper);
90
91$x = $r->new("$proper"); $y = Math::BigRat->new('2');
92$z = $x->copy->bmul($y);
93ok ($z,$proper2);
94
95##############################################################################
96# binc
97
98$x = $proper->copy()->binc(); ok ($x,$proper_inc);
99$x = $proper->copy()->bdec(); ok ($x,$proper_dec);
100