Я ищу процедуру теста, например is_deeply
в Test::More
.
Есть cmp_bag
из Test::Deep
, но это работает только с самим массивом, а не с ужасно большой структурой данных hash-of-arrays-of-hashes. 1009 *
is_deeply $got, $expected, {
array => cmp_bag,
# and other configuration...
}, "Ugly data structure should be the same, barring array order.";
Разъяснение
Я могу рекурсивно копаться в моих объектах $expected
и $got
и преобразовывать массивы в объекты-мешки:
sub bagIt {
my $obj = shift;
switch (ref($obj)) {
case "ARRAY" {
return bag([
map { $_ = bagIt($_) }
@$obj
]);
} case "HASH" {
return {
map { $_ => bagIt( $obj->{$_} ) }
keys %$obj
};
} else {
return $obj;
}
}
}
Мне интересно, есть ли способ сказать какой-то вариант is_deeply
сделать это для меня.