1#!/usr/bin/perl 2 3use warnings; 4use strict; 5use Test::Inter; 6$::ti = new Test::Inter $0; 7require "tests.pl"; 8 9my $obj = new Date::Manip::Recur; 10$obj->config("forcedate","2000-01-21-00:00:00,America/New_York"); 11 12sub test { 13 my($recur,$arg1,$arg2) = @_; 14 my $err = $obj->parse($recur); 15 if ($err) { 16 return $obj->err(); 17 } else { 18 my $start = undef; 19 my $end = undef; 20 if (defined($arg1)) { 21 $start = $obj->new_date(); 22 $start->parse($arg1); 23 } 24 if (defined($arg2)) { 25 $end = $obj->new_date(); 26 $end->parse($arg2); 27 } 28 my @dates = $obj->dates($start,$end); 29 $err = $obj->err(); 30 return $err if ($err); 31 my @ret = (); 32 foreach my $d (@dates) { 33 my $v = $d->value(); 34 push(@ret,$v); 35 } 36 return @ret; 37 } 38} 39 40my $tests=" 41 421:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00 43 => 44 2000010512:30:00 45 2001033012:30:00 46 2002062412:30:00 47 481:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00 492001010100:00:00 50 => 51 2001033012:30:00 52 2002062412:30:00 53 541:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00 55__undef__ 562001123100:00:00 57 => 58 2000010512:30:00 59 2001033012:30:00 60 611:2:3:4*12:30:00**2000010500:00:00*2000010100:00:00*2003010100:00:00 622001010100:00:00 632001123100:00:00 64 => 65 2001033012:30:00 66 671:2:3:4*12:30:00**2000010500:00:00 682000010100:00:00 692003010100:00:00 70 => 71 2000010512:30:00 72 2001033012:30:00 73 2002062412:30:00 74 75### Test new years definition 76 771*1:0:1:0:0:0*dwd**1999060100:00:00*2006060100:00:00 78 => 79 1999123100:00:00 80 2001010100:00:00 81 2002010100:00:00 82 2003010100:00:00 83 2004010100:00:00 84 2004123100:00:00 85 2006010200:00:00 86 87# Test recur with no frequency 88 89*2013:1:0:20:10:11:12***2013010100:00:00*2013013012:00:00 90 => 91 2013012010:11:12 92 93*2013:1:0:20:10:11:12***2013012100:00:00*2013013012:00:00 94 => 95 96# Test overriding dates with no frequency 97 98*1990-1995:12:0:1:0:0:0 99 => 100 1990120100:00:00 101 1991120100:00:00 102 1992120100:00:00 103 1993120100:00:00 104 1994120100:00:00 105 1995120100:00:00 106 107*1990-1995:12:0:1:0:0:0 1081992-01-01 1091994-12-31 110 => 111 1992120100:00:00 112 1993120100:00:00 113 1994120100:00:00 114 115"; 116 117$::ti->tests(func => \&test, 118 tests => $tests); 119$::ti->done_testing(); 120 121#Local Variables: 122#mode: cperl 123#indent-tabs-mode: nil 124#cperl-indent-level: 3 125#cperl-continued-statement-offset: 2 126#cperl-continued-brace-offset: 0 127#cperl-brace-offset: 0 128#cperl-brace-imaginary-offset: 0 129#cperl-label-offset: 0 130#End: 131