Acme-Tools

 view release on metacpan or  search on metacpan

t/33_refsubs.t  view on Meta::CPAN

# make test
# perl Makefile.PL; make; perl -Iblib/lib t/33_refsubs.t
use lib '.'; BEGIN{require 't/common.pl'}
use Test::More tests => 26;

my $ref_to_array  = [1,2,3];
my $ref_to_hash   = {1,100,2,200,3,300};
my $ref_to_scalar = \"String";

ok( refa $ref_to_array  );
ok( refh $ref_to_hash   );
ok( refs $ref_to_scalar );

my $ref_to_array_of_arrays = [ [1,2,3], [2,4,8], [10,100,1000] ];
my $ref_to_array_of_hashes = [ {1=>10, 2=>100}, {first=>1, second=>2} ];
my $ref_to_hash_of_arrays  = { alice=>[1,2,3], bob=>[2,4,8], eve=>[10,100,1000] };
my $ref_to_hash_of_hashes  = { alice=>{a=>22,b=>11}, bob=>{a=>33,b=>66} };

ok( refaa $ref_to_array_of_arrays );
ok( refah $ref_to_array_of_hashes );
ok( refha $ref_to_hash_of_arrays );
ok( refhh $ref_to_hash_of_hashes );

my $a=[2,3,4];

pushr $a, 5;      ok( join("",@$a) eq "2345" ); #print "@$a\n";
pushr $a, 6, 77;  ok( join("",@$a) eq "2345677" );
my $p=popr $a;    ok( join("",@$a) eq "23456" && $p==77 );
my $s=shiftr $a;  ok( join("",@$a) eq "3456"  && $s==2 );
unshiftr $a, 22;  ok( join("",@$a) eq "223456" );
unshiftr $a, 9,8; ok( join("",@$a) eq "98223456" );

#--splicer
my @s=splicer $a,2,3,9,100; ok(join("",@$a,'+',@s) eq "98910056+2234", "--> ".join(" ",@$a,' ',@s) );
@s=splicer $a,3,2;          ok(join("",@$a,'+',@s) eq "9896+1005",     "--> ".join(" ",@$a,'+',@s) );
@s=splicer $a,2;            ok(join("",@$a,'+',@s) eq "98+96",         "--> ".join(" ",@$a,'+',@s) );
pushr$a,44,55;              ok(join("",@$a) eq "984455");
my $last=splicer $a,1,2;    ok(join("",@$a) eq "955" && $last==44);

my $h={3=>4, 5=>6, 7=>8};
my @k=sort(keysr($h));
my @v=sort(valuesr($h));
ok( join("",@k) eq '357', "--> ".join(" ",@k) );
ok( join("",@v) eq '468', "--> ".join(" ",@v) );

while ( my($key, $val) = eachr $h) {
  deb "eachr key=$key val=$val\n";
  ok( in($key,@k) );
  ok( in($val,@v) );
}



( run in 0.827 second using v1.01-cache-2.11-cpan-39bf76dae61 )