File Coverage

inc/Test/Deep/Shallow.pm
Criterion Covered Total %
statement 23 26 88.4
branch 5 8 62.5
condition 5 14 35.7
subroutine 6 6 100.0
pod 0 2 0.0
total 39 56 69.6


line stmt bran cond sub pod time code
1 12     12   68 #line 1
  12         21  
  12         430  
2 12     12   59 use strict;
  12         24  
  12         553  
3             use warnings;
4              
5             package Test::Deep::Shallow;
6 12     12   63  
  12         27  
  12         76  
7             use Test::Deep::Cmp;
8 12     12   65  
  12         24  
  12         5718  
9             use Scalar::Util qw( refaddr );
10              
11             sub init
12 307     307 0 372 {
13             my $self = shift;
14 307         382  
15 307         4610 my $val = shift;
16             $self->{val} = $val;
17             }
18              
19             sub descend
20 307     307 0 422 {
21             my $self = shift;
22 307         369  
23 307         492 my $got = shift;
24             my $exp = $self->{val};
25 307         389  
26             my $ok;
27 307 100 66     5179  
    50 25        
    50 33        
    50 25        
28             if (!defined $got and !defined $exp)
29 67         101 {
30             $ok = 1;
31             }
32             elsif (defined $got xor defined $exp)
33 0         0 {
34             $ok = 0;
35             }
36             elsif (ref $got and ref $exp)
37 0         0 {
38             $ok = refaddr($got) == refaddr($exp);
39             }
40             elsif (ref $got xor ref $exp)
41 0         0 {
42             $ok = 0;
43             }
44             else
45 240         409 {
46             $ok = $got eq $exp;
47             }
48 307         1101  
49             return $ok;
50             }
51              
52             1;