Upgrade to Math::BigInt v1.65, Math::BigRat v0.10,
[p5sagit/p5-mst-13.2.git] / t / lib / Math / BigFloat / Subclass.pm
index 209aa1d..2ec948e 100644 (file)
@@ -6,13 +6,15 @@ require 5.005_02;
 use strict;
 
 use Exporter;
-use Math::BigFloat(1.23);
+use Math::BigFloat(1.38);
 use vars qw($VERSION @ISA $PACKAGE
             $accuracy $precision $round_mode $div_scale);
 
 @ISA = qw(Exporter Math::BigFloat);
 
-$VERSION = 0.01;
+$VERSION = 0.04;
+
+use overload;          # inherit overload from BigInt
 
 # Globals
 $accuracy = $precision = undef;
@@ -25,14 +27,18 @@ sub new
         my $class  = ref($proto) || $proto;
 
         my $value       = shift;
-       # Set to 0 if not provided, but don't use || (this would trigger for
-       # a passed objects to see if they are zero)
-       $value  = 0 if !defined $value;   
-
+       my $a = $accuracy; $a = $_[0] if defined $_[0];
+       my $p = $precision; $p = $_[1] if defined $_[1];
         # Store the floating point value
-        my $self = bless Math::BigFloat->new($value), $class;
+        my $self = Math::BigFloat->new($value,$a,$p,$round_mode);
+        bless $self, $class;
         $self->{'_custom'} = 1; # make sure this never goes away
         return $self;
 }
 
+BEGIN
+  {
+  *objectify = \&Math::BigInt::objectify;
+  }
+
 1;