File: 22start_end.t

package info (click to toggle)
libdatetime-set-perl 0.3900-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 356 kB
  • sloc: perl: 3,101; makefile: 2
file content (102 lines) | stat: -rw-r--r-- 3,265 bytes parent folder | download | duplicates (3)
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;