use Test::More tests => 16; BEGIN { use_ok('ArrayBox') }; use base 'ArrayBox'; use strict; use warnings; my $ab = __PACKAGE__->new( 'A' .. 'Z' ); isa_ok($ab, 'ArrayBox'); my $clone = $ab->clone; isa_ok($clone, 'ArrayBox'); is_deeply( [ $clone->all ], [ $ab->all ], 'clone' ); { my @lc; $ab->clone->each( sub { push @lc, lc } ); is_deeply( \@lc, [ 'a' .. 'z' ], 'each' ); } { my $i = 0; my @even = $ab->grep( sub { $i++ % 2 == 0 } )->all; is_deeply( \@even, [ qw( A C E G I K M O Q S U W Y ) ], 'grep' ); } { my @lc = $ab->map( sub { lc } )->all; is_deeply( \@lc, [ 'a' .. 'z' ], 'map' ); } { $ab->each( sub { $_ = lc } ); $ab->swap($clone); is_deeply( [ $ab->all ], [ 'A' .. 'Z' ], 'swap-a' ); is_deeply( [ $clone->all ], [ 'a' .. 'z' ], 'swap-b' ); $clone->each( sub { $_ = uc } ); } { my @a_pushed = $ab->clone->push('a')->all; is_deeply( \@a_pushed, [ 'A' .. 'Z', 'a' ], 'push' ); } { my @a_unshifted = $ab->clone->unshift('a')->all; is_deeply( \@a_unshifted, [ 'a', 'A' .. 'Z' ], 'unshift' ); } is_deeply( [ $ab->all ], [ 'A' .. 'Z' ], 'all' ); is( $ab->count, 26, 'count' ); is( $ab->clone->pop, 'Z', 'pop' ); is( $ab->clone->shift, 'A', 'shift' ); is( $ab->one . $ab->one(25), 'AZ', 'one' );