#!/usr/bin/perl -w
use strict;
use Test::More;
plan tests => 4;
use DateTime;
use DateTime::Set;
#======================================================================
# previous method
#======================================================================
use constant INFINITY => 100 ** 100 ** 100 ;
use constant NEG_INFINITY => -1 * (100 ** 100 ** 100);
{
my $set =
DateTime::Set->from_recurrence
( previous =>
sub { $_[0]->truncate( to => 'day' )->subtract( days => 1 ) }
);
my $dt = DateTime->new( year => 2000,
month => 10,
day => 3,
);
my $prev_dt = $set->previous($dt);
is( $prev_dt->ymd, '2000-10-02',
'previous day is 2000-10-02' );
is( $set->previous($prev_dt)->ymd, '2000-10-01',
'previous day is 2000-10-01' );
}
{
my $set =
DateTime::Set->from_recurrence
( next =>
sub { $_[0]->truncate( to => 'day' )->add( days => 1 ) }
);
my $dt = DateTime->new( year => 2000,
month => 10,
day => 3,
);
my $prev_dt = $set->previous($dt);
is( $prev_dt->ymd, '2000-10-02',
'previous day is 2000-10-02' );
is( $set->previous($prev_dt)->ymd, '2000-10-01',
'previous day is 2000-10-01' );
}