File Coverage

blib/lib/TableData/Test/Source/Iterator.pm
Criterion Covered Total %
statement 20 20 100.0
branch 3 4 75.0
condition 2 4 50.0
subroutine 6 6 100.0
pod 1 1 100.0
total 32 35 91.4


line stmt bran cond sub pod time code
1             package TableData::Test::Source::Iterator;
2              
3 1     1   73594 use 5.010001;
  1         12  
4 1     1   5 use strict;
  1         2  
  1         21  
5 1     1   4 use warnings;
  1         2  
  1         47  
6              
7 1     1   436 use Role::Tiny::With;
  1         5179  
  1         198  
8              
9             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
10             our $DATE = '2023-06-14'; # DATE
11             our $DIST = 'TableDataRoles-Standard'; # DIST
12             our $VERSION = '0.016'; # VERSION
13              
14             with 'TableDataRole::Source::Iterator';
15              
16             sub new {
17 1     1 1 126 my ($class, %args) = @_;
18 1   50     20 $args{num_rows} //= 10;
19 1   50     9 $args{random} //= 0;
20              
21             $class->_new(
22             gen_iterator => sub {
23 4     4   7 my $i = 0;
24             sub {
25 9         15 $i++;
26 9 100       22 return undef if $i > $args{num_rows}; ## no critic: Subroutines::ProhibitExplicitReturnUndef
27 8 50       31 return {i=>$args{random} ? int(rand()*$args{num_rows} + 1) : $i};
28 4         40 };
29             },
30 1         11 );
31             }
32              
33             1;
34             # ABSTRACT: A test table
35              
36             __END__