From da687c2af97fa1d5b33113fe1498d87de2b43b2a Mon Sep 17 00:00:00 2001 From: Jarkko Hietaniemi Date: Mon, 4 Mar 2002 16:46:49 +0000 Subject: [PATCH] A new M::BI test. p4raw-id: //depot/perl@15006 --- MANIFEST | 1 + lib/Math/BigInt/t/isa.t | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 lib/Math/BigInt/t/isa.t diff --git a/MANIFEST b/MANIFEST index d946a76..58021a6 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1146,6 +1146,7 @@ lib/Math/BigInt/t/calling.t Test calling conventions lib/Math/BigInt/t/config.t Test Math::BigInt->config() lib/Math/BigInt/t/constant.t Test Math::BigInt/BigFloat under :constant lib/Math/BigInt/t/downgrade.t Test if use Math::BigInt(); under downgrade works +lib/Math/BigInt/t/isa.t Test for Math::BigInt inheritance lib/Math/BigInt/t/inf_nan.t Special tests for inf and NaN handling lib/Math/BigInt/t/mbimbf.inc Actual BigInt/BigFloat accuracy, precicion and fallback, round_mode tests lib/Math/BigInt/t/mbimbf.t BigInt/BigFloat accuracy, precicion and fallback, round_mode diff --git a/lib/Math/BigInt/t/isa.t b/lib/Math/BigInt/t/isa.t new file mode 100644 index 0000000..adb80f9 --- /dev/null +++ b/lib/Math/BigInt/t/isa.t @@ -0,0 +1,59 @@ +#!/usr/bin/perl -w + +use Test; +use strict; + +BEGIN + { + $| = 1; + # to locate the testing files + my $location = $0; $location =~ s/isa.t//i; + if ($ENV{PERL_CORE}) + { + # testing with the core distribution + @INC = qw(../t/lib); + } + unshift @INC, qw(../lib); + if (-d 't') + { + chdir 't'; + require File::Spec; + unshift @INC, File::Spec->catdir(File::Spec->updir, $location); + } + else + { + unshift @INC, $location; + } + print "# INC = @INC\n"; + + plan tests => 7; + } + +use Math::BigInt::Subclass; +use Math::BigFloat::Subclass; +use Math::BigInt; +use Math::BigFloat; + +use vars qw ($class $try $x $y $f @args $ans $ans1 $ans1_str $setup $CL); +$class = "Math::BigInt::Subclass"; +$CL = "Math::BigInt::Calc"; + +# Check that a subclass is still considered a BigInt +ok ($class->new(123)->isa('Math::BigInt'),1); + +# ditto for plain Math::BigInt +ok (Math::BigInt->new(123)->isa('Math::BigInt'),1); + +# But Math::BigFloats aren't +ok (Math::BigFloat->new(123)->isa('Math::BigInt') || 0,0); + +# see what happens if we feed a Math::BigFloat into new() +$x = Math::BigInt->new(Math::BigFloat->new(123)); +ok (ref($x),'Math::BigInt'); +ok ($x->isa('Math::BigInt'),1); + +# ditto for subclass +$x = Math::BigInt->new(Math::BigFloat->new(123)); +ok (ref($x),'Math::BigInt'); +ok ($x->isa('Math::BigInt'),1); + -- 2.7.4