File: 28dow.t

package info (click to toggle)
libdatetime-perl 2%3A1.50-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,504 kB
  • sloc: perl: 2,964; makefile: 3
file content (65 lines) | stat: -rw-r--r-- 1,534 bytes parent folder | download | duplicates (2)
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
use strict;
use warnings;

use Test::More;

use DateTime;

{
    my $dt = DateTime->new( year => 0 );

    is( $dt->year,        0, 'year is 0' );
    is( $dt->month,       1, 'month is 1' );
    is( $dt->day,         1, 'day is 1' );
    is( $dt->day_of_week, 6, 'day of week is 6' );
}

{
    my $dt = DateTime->new( year => 0, month => 12, day => 31 );

    is( $dt->year,        0,  'year is 0' );
    is( $dt->month,       12, 'month is 12' );
    is( $dt->day,         31, 'day is 31' );
    is( $dt->day_of_week, 7,  'day of week is 7' );
}

{
    my $dt = DateTime->new( year => -1 );

    is( $dt->year,        -1, 'year is -1' );
    is( $dt->month,       1,  'month is 1' );
    is( $dt->day,         1,  'day is 1' );
    is( $dt->day_of_week, 5,  'day of week is 5' );
}

{
    my $dt = DateTime->new( year => 1 );

    is( $dt->year,        1, 'year is 1' );
    is( $dt->month,       1, 'month is 1' );
    is( $dt->day,         1, 'day is 1' );
    is( $dt->day_of_week, 1, 'day of week is 1' );
}

{
    my $dow = 1;
    for my $year ( 1, 0, -1 ) {
        my $days_in_year = $year ? 365 : 366;

        for my $doy ( reverse 1 .. $days_in_year ) {
            is(
                DateTime->from_day_of_year(
                    year        => $year,
                    day_of_year => $doy,
                )->day_of_week,
                $dow,
                "day of week for day $doy of year $year is $dow"
            );

            $dow--;
            $dow = 7 if $dow == 0;
        }
    }
}

done_testing();