Commit | Line | Data |
0e480911 |
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; |
450776ec |
14 | @array->each_n_values(2, sub { push @vals, [@_] }); |
0e480911 |
15 | is(scalar @vals, 13); |
16 | is(scalar @$_, 2) for @vals; |
17 | is_deeply(@vals->map(sub { @{ $_ } }), [@array]); |
18 | } |
19 | |
20 | { |
21 | my @vals; |
450776ec |
22 | $aref->each_n_values(2, sub { push @vals, [@_] }); |
0e480911 |
23 | is(scalar @vals, 13); |
24 | is(scalar @$_, 2) for @vals; |
25 | is_deeply(@vals->map(sub { @{ $_ } }), $aref); |
26 | } |
27 | } |
28 | |
f089b856 |
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 | |
0e480911 |
53 | done_testing; |