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   198 use strict;
  30         66  
  30         928  
2 30     30   154 use warnings;
  30         59  
  30         1200  
3              
4             package Test::Deep::Shallow 1.202;
5              
6 30     30   1815 use Test::Deep::Cmp;
  30         68  
  30         149  
7              
8 30     30   179 use Scalar::Util qw( refaddr );
  30         61  
  30         6223  
9              
10             sub init
11             {
12 820     820 0 1231 my $self = shift;
13              
14 820         1144 my $val = shift;
15 820         2858 $self->{val} = $val;
16             }
17              
18             sub descend
19             {
20 809     809 0 1226 my $self = shift;
21              
22 809         1529 my $got = shift;
23 809         1272 my $exp = $self->{val};
24              
25 809         1055 my $ok;
26              
27 809 100 100     4844 if (!defined $got and !defined $exp)
    100 75        
    100 100        
    100 75        
28             {
29 148         226 $ok = 1;
30             }
31             elsif (defined $got xor defined $exp)
32             {
33 67         111 $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 554         985 $ok = $got eq $exp;
46             }
47              
48 809         2154 return $ok;
49             }
50              
51             1;
52              
53             __END__