1use Test::More; 2use strict; use warnings FATAL => 'all'; 3 4use List::Objects::WithUtils 'array'; 5 6my $arr = array( 1 .. 7 ); 7my $itr = $arr->natatime(3); 8is_deeply [ $itr->() ], [1, 2, 3], 'natatime itr() 1 ok'; 9is_deeply [ $itr->() ], [4, 5, 6], 'natatime itr() 2 ok'; 10is_deeply [ $itr->() ], [7], 'natatime itr() 3 ok'; 11ok !$itr->(), 'last itr returned false'; 12 13my $counted; 14$arr->natatime(3, sub { ++$counted }); 15is $counted, 3, 'natatime with coderef ok'; 16 17$itr = array->natatime(2); 18ok !defined $itr->(), 'empty array itr returned undef'; 19 20done_testing; 21