changelog tweak
[gitmo/Moose-Autobox.git] / t / 011_each_n_values.t
1 use strict;
2 use warnings;
3 use Test::More;
4
5 use Moose::Autobox;
6
7 {
8     my @array = ('a' .. 'z');
9
10     my $aref = [ @array ];
11
12     {
13         my @vals;
14         @array->each_n_values(2, sub { push @vals, [@_] });
15         is(scalar @vals, 13);
16         is(scalar @$_, 2) for @vals;
17         is_deeply(@vals->map(sub { @{ $_ } }), [@array]);
18     }
19
20     {
21         my @vals;
22         $aref->each_n_values(2, sub { push @vals, [@_] });
23         is(scalar @vals, 13);
24         is(scalar @$_, 2) for @vals;
25         is_deeply(@vals->map(sub { @{ $_ } }), $aref);
26     }
27 }
28
29 {
30     my %hash = (a => 1, b => 2, c => 3, d => 4);
31
32     my $href = { %hash };
33
34     {
35         my @vals;
36         %hash->each_n_values(2, sub { push @vals, [@_] });
37         my %seen;
38         is(@vals, 2);
39         for my $pair (@vals) { $seen{$_}++ for @$pair }
40         is_deeply(\%seen, { 1,1,2,1,3,1,4,1 });
41     }
42
43     {
44         my @vals;
45         $href->each_n_values(2, sub { push @vals, [@_] });
46         my %seen;
47         is(@vals, 2);
48         for my $pair (@vals) { $seen{$_}++ for @$pair }
49         is_deeply(\%seen, { 1,1,2,1,3,1,4,1 });
50     }
51 }
52
53 done_testing;