1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
#!/usr/bin/perl -w
use strict;
use Test::More;
plan tests => 34;
use DateTime;
use DateTime::Set;
my $future = DateTime::Infinite::Future->new();
my $past = DateTime::Infinite::Past->new();
my $t1 = new DateTime( year => '1810', month => '11', day => '22' );
my $t2 = new DateTime( year => '1900', month => '11', day => '22' );
# Set tests
{
my $set1 = DateTime::Set->from_datetimes( dates => [ $t1, $t2 ] );
ok( $set1->min->ymd eq '1810-11-22', 'min is ' . $set1->min->ymd );
ok( $set1->max->ymd eq '1900-11-22', 'max is ' . $set1->max->ymd );
ok( $set1->start->ymd eq '1810-11-22', 'start is ' . $set1->start->ymd );
ok( $set1->end->ymd eq '1900-11-22', 'end is ' . $set1->end->ymd );
}
{
my $set1 = DateTime::Set->from_datetimes( dates => [ $past, $future ] );
ok( $set1->min->is_infinite, 'min is infinite' );
ok( $set1->max->is_infinite, 'max is infinite' );
ok( $set1->start->is_infinite, 'start is infinite' );
ok( $set1->end->is_infinite, 'end is infinite' );
}
{
my $set1 = DateTime::Set->from_datetimes( dates => [] );
ok( !defined $set1->min, 'min is undef' );
ok( !defined $set1->max, 'max is undef' );
ok( !defined $set1->start, 'start is undef' );
ok( !defined $set1->end, 'end is undef' );
}
# Span tests
{
my $set1 = DateTime::Span->from_datetimes( start => $t1, end => $t2 );
ok( $set1->min->ymd eq '1810-11-22', 'min is ' . $set1->min->ymd );
ok( $set1->max->ymd eq '1900-11-22', 'max is ' . $set1->max->ymd );
ok( $set1->start->ymd eq '1810-11-22', 'start is ' . $set1->start->ymd );
ok( $set1->end->ymd eq '1900-11-22', 'end is ' . $set1->end->ymd );
}
{
my $set1 = DateTime::Span->from_datetimes( start => $past, end => $future );
ok( $set1->min->is_infinite, 'min is infinite' );
ok( $set1->max->is_infinite, 'max is infinite' );
ok( $set1->start->is_infinite, 'start is infinite' );
ok( $set1->end->is_infinite, 'end is infinite' );
}
{
my $set1 = DateTime::Span->from_datetimes( start => $past );
ok( $set1->max->is_infinite, 'max is infinite' );
ok( $set1->end->is_infinite, 'end is infinite' );
}
# SpanSet tests
{
my $set1 = DateTime::SpanSet->from_spans( spans => [ DateTime::Set->from_datetimes( dates => [ $t1, $t2 ] ) ] );
ok( $set1->min->ymd eq '1810-11-22', 'min is ' . $set1->min->ymd );
ok( $set1->max->ymd eq '1900-11-22', 'max is ' . $set1->max->ymd );
ok( $set1->start->ymd eq '1810-11-22', 'start is ' . $set1->start->ymd );
ok( $set1->end->ymd eq '1900-11-22', 'end is ' . $set1->end->ymd );
}
{
my $set1 = DateTime::SpanSet->from_spans( spans => [ DateTime::Set->from_datetimes( dates => [ $past, $future ] ) ] );
ok( $set1->min->is_infinite, 'min is infinite' );
ok( $set1->max->is_infinite, 'max is infinite' );
ok( $set1->start->is_infinite, 'start is infinite' );
ok( $set1->end->is_infinite, 'end is infinite' );
}
{
my $set1 = DateTime::SpanSet->from_spans( spans => [ ] );
ok( !defined $set1->min, 'min is undef' );
ok( !defined $set1->max, 'max is undef' );
ok( !defined $set1->start, 'start is undef' );
ok( !defined $set1->end, 'end is undef' );
}
1;
|