Initial Commit
This commit is contained in:
80
database/perl/lib/Test/Deep/Number.pm
Normal file
80
database/perl/lib/Test/Deep/Number.pm
Normal file
@@ -0,0 +1,80 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
package Test::Deep::Number;
|
||||
|
||||
use Test::Deep::Cmp;
|
||||
|
||||
use Scalar::Util;
|
||||
|
||||
sub init
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
$self->{val} = shift(@_) + 0;
|
||||
$self->{tolerance} = shift;
|
||||
}
|
||||
|
||||
sub descend
|
||||
{
|
||||
my $self = shift;
|
||||
my $got = shift;
|
||||
$self->data->{got_string} = $got;
|
||||
{
|
||||
no warnings 'numeric';
|
||||
$got += 0;
|
||||
}
|
||||
|
||||
$self->data->{got} = $got;
|
||||
if (defined(my $tolerance = $self->{tolerance}))
|
||||
{
|
||||
return abs($got - $self->{val}) <= $tolerance;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $got == $self->{val};
|
||||
}
|
||||
}
|
||||
|
||||
sub diag_message
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
my $where = shift;
|
||||
|
||||
return "Comparing $where as a number";
|
||||
}
|
||||
|
||||
sub renderGot
|
||||
{
|
||||
my $self = shift;
|
||||
my $val = shift;
|
||||
|
||||
my $got_string = $self->data->{got_string};
|
||||
if ("$val" ne "$got_string")
|
||||
{
|
||||
$got_string = $self->SUPER::renderGot($got_string);
|
||||
return "$val ($got_string)"
|
||||
}
|
||||
else
|
||||
{
|
||||
return $val;
|
||||
}
|
||||
}
|
||||
sub renderExp
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
my $exp = $self->{val};
|
||||
|
||||
if (defined(my $tolerance = $self->{tolerance}))
|
||||
{
|
||||
return "$exp +/- $tolerance";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $exp;
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user