Blob Blame History Raw
#!/usr/bin/perl -w

use Test::Inter;
$t = new Test::Inter 'recur :: full recur';
$testdir = '';
$testdir = $t->testdir();

use Date::Manip;
if (DateManipVersion() >= 6.00) {
   $t->feature("DM6",1);
}

$t->skip_all('Date::Manip 6.xx required','DM6');


sub test {
  ($recur,$arg1,$arg2) = @_;
  $err = $obj->parse($recur);
  if ($err) {
     return $obj->err();
  } else {
     $start = undef;
     $end   = undef;
     if (defined($arg1)) {
        $start = $obj->new_date();
        $start->parse($arg1);
     }
     if (defined($arg2)) {
        $end = $obj->new_date();
        $end->parse($arg2);
     }
     @dates = $obj->dates($start,$end);
     @ret   = ();
     foreach my $d (@dates) {
        $v = $d->value();
        push(@ret,$v);
     }
     return @ret;
  }
}

$obj = new Date::Manip::Recur;
$obj->config("forcedate","2000-01-21-00:00:00,America/New_York");

$tests="

1:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00
   =>
   2000010512:30:00
   2001033012:30:00
   2002062412:30:00

1:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00
2001010100:00:00
   =>
   2001033012:30:00
   2002062412:30:00

1:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00
__undef__
2001123100:00:00
   =>
   2000010512:30:00
   2001033012:30:00

1:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00
2001010100:00:00
2001123100:00:00
   =>
   2001033012:30:00

1:2:3:4*12:30:00**2000010500:00:00
2000010100:00:00
2003010100:00:00
   =>
   2000010512:30:00
   2001033012:30:00
   2002062412:30:00

### Test new years definition

1*1:0:1:0:0:0*dwd**1999060100:00:00*2006060100:00:00
   =>
   1999123100:00:00
   2001010100:00:00
   2002010100:00:00
   2003010100:00:00
   2004010100:00:00
   2004123100:00:00
   2006010200:00:00

# Test recur with no frequency

*2013:1:0:20:10:11:12***2013010100:00:00*2013013012:00:00
   =>
   2013012010:11:12

*2013:1:0:20:10:11:12***2013012100:00:00*2013013012:00:00
   =>

# Test overriding dates with no frequency

*1990-1995:12:0:1:0:0:0
   =>
   1990120100:00:00
   1991120100:00:00
   1992120100:00:00
   1993120100:00:00
   1994120100:00:00
   1995120100:00:00

*1990-1995:12:0:1:0:0:0
1992-01-01
1994-12-31
   =>
   1992120100:00:00
   1993120100:00:00
   1994120100:00:00

";

$t->tests(func  => \&test,
          tests => $tests);
$t->done_testing();

#Local Variables:
#mode: cperl
#indent-tabs-mode: nil
#cperl-indent-level: 3
#cperl-continued-statement-offset: 2
#cperl-continued-brace-offset: 0
#cperl-brace-offset: 0
#cperl-brace-imaginary-offset: 0
#cperl-label-offset: 0
#End: