sub array_each_orHash {
my $comparator = shift;
my $handleArrayOrHash = sub {
my $data = shift;
return array_each($comparator) if (ref($data) eq "ARRAY");
return $comparator if (ref($data) eq "HASH");
};
return code( \&$handleArrayOrHash );
}
####
sub array_each_orHash {
my $comparator = shift;
my $handleArrayOrHash = sub {
my $data = shift;
my $result = (0, 'must pass an ARRAY or HASH');
$result = eq_deeply($data, array_each($comparator)) if (ref($data) eq "ARRAY");
$result = eq_deeply($data, $comparator) if (ref($data) eq "HASH");
return $result;
};
return code( \&$handleArrayOrHash );
}
####
use strict;
use warnings;
package Test::Deep::ArrayEach;
use Test::Deep::Cmp;
sub init
{
my $self = shift;
my $val = shift;
$self->{val} = $val;
}
sub descend
{
my $self = shift;
my $got = shift;
my $exp = [ ($self->{val}) x @$got ];
return Test::Deep::descend($got, $exp);
}
1;