File Coverage

blib/lib/Test/Deep/Shallow.pm
Criterion Covered Total %
statement 26 26 100.0
branch 8 8 100.0
condition 12 14 85.7
subroutine 6 6 100.0
pod 0 2 0.0
total 52 56 92.8


line stmt bran cond sub pod time code
1 30     30   204 use strict;
  30         58  
  30         973  
2 30     30   179 use warnings;
  30         55  
  30         1169  
3              
4             package Test::Deep::Shallow 1.203;
5              
6 30     30   1719 use Test::Deep::Cmp;
  30         59  
  30         153  
7              
8 30     30   297 use Scalar::Util qw( refaddr );
  30         82  
  30         6312  
9              
10             sub init
11             {
12 815     815 0 1121 my $self = shift;
13              
14 815         1160 my $val = shift;
15 815         2832 $self->{val} = $val;
16             }
17              
18             sub descend
19             {
20 804     804 0 1206 my $self = shift;
21              
22 804         1109 my $got = shift;
23 804         1308 my $exp = $self->{val};
24              
25 804         1118 my $ok;
26              
27 804 100 100     4998 if (!defined $got and !defined $exp)
    100 75        
    100 100        
    100 75        
28             {
29 148         555 $ok = 1;
30             }
31             elsif (defined $got xor defined $exp)
32             {
33 67         116 $ok = 0;
34             }
35             elsif (ref $got and ref $exp)
36             {
37 4         13 $ok = refaddr($got) == refaddr($exp);
38             }
39             elsif (ref $got xor ref $exp)
40             {
41 36         56 $ok = 0;
42             }
43             else
44             {
45 549         998 $ok = $got eq $exp;
46             }
47              
48 804         2018 return $ok;
49             }
50              
51             1;
52              
53             __END__