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 2     2   628206 use 5.010001;
  2         9  
4 2     2   11 use strict;
  2         4  
  2         79  
5 2     2   13 use warnings;
  2         5  
  2         210  
6              
7 2     2   996 use Role::Tiny::With;
  2         15994  
  2         610  
8              
9             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
10             our $DATE = '2024-05-14'; # DATE
11             our $DIST = 'TableDataRoles-Standard'; # DIST
12             our $VERSION = '0.025'; # VERSION
13              
14             with 'TableDataRole::Source::Iterator';
15              
16             sub new {
17 1     1 1 386095 my ($class, %args) = @_;
18 1   50     7 $args{num_rows} //= 10;
19 1   50     10 $args{random} //= 0;
20              
21             $class->_new(
22             gen_iterator => sub {
23 4     4   8 my $i = 0;
24             sub {
25 9         17 $i++;
26 9 100       28 return undef if $i > $args{num_rows}; ## no critic: Subroutines::ProhibitExplicitReturnUndef
27 8 50       55 return {i=>$args{random} ? int(rand()*$args{num_rows} + 1) : $i};
28 4         38 };
29             },
30 1         15 );
31             }
32              
33             1;
34             # ABSTRACT: A test table
35              
36             __END__