Commit | Line | Data |
---|---|---|
ee15d750 JH |
1 | #!/usr/bin/perl -w |
2 | ||
3 | use Test; | |
4 | use strict; | |
5 | ||
6 | BEGIN | |
7 | { | |
e745a66c | 8 | $| = 1; |
e745a66c JH |
9 | # to locate the testing files |
10 | my $location = $0; $location =~ s/sub_mbi.t//i; | |
11 | if ($ENV{PERL_CORE}) | |
12 | { | |
13 | # testing with the core distribution | |
edea50ec | 14 | @INC = qw(../t/lib); |
e745a66c | 15 | } |
027dc388 | 16 | unshift @INC, qw(../lib); |
e745a66c JH |
17 | if (-d 't') |
18 | { | |
19 | chdir 't'; | |
20 | require File::Spec; | |
21 | unshift @INC, File::Spec->catdir(File::Spec->updir, $location); | |
22 | } | |
23 | else | |
24 | { | |
25 | unshift @INC, $location; | |
26 | } | |
27 | print "# INC = @INC\n"; | |
28 | ||
5b7ea690 | 29 | plan tests => 2527 |
07d34614 | 30 | + 5; # +5 own tests |
ee15d750 JH |
31 | } |
32 | ||
dccbb853 | 33 | use Math::BigInt::Subclass; |
ee15d750 | 34 | |
394e6ffb | 35 | use vars qw ($class $try $x $y $f @args $ans $ans1 $ans1_str $setup $CL); |
dccbb853 | 36 | $class = "Math::BigInt::Subclass"; |
394e6ffb | 37 | $CL = "Math::BigInt::Calc"; |
dccbb853 | 38 | |
394e6ffb | 39 | my $version = '0.02'; # for $VERSION tests, match current release (by hand!) |
ee15d750 | 40 | |
394e6ffb | 41 | require 'bigintpm.inc'; # perform same tests as bigintpm |
ee15d750 | 42 | |
9393ace2 | 43 | ############################################################################### |
ee15d750 | 44 | # Now do custom tests for Subclass itself |
9393ace2 | 45 | |
dccbb853 | 46 | my $ms = $class->new(23); |
ee15d750 JH |
47 | print "# Missing custom attribute \$ms->{_custom}" if !ok (1, $ms->{_custom}); |
48 | ||
9393ace2 JH |
49 | # Check that a subclass is still considered a BigInt |
50 | ok ($ms->isa('Math::BigInt'),1); | |
51 | ||
dccbb853 | 52 | use Math::BigInt; |
ee15d750 | 53 | |
dccbb853 JH |
54 | my $bi = Math::BigInt->new(23); # same as other |
55 | $ms += $bi; | |
56 | print "# Tried: \$ms += \$bi, got $ms" if !ok (46, $ms); | |
ee15d750 JH |
57 | print "# Missing custom attribute \$ms->{_custom}" if !ok (1, $ms->{_custom}); |
58 | print "# Wrong class: ref(\$ms) was ".ref($ms) if !ok ($class, ref($ms)); |