File Coverage

blib/lib/Test/Deep/Hash.pm
Criterion Covered Total %
statement 47 47 100.0
branch 4 4 100.0
condition n/a
subroutine 14 14 100.0
pod 0 5 0.0
total 65 70 92.8


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