use warnings; use strict; use Test::More tests => 13; BEGIN { use_ok "Time::OlsonTZ::Data", qw( olson_canonical_names olson_link_names olson_all_names ); } my $failures; my $cnames = olson_canonical_names; my $lnames = olson_link_names; my $anames = olson_all_names; foreach($cnames, $lnames, $anames) { is ref($_), "HASH"; $failures = 0; foreach(keys %$_) { m#\A[0-9A-Za-z\-\+_]+(?:/[0-9A-Za-z\-\+_]+)*\z# or $failures++; } is $failures, 0; $failures = 0; foreach(values %$_) { !defined($_) or $failures++; } is $failures, 0; } foreach($cnames, $lnames) { $failures = 0; foreach(keys %$_) { exists($anames->{$_}) or $failures++; } is $failures, 0; } $failures = 0; foreach(keys %$anames) { (exists($cnames->{$_})?1:0) + (exists($lnames->{$_})?1:0) == 1 or $failures++; } is $failures, 0; 1;