File Coverage

inc/Test/Deep/HashKeys.pm
Criterion Covered Total %
statement 29 37 78.3
branch 1 2 50.0
condition n/a
subroutine 8 10 80.0
pod 0 3 0.0
total 38 52 73.0


line stmt bran cond sub pod time code
1 12     12   73 #line 1
  12         25  
  12         874  
2 12     12   66 use strict;
  12         24  
  12         607  
3             use warnings;
4              
5             package Test::Deep::HashKeys;
6 12     12   61  
  12         21  
  12         77  
7             use Test::Deep::Ref;
8              
9             sub init
10 67     67 0 112 {
11             my $self = shift;
12 67         101  
13 67         218 my %keys;
14 67         3031 @keys{@_} = ();
15 67         410 $self->{val} = \%keys;
16             $self->{keys} = [sort @_];
17             }
18              
19             sub descend
20 67     67 0 112 {
21 67         2793 my $self = shift;
22             my $got = shift;
23 67         119  
24             my $exp = $self->{val};
25 67 50       322  
26             return 0 unless $self->test_reftype($got, "HASH");
27 67         368  
28             return Test::Deep::descend($got, $self->hashkeysonly($exp));
29             }
30              
31             sub hashkeysonly
32 67     67 0 13003 {
33             require Test::Deep::HashKeysOnly;
34 67         149  
35 67         108 my $self = shift;
36             my $exp = shift;
37 67         502  
38             return Test::Deep::HashKeysOnly->new(keys %$exp)
39             }
40              
41             package Test::Deep::SuperHashKeys;
42 12     12   68  
  12         27  
  12         186  
43             use base 'Test::Deep::HashKeys';
44              
45             sub hashkeysonly
46 0     0     {
47             require Test::Deep::HashKeysOnly;
48 0            
49 0           my $self = shift;
50             my $exp = shift;
51 0            
52             return Test::Deep::SuperHashKeysOnly->new(keys %$exp)
53             }
54              
55             package Test::Deep::SubHashKeys;
56 12     12   79  
  12         56  
  12         163  
57             use base 'Test::Deep::HashKeys';
58              
59             sub hashkeysonly
60 0     0     {
61             require Test::Deep::HashKeysOnly;
62 0            
63 0           my $self = shift;
64             my $exp = shift;
65 0            
66             return Test::Deep::SubHashKeysOnly->new(keys %$exp)
67             }
68              
69             1;