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 12     12   105 #line 1
  12         21  
  12         1124  
2 12     12   68 use strict;
  12         21  
  12         537  
3             use warnings;
4              
5             package Test::Deep::Hash;
6 12     12   10174  
  12         31  
  12         175  
7             use Test::Deep::Ref;
8              
9             sub init
10 67     67 0 105 {
11             my $self = shift;
12 67         101  
13             my $val = shift;
14 67         3699  
15             $self->{val} = $val;
16             }
17              
18             sub descend
19 67     67 0 107 {
20             my $self = shift;
21 67         98  
22             my $got = shift;
23 67         165  
24             my $exp = $self->{val};
25 67         271  
26             my $data = $self->data;
27 67 50       836  
28             return 0 unless Test::Deep::descend($got, $self->hash_keys($exp));
29 67 50       389  
30             return 0 unless $self->test_class($got);
31 67         295  
32             return Test::Deep::descend($got, $self->hash_elements($exp));
33             }
34              
35             sub hash_elements
36 67     67 0 7994 {
37             require Test::Deep::HashElements;
38 67         159  
39             my $self = shift;
40 67         333  
41             return Test::Deep::HashElements->new(@_);
42             }
43              
44             sub hash_keys
45 67     67 0 14137 {
46             require Test::Deep::HashKeys;
47 67         314  
48 67         115 my $self = shift;
49             my $exp = shift;
50 67         1176  
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 12     12   82  
  12         35  
  12         254  
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 12     12   62  
  12         128  
  12         169  
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;