summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl.straw/lib/Test/Deep/Number.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl.straw/lib/Test/Deep/Number.pm')
-rwxr-xr-xMaster/tlpkg/tlperl.straw/lib/Test/Deep/Number.pm80
1 files changed, 80 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl.straw/lib/Test/Deep/Number.pm b/Master/tlpkg/tlperl.straw/lib/Test/Deep/Number.pm
new file mode 100755
index 00000000000..d8366ff09c6
--- /dev/null
+++ b/Master/tlpkg/tlperl.straw/lib/Test/Deep/Number.pm
@@ -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;