Blame t/recur.nth.t

Packit 95306a
#!/usr/bin/perl -w
Packit 95306a
Packit 95306a
use Test::Inter;
Packit 95306a
$t = new Test::Inter 'recur :: nth/next/prev';
Packit 95306a
$testdir = '';
Packit 95306a
$testdir = $t->testdir();
Packit 95306a
Packit 95306a
use Date::Manip;
Packit 95306a
if (DateManipVersion() >= 6.00) {
Packit 95306a
   $t->feature("DM6",1);
Packit 95306a
}
Packit 95306a
Packit 95306a
$t->skip_all('Date::Manip 6.xx required','DM6');
Packit 95306a
Packit 95306a
Packit 95306a
sub test {
Packit 95306a
  ($op,$arg) = @_;
Packit 95306a
Packit 95306a
  if ($op eq 'freq') {
Packit 95306a
     $err = $obj->frequency($arg);
Packit 95306a
     return $obj->err()  if ($err);
Packit 95306a
     return 0;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'basedate') {
Packit 95306a
     $err = $obj->basedate($arg);
Packit 95306a
     return $obj->err()  if ($err);
Packit 95306a
     return 0;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'start') {
Packit 95306a
     $err = $obj->start($arg);
Packit 95306a
     return $obj->err()  if ($err);
Packit 95306a
     return 0;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'end') {
Packit 95306a
     $err = $obj->end($arg);
Packit 95306a
     return $obj->err()  if ($err);
Packit 95306a
     return 0;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'next') {
Packit 95306a
     ($date,$err)   = $obj->next($arg);
Packit 95306a
     return $err   if ($err);
Packit 95306a
     return $date  if (! defined($date));
Packit 95306a
     my $val = $date->value();
Packit 95306a
     return $val;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'prev') {
Packit 95306a
     ($date,$err)   = $obj->prev($arg);
Packit 95306a
     return $err   if ($err);
Packit 95306a
     return $date  if (! defined($date));
Packit 95306a
     my $val = $date->value();
Packit 95306a
     return $val;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'nth') {
Packit 95306a
     ($date,$err)   = $obj->nth($arg);
Packit 95306a
     return $err   if ($err);
Packit 95306a
     return $date  if (! defined($date));
Packit 95306a
     my $val = $date->value();
Packit 95306a
     return $val;
Packit 95306a
  }
Packit 95306a
}
Packit 95306a
Packit 95306a
$obj = new Date::Manip::Recur;
Packit 95306a
$obj->config("forcedate","2000-01-21-00:00:00,America/New_York");
Packit 95306a
Packit 95306a
$tests="
Packit 95306a
Packit 95306a
freq 1*2:0:4:12:0:0       => 0
Packit 95306a
Packit 95306a
basedate 1999-12-30-00:00:00  => 0
Packit 95306a
Packit 95306a
nth 0                      => 1999020412:00:00  
Packit 95306a
Packit 95306a
nth 2                      => 2001020412:00:00
Packit 95306a
Packit 95306a
nth -2                     => 1997020412:00:00
Packit 95306a
Packit 95306a
# 31st of every month
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-01-27-00:00:00  => 0
Packit 95306a
Packit 95306a
nth 0                      => 2005013112:00:00
Packit 95306a
Packit 95306a
nth 1                      => __undef__
Packit 95306a
Packit 95306a
nth 2                      => 2005033112:00:00
Packit 95306a
Packit 95306a
nth -1                     => 2004123112:00:00
Packit 95306a
Packit 95306a
# d=15--15
Packit 95306a
Packit 95306a
freq 0:1*0:15--15:12:0:0  => 0
Packit 95306a
Packit 95306a
basedate 2005-01-27-00:00:00  => 0
Packit 95306a
Packit 95306a
nth 0                      => 2005011512:00:00
Packit 95306a
Packit 95306a
nth 1                      => 2005011612:00:00
Packit 95306a
Packit 95306a
nth 2                      => 2005011712:00:00
Packit 95306a
Packit 95306a
nth 3                      => 2005031512:00:00
Packit 95306a
Packit 95306a
# DST transition dates
Packit 95306a
Packit 95306a
freq 0:0:0:0:1*30:0       => 0
Packit 95306a
Packit 95306a
basedate 2010-03-14-00:00:01  => 0
Packit 95306a
Packit 95306a
nth 0                      => 2010031400:30:00
Packit 95306a
Packit 95306a
nth 1                      => 2010031401:30:00
Packit 95306a
Packit 95306a
nth 2                      => 2010031403:30:00
Packit 95306a
Packit 95306a
freq 0:0:0:0:1*30:0       => 0
Packit 95306a
Packit 95306a
basedate 2010-11-07-00:00:01  => 0
Packit 95306a
Packit 95306a
nth 0                      => 2010110700:30:00
Packit 95306a
Packit 95306a
nth 1                      => 2010110701:30:00
Packit 95306a
Packit 95306a
nth 1                      => 2010110701:30:00
Packit 95306a
Packit 95306a
freq 0:0:0:1*02:30:00     => 0
Packit 95306a
Packit 95306a
basedate 2010-03-13-00:00:00  => 0
Packit 95306a
Packit 95306a
nth 0                      => 2010031302:30:00
Packit 95306a
Packit 95306a
nth 1                      => __undef__
Packit 95306a
Packit 95306a
nth 2                      => 2010031502:30:00
Packit 95306a
Packit 95306a
freq *2010:1:0:4-5:12-13:0:0 => 0
Packit 95306a
Packit 95306a
nth 0                      => 2010010412:00:00
Packit 95306a
Packit 95306a
nth 1                      => 2010010413:00:00
Packit 95306a
Packit 95306a
nth 2                      => 2010010512:00:00
Packit 95306a
Packit 95306a
nth 3                      => 2010010513:00:00
Packit 95306a
Packit 95306a
nth -1                     => __undef__
Packit 95306a
Packit 95306a
nth 4                      => __undef__
Packit 95306a
Packit 95306a
freq *2010:1-4:0:31:12:0:0 => 0
Packit 95306a
Packit 95306a
nth 0                      => 2010013112:00:00
Packit 95306a
Packit 95306a
nth 1                      => 2010033112:00:00
Packit 95306a
Packit 95306a
nth 2                      => __undef__
Packit 95306a
Packit 95306a
nth -1                     => __undef__
Packit 95306a
Packit 95306a
freq *2010:1-4:0:31:12:0:0 => 0
Packit 95306a
Packit 95306a
next                       => 2010013112:00:00
Packit 95306a
Packit 95306a
next                       => 2010033112:00:00
Packit 95306a
Packit 95306a
next                       => __undef__
Packit 95306a
Packit 95306a
prev                       => 2010033112:00:00
Packit 95306a
Packit 95306a
prev                       => 2010013112:00:00
Packit 95306a
Packit 95306a
prev                       => __undef__
Packit 95306a
Packit 95306a
freq *2010:1-4:0:31:12:0:0 => 0
Packit 95306a
Packit 95306a
prev                       => 2010033112:00:00
Packit 95306a
Packit 95306a
prev                       => 2010013112:00:00
Packit 95306a
Packit 95306a
prev                       => __undef__
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-01-27-00:00:00  => 0
Packit 95306a
Packit 95306a
next                       => 2005013112:00:00
Packit 95306a
Packit 95306a
next                       => 2005033112:00:00
Packit 95306a
Packit 95306a
prev                       => 2005013112:00:00
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-01-27-00:00:00  => 0
Packit 95306a
Packit 95306a
prev                       => 2004123112:00:00
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-02-27-00:00:00  => 0
Packit 95306a
Packit 95306a
next                       => 2005033112:00:00
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-02-27-00:00:00  => 0
Packit 95306a
Packit 95306a
prev                       => 2005013112:00:00
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-01-27-00:00:00  => 0
Packit 95306a
Packit 95306a
start 2007-01-01-00:00:00 => 0
Packit 95306a
Packit 95306a
end   2007-12-31-00:00:00 => 0
Packit 95306a
Packit 95306a
next                      => 2007013112:00:00
Packit 95306a
Packit 95306a
freq 0:1*0:31:12:0:0      => 0
Packit 95306a
Packit 95306a
basedate 2005-01-27-00:00:00  => 0
Packit 95306a
Packit 95306a
start 2007-01-01-00:00:00 => 0
Packit 95306a
Packit 95306a
end   2007-12-31-23:59:59 => 0
Packit 95306a
Packit 95306a
prev                      => 2007123112:00:00
Packit 95306a
Packit 95306a
";
Packit 95306a
Packit 95306a
$t->tests(func  => \&test,
Packit 95306a
          tests => $tests);
Packit 95306a
$t->done_testing();
Packit 95306a
Packit 95306a
#Local Variables:
Packit 95306a
#mode: cperl
Packit 95306a
#indent-tabs-mode: nil
Packit 95306a
#cperl-indent-level: 3
Packit 95306a
#cperl-continued-statement-offset: 2
Packit 95306a
#cperl-continued-brace-offset: 0
Packit 95306a
#cperl-brace-offset: 0
Packit 95306a
#cperl-brace-imaginary-offset: 0
Packit 95306a
#cperl-label-offset: 0
Packit 95306a
#End: