File Coverage

inc/Test/Deep/Hash.pm
Criterion Covered Total %
statement 32 47 68.0
branch 2 4 50.0
condition n/a
subroutine 9 14 64.2
pod 0 5 0.0
total 43 70 61.4


line stmt bran cond sub pod time code
1 1     1   7 #line 1
  1         1  
  1         44  
2 1     1   6 use strict;
  1         2  
  1         40  
3             use warnings;
4              
5             package Test::Deep::Hash;
6 1     1   921  
  1         3  
  1         12  
7             use Test::Deep::Ref;
8              
9             sub init
10 3     3 0 7 {
11             my $self = shift;
12 3         5  
13             my $val = shift;
14 3         301  
15             $self->{val} = $val;
16             }
17              
18             sub descend
19 3     3 0 6 {
20             my $self = shift;
21 3         5  
22             my $got = shift;
23 3         6  
24             my $exp = $self->{val};
25 3         18  
26             my $data = $self->data;
27 3 50       11  
28             return 0 unless Test::Deep::descend($got, $self->hash_keys($exp));
29 3 50       21  
30             return 0 unless $self->test_class($got);
31 3         18  
32             return Test::Deep::descend($got, $self->hash_elements($exp));
33             }
34              
35             sub hash_elements
36 3     3 0 1182 {
37             require Test::Deep::HashElements;
38 3         9  
39             my $self = shift;
40 3         23  
41             return Test::Deep::HashElements->new(@_);
42             }
43              
44             sub hash_keys
45 3     3 0 1095 {
46             require Test::Deep::HashKeys;
47 3         8  
48 3         7 my $self = shift;
49             my $exp = shift;
50 3         25  
51             return Test::Deep::HashKeys->new(keys %$exp);
52             }
53              
54             sub reset_arrow
55 0     0 0   {
56             return 0;
57             }
58              
59             package Test::Deep::SuperHash;
60 1     1   9  
  1         1  
  1         78  
61             use base 'Test::Deep::Hash';
62              
63             sub hash_elements
64 0     0     {
65             require Test::Deep::HashElements;
66 0            
67             my $self = shift;
68 0            
69             return Test::Deep::SuperHashElements->new(@_);
70             }
71              
72             sub hash_keys
73 0     0     {
74             require Test::Deep::HashKeys;
75 0            
76 0           my $self = shift;
77             my $exp = shift;
78 0            
79             return Test::Deep::SuperHashKeys->new(keys %$exp);
80             }
81              
82             package Test::Deep::SubHash;
83 1     1   7  
  1         3  
  1         7  
84             use base 'Test::Deep::Hash';
85              
86             sub hash_elements
87 0     0     {
88             require Test::Deep::HashElements;
89 0            
90             my $self = shift;
91 0            
92             return Test::Deep::SubHashElements->new(@_);
93             }
94              
95             sub hash_keys
96 0     0     {
97             require Test::Deep::HashKeys;
98 0            
99 0           my $self = shift;
100             my $exp = shift;
101 0            
102             return Test::Deep::SubHashKeys->new(keys %$exp);
103             }
104              
105             1;