File Coverage

blib/lib/Test/Deep/Number.pm
Criterion Covered Total %
statement 42 42 100.0
branch 6 6 100.0
condition n/a
subroutine 10 10 100.0
pod 0 5 0.0
total 58 63 92.0


line stmt bran cond sub pod time code
1 1     1   7 use strict;
  1         3  
  1         29  
2 1     1   6 use warnings;
  1         2  
  1         37  
3              
4             package Test::Deep::Number 1.203;
5              
6 1     1   395 use Test::Deep::Cmp;
  1         2  
  1         5  
7              
8 1     1   5 use Scalar::Util;
  1         2  
  1         112  
9              
10             sub init
11             {
12 8     8 0 12 my $self = shift;
13              
14 8         47 $self->{val} = shift(@_) + 0;
15 8         18 $self->{tolerance} = shift;
16             }
17              
18             sub descend
19             {
20 8     8 0 14 my $self = shift;
21 8         9 my $got = shift;
22 8         18 $self->data->{got_string} = $got;
23             {
24 1     1   6 no warnings 'numeric';
  1         2  
  1         343  
  8         13  
25 8         48 $got += 0;
26             }
27              
28 8         25 $self->data->{got} = $got;
29 8 100       31 if (defined(my $tolerance = $self->{tolerance}))
30             {
31 2         12 return abs($got - $self->{val}) <= $tolerance;
32             }
33             else
34             {
35 6         24 return $got == $self->{val};
36             }
37             }
38              
39             sub diag_message
40             {
41 4     4 0 6 my $self = shift;
42              
43 4         6 my $where = shift;
44              
45 4         11 return "Comparing $where as a number";
46             }
47              
48             sub renderGot
49             {
50 4     4 0 6 my $self = shift;
51 4         6 my $val = shift;
52              
53 4         8 my $got_string = $self->data->{got_string};
54 4 100       30 if ("$val" ne "$got_string")
55             {
56 1         6 $got_string = $self->SUPER::renderGot($got_string);
57 1         6 return "$val ($got_string)"
58             }
59             else
60             {
61 3         16 return $val;
62             }
63             }
64             sub renderExp
65             {
66 4     4 0 13 my $self = shift;
67              
68 4         6 my $exp = $self->{val};
69              
70 4 100       9 if (defined(my $tolerance = $self->{tolerance}))
71             {
72 1         9 return "$exp +/- $tolerance";
73             }
74             else
75             {
76 3         9 return $exp;
77             }
78             }
79              
80             1;
81              
82             __END__