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 4     4   25 #line 1
  4         8  
  4         167  
2 4     4   29 use strict;
  4         9  
  4         159  
3             use warnings;
4              
5             package Test::Deep::Hash;
6 4     4   2756  
  4         12  
  4         39  
7             use Test::Deep::Ref;
8              
9             sub init
10 6     6 0 14 {
11             my $self = shift;
12 6         10  
13             my $val = shift;
14 6         631  
15             $self->{val} = $val;
16             }
17              
18             sub descend
19 6     6 0 14 {
20             my $self = shift;
21 6         11  
22             my $got = shift;
23 6         12  
24             my $exp = $self->{val};
25 6         38  
26             my $data = $self->data;
27 6 50       21  
28             return 0 unless Test::Deep::descend($got, $self->hash_keys($exp));
29 6 50       63  
30             return 0 unless $self->test_class($got);
31 6         34  
32             return Test::Deep::descend($got, $self->hash_elements($exp));
33             }
34              
35             sub hash_elements
36 6     6 0 45745 {
37             require Test::Deep::HashElements;
38 6         20  
39             my $self = shift;
40 6         64  
41             return Test::Deep::HashElements->new(@_);
42             }
43              
44             sub hash_keys
45 6     6 0 52471 {
46             require Test::Deep::HashKeys;
47 6         22  
48 6         14 my $self = shift;
49             my $exp = shift;
50 6         76  
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 4     4   100  
  4         7  
  4         818  
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 4     4   20  
  4         7  
  4         687  
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;