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   206 use strict;
  30         62  
  30         927  
2 30     30   161 use warnings;
  30         53  
  30         1153  
3              
4             package Test::Deep::Shallow 1.204;
5              
6 30     30   1719 use Test::Deep::Cmp;
  30         71  
  30         161  
7              
8 30     30   274 use Scalar::Util qw( refaddr );
  30         57  
  30         6352  
9              
10             sub init
11             {
12 836     836 0 1248 my $self = shift;
13              
14 836         1176 my $val = shift;
15 836         2911 $self->{val} = $val;
16             }
17              
18             sub descend
19             {
20 825     825 0 1199 my $self = shift;
21              
22 825         1141 my $got = shift;
23 825         1332 my $exp = $self->{val};
24              
25 825         1133 my $ok;
26              
27 825 100 100     5248 if (!defined $got and !defined $exp)
    100 75        
    100 100        
    100 75        
28             {
29 148         596 $ok = 1;
30             }
31             elsif (defined $got xor defined $exp)
32             {
33 67         305 $ok = 0;
34             }
35             elsif (ref $got and ref $exp)
36             {
37 4         12 $ok = refaddr($got) == refaddr($exp);
38             }
39             elsif (ref $got xor ref $exp)
40             {
41 36         56 $ok = 0;
42             }
43             else
44             {
45 570         1026 $ok = $got eq $exp;
46             }
47              
48 825         2181 return $ok;
49             }
50              
51             1;
52              
53             __END__