1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# -*- mode: perl; -*-
use strict;
use warnings;
use Test::More tests => 3070 # tests in require'd file
+ 8; # tests in this file
use lib 't';
use Math::BigFloat::Subclass;
our ($CLASS, $LIB);
$CLASS = "Math::BigFloat::Subclass";
$LIB = Math::BigFloat->config('lib'); # backend library
require './t/bigfltpm.inc'; # perform same tests as bigfltpm
###############################################################################
# Now do custom tests for Subclass itself
my $ms = $CLASS->new(23);
is($ms->{_custom}, 1, '$ms has custom attribute \$ms->{_custom}');
# Check that subclass is a Math::BigFloat, but not a Math::Bigint
isa_ok($ms, 'Math::BigFloat');
ok(!$ms->isa('Math::BigInt'),
"An object of class '" . ref($ms) . "' isn't a 'Math::BigFloat'");
use Math::BigFloat;
my $bf = Math::BigFloat->new(23); # same as other
$ms += $bf;
is($ms, 46, '$ms is 46');
is($ms->{_custom}, 1, '$ms has custom attribute $ms->{_custom}');
is(ref($ms), $CLASS, "\$ms is not an object of class '$CLASS'");
cmp_ok(Math::BigFloat::Subclass -> div_scale(), "==", 40,
"Math::BigFloat::Subclass gets 'div_scale' from parent");
is(Math::BigFloat::Subclass -> round_mode(), "even",
"Math::BigFloat::Subclass gets 'round_mode' from parent");
|