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   49 use strict;
  7         16  
  7         258  
2 7     7   39 use warnings;
  7         16  
  7         315  
3              
4             package Test::Deep::Hash 1.203;
5              
6 7     7   452 use Test::Deep::Ref;
  7         14  
  7         46  
7              
8             sub init
9             {
10 30     30 0 49 my $self = shift;
11              
12 30         57 my $val = shift;
13              
14 30         721 $self->{val} = $val;
15             }
16              
17             sub descend
18             {
19 38     38 0 59 my $self = shift;
20              
21 38         57 my $got = shift;
22              
23 38         65 my $exp = $self->{val};
24              
25 38         118 my $data = $self->data;
26              
27 38 100       88 return 0 unless Test::Deep::descend($got, $self->hash_keys($exp));
28              
29 16 100       80 return 0 unless $self->test_class($got);
30              
31 13         43 return Test::Deep::descend($got, $self->hash_elements($exp));
32             }
33              
34             sub hash_elements
35             {
36 11     11 0 2285 require Test::Deep::HashElements;
37              
38 11         24 my $self = shift;
39              
40 11         86 return Test::Deep::HashElements->new(@_);
41             }
42              
43             sub hash_keys
44             {
45 36     36 0 3467 require Test::Deep::HashKeys;
46              
47 36         69 my $self = shift;
48 36         55 my $exp = shift;
49              
50 36         169 return Test::Deep::HashKeys->new(keys %$exp);
51             }
52              
53             sub reset_arrow
54             {
55 8     8 0 26 return 0;
56             }
57              
58             package Test::Deep::SuperHash 1.203;
59              
60 7     7   53 use base 'Test::Deep::Hash';
  7         19  
  7         2353  
61              
62             sub hash_elements
63             {
64 1     1   5 require Test::Deep::HashElements;
65              
66 1         2 my $self = shift;
67              
68 1         6 return Test::Deep::SuperHashElements->new(@_);
69             }
70              
71             sub hash_keys
72             {
73 1     1   5 require Test::Deep::HashKeys;
74              
75 1         3 my $self = shift;
76 1         2 my $exp = shift;
77              
78 1         10 return Test::Deep::SuperHashKeys->new(keys %$exp);
79             }
80              
81             package Test::Deep::SubHash 1.203;
82              
83 7     7   69 use base 'Test::Deep::Hash';
  7         13  
  7         1382  
84              
85             sub hash_elements
86             {
87 1     1   5 require Test::Deep::HashElements;
88              
89 1         2 my $self = shift;
90              
91 1         6 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         1 my $exp = shift;
100              
101 1         11 return Test::Deep::SubHashKeys->new(keys %$exp);
102             }
103              
104             1;
105              
106             __END__