File Coverage

blib/lib/Benchmark/Featureset/ParamCheck/Implementation/Perl.pm
Criterion Covered Total %
statement 43 43 100.0
branch 21 22 95.4
condition 19 27 70.3
subroutine 12 12 100.0
pod 0 2 0.0
total 95 106 89.6


line stmt bran cond sub pod time code
1 4     4   6460 use v5.12;
  4         17  
2 4     4   20 use strict;
  4         7  
  4         76  
3 4     4   18 use warnings;
  4         9  
  4         214  
4              
5              
6             our $AUTHORITY = 'cpan:TOBYINK';
7             our $VERSION = '0.006';
8              
9             use parent qw(Benchmark::Featureset::ParamCheck::Base);
10 4     4   21 use Scalar::Util qw(blessed);
  4         8  
  4         18  
11 4     4   205 use namespace::autoclean;
  4         9  
  4         154  
12 4     4   30  
  4         10  
  4         23  
13             use constant long_name => 'Naive Pure Perl Implementation';
14 4     4   228 use constant short_name => 'PurePerl';
  4         12  
  4         195  
15 4     4   23  
  4         7  
  4         1836  
16             state $check = sub {
17             my %args = (@_==1 && ref($_[0]) eq 'HASH') ? %{$_[0]} : @_;
18             die 'invalid key' if grep !/\A(integer|object|hashes)\z/, keys %args;
19 400018 100 66 400018   1089838
  400009         1045250  
20 400018 100       1798758 die 'bad integer' unless
21             defined($args{integer})
22             && !ref($args{integer})
23             && $args{integer} =~ /\A-?[0-9]+\z/;
24            
25 400016 100 66     1702426 die 'bad object' unless
      100        
26             blessed($args{object})
27             && $args{object}->can('print')
28             && $args{object}->can('close');
29            
30 400012 100 100     2136334 die 'bad hashes' unless
      66        
31             ref($args{hashes}) eq 'ARRAY';
32             for my $arr (@{ $args{hashes} }) {
33 400008 100       928263 die 'bad hashes' unless ref($arr) eq 'HASH';
34 400006         541857 }
  400006         719085  
35 2000026 100       3460840
36             \%args;
37             };
38 400004         1238714 }
39 58     58 0 183  
40             state $check = sub {
41             die 'wrong number of parameters' unless @_==3;
42            
43             die 'bad integer' unless
44 400007 100   400007   673400 defined($_[0])
45             && !ref($_[0])
46 400005 100 33     1538036 && $_[0] =~ /\A-?[0-9]+\z/;
      66        
47            
48             die 'bad object' unless
49             blessed($_[2])
50             && $_[2]->can('print')
51 400004 100 66     1998863 && $_[2]->can('close');
      66        
52            
53             die 'bad hashes' unless
54             ref($_[1]) eq 'ARRAY';
55             for my $arr (@{ $_[1] }) {
56 400003 50       836101 die 'bad hashes' unless ref($arr) eq 'HASH';
57             }
58 400003         498142
  400003         659844  
59 2000013 100       3252634 @_;
60             };
61             }
62 400002         918547  
63 47     47 0 111 1;