DateTime-Fiction-JRRTolkien-Shire
view release on metacpan or search on metacpan
tools/make-regression view on Meta::CPAN
print <<'EOT';
# Created @{[ scalar gmtime ]} UT
# using Date::Tolkien::Shire $dts_version
EOT
my ( \$dts, \$epoch );
EOD
foreach my $interval ( @test_years ) {
test_years( @{ $interval }, 1 );
}
print <<'EOD';
1;
# ex: set textwidth=72 :
EOD
sub test_years {
my ( $start_year, $finish_year, $emit ) = @_;
my $count = 0;
my $epoch = timelocal( 0, 0, 12, 1, 0, $start_year );
my $last = timelocal( 0, 0, 12, 1, 0, $finish_year );
$emit
or return ( $last - $epoch ) / 86400 * 24;
while ( $epoch < $last ) {
my ( undef, undef, undef, $day, $mon, $yr ) = localtime $epoch;
$yr += 1900;
$mon++;
my $date = sprintf '%04d-%02d-%02d Gregorian', $yr, $mon, $day;
my $dts = DateTime::Fiction::JRRTolkien::Shire->from_object(
object => DateTime->new(
year => $yr,
month => $mon,
day => $day,
),
);
print <<"EOD";
\$epoch = timegm( 0, 0, 0, $day, $mon - 1, $yr );
\$dts = DateTime::Fiction::JRRTolkien::Shire->from_object(
object => DateTime->new(
year => $yr,
month => $mon,
day => $day,
),
);
EOD
no warnings qw{ qw };
foreach my $method ( qw{
#calendar_name
#clone
day
day_name
day_name_trad
day_of_month
day_of_week
day_of_year
dow
doy
epoch
#from_day_of_year
#from_epoch
#from_object
hires_epoch
holiday
holiday_name
is_leap_year
#last_day_of_month
mday
month
month_name
#new
#now
on_date
#set
#set_time_zone
#time_zone
#time_zone_long_name
#time_zone_short_name
#today
#truncate
utc_rd_as_seconds
utc_rd_values
wday
week
week_number
week_year
year
} ) {
$method =~ m/ \A [#] /smx
and next;
my $title = "$method() on $date";
my @r = $dts->$method();
my ( $rslt, $call );
if ( @r > 1 ) {
$call = "[ \$dts->$method() ]";
$rslt = \@r;
} else {
$call = "\$dts->$method()";
$rslt = $r[0];
}
if ( ! defined $rslt ) {
print <<"EOD";
is( $call, undef, '$title' );
EOD
} elsif ( ref $rslt ) {
local $Data::Dumper::Terse = 1;
my $dump = Dumper( $rslt );
print <<"EOD";
is_deeply( $call, $dump, '$title' );
( run in 2.066 seconds using v1.01-cache-2.11-cpan-364913b4093 )