1use Test::More; 2use strict; use warnings; 3 4use List::Objects::WithUtils 'array'; 5 6my $arr = array('a' .. 'f'); 7my %as_hash = (map {; $_ => 1 } $arr->all ); 8 9my $rolled = $arr->roll(3); 10ok $rolled->count == 3, 'rolled three items'; 11for my $item ($rolled->all) { 12 ok exists $as_hash{$item}, "rolled item '$item' ok"; 13} 14 15$rolled = $arr->roll(8); 16ok $rolled->count == 8, 'rolled more than size of array'; 17for my $item ($rolled->all) { 18 ok exists $as_hash{$item}, "rolled item '$item' ok"; 19} 20 21$rolled = array->roll(3); 22ok $rolled->grep(sub { !defined }) && $rolled->count == 3, 23 'roll on empty array ok' 24 or diag explain $rolled; 25 26 27done_testing 28