use strict;
use warnings;
use DateTime;
use DateTime::Span;
use Test::More 'no_plan';
my $dt1 = DateTime->new(
day => 1, month => 1, year => 2011,
hour => 12, minute => 0, second => 0,
);
my $dt2 = $dt1->clone->add( hours => 1 );
my $duration = DateTime::Duration->new( hours => 1 );
{
my $span = DateTime::Span->from_datetimes(
start => $dt1,
end => $dt2,
);
diag $span->start->datetime();
diag $span->end->datetime();
is( $span->intersects( $dt1 ), 1,
'Spanset intersects $dt1'
);
is( $span->intersects( $dt2 ), 1,
'Span intersects $dt2'
);
is( DateTime::Duration->compare( $span->duration, $duration ), 0,
'Duration is 1 hour'
);
}
{
my $span = DateTime::Span->from_datetime_and_duration(
start => $dt1,
duration => $duration,
);
diag $span->start->datetime();
diag $span->end->datetime();
is( $span->intersects( $dt1 ), 1,
'Span intersects $dt1'
);
is( $span->intersects( $dt2 ), 1,
'Span intersects $dt2'
);
is( DateTime::Duration->compare( $span->duration, $duration ), 0,
'Duration is 1 hour'
);
}
####
# 2011-01-01T12:00:00
# 2011-01-01T13:00:00
ok 1 - Spanset intersects $dt1
ok 2 - Span intersects $dt2
ok 3 - Duration is 1 hour
# 2011-01-01T12:00:00
# 2011-01-01T13:00:00
ok 4 - Span intersects $dt1
not ok 5 - Span intersects $dt2
# Failed test 'Span intersects $dt2'
# at /home/mike/test.t line 51.
# got: '0'
# expected: '1'
ok 6 - Duration is 1 hour
1..6
# Looks like you failed 1 test of 6.
####
is( $span->intersects( $dt2->clone->subtract( nanoseconds => 1 ) ), 1,
'Span intersects $dt2'
);