#!perl -w
package Date::Pcalc::Subclass;
BEGIN { eval { require bytes; }; }
use strict;
no strict "vars";
use Date::Pcalc::Object qw(:all);
@ISA = qw(Date::Pcalc);
# Workaround for what appears to be a bug in Perl 5.003:
*Date::Pcalc::DESTROY = *Date::Pcalc::DESTROY = sub { } if ($] < 5.004);
# ======================================================================
# $date = Date::Pcalc->new();
# ======================================================================
# Crappy Perl 5.6.0 has internal refcount problems below:
if ($] eq '5.006') { print "1..190\n"; }
else { print "1..196\n"; }
# Attempt to free unreferenced scalar at ./t/m001.t line 726 (#1)
# (W internal) Perl went to decrement the reference count of a scalar to see if it
# would go to 0, and discovered that it had already gone to 0 earlier,
# and should have been freed, and in fact, probably was freed. This
# could indicate that SvREFCNT_dec() was called too many times, or that
# SvREFCNT_inc() was called too few times, or that the SV was mortalized
# when it shouldn't have been, or that memory has been corrupted.
$n = 1;
eval { $date = Date::Pcalc->new(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date eq 'Date::Pcalc')
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(0); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date eq 'Date::Pcalc')
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(1); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date eq 'Date::Pcalc')
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc::Subclass->new(2000,2,29); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date eq 'Date::Pcalc::Subclass')
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 2000)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 2)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == 29)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->hours())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->minutes())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->seconds())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(1900,2,29); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (ref $date eq 'Date::Pcalc')
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $day = $date->day(28); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $day)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($day == 28)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == $day)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 2)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 1900)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->hours())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->minutes())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->seconds())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new([2000,2,29]); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == 29)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 2)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 2000)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->hours())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->minutes())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->seconds())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $other = $date->new(1964,1,3,11,5,4); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $other->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $other->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $other->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($other->day() == 3)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($other->month() == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($other->year() == 1964)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($other->hours() == 11)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($other->minutes() == 5)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($other->seconds() == 4)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == 29)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 2)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 2000)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->hours())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->minutes())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->seconds())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(0,2001,6,10,9,15,36); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == 10)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 6)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 2001)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->hours() == 9)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->minutes() == 15)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->seconds() == 36)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(1,37,5,6); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 37)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 5)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == 6)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->hours())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->minutes())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
unless (defined $date->seconds())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(1,0,0,13672,22,10,32); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == 13672)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->hours() == 22)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->minutes() == 10)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->seconds() == 32)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new([1,0,0,-13672,-22,-10,-32]); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_valid(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $flag = $date->is_delta(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if (defined $flag)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($flag == 1)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->year() == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->month() == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->day() == -13672)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->hours() == -22)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->minutes() == -10)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->seconds() == -32)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
# Crappy Perl 5.6.0 has internal refcount problems here:
if ($] ne '5.006')
{
eval { $date = Date::Pcalc->new(1,2); };
if ($@ =~ /\bwrong number of arguments\b/)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(1,2,3,4,5); };
if ($@ =~ /\bwrong number of arguments\b/)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new(1,2,3,4,5,6,7,8); };
if ($@ =~ /\bwrong number of arguments\b/)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new([1,2]); };
if ($@ =~ /\bwrong number of arguments\b/)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new([1,2,3,4,5]); };
if ($@ =~ /\bwrong number of arguments\b/)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date = Date::Pcalc->new([1,2,3,4,5,6,7,8]); };
if ($@ =~ /\bwrong number of arguments\b/)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
}
__END__