File: dst.t

package info (click to toggle)
libdatetime-event-cron-perl 0.09-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 128 kB
  • sloc: perl: 1,248; makefile: 2
file content (70 lines) | stat: -rwxr-xr-x 2,069 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
66
67
68
69
70
#!/usr/bin/perl -w
use strict;
use lib './lib';
use Test::More tests => 12;

use DateTime;
use DateTime::Event::Cron;

sub make_datetime {
  @_ == 6 or die "Invalid argument count\n";
  DateTime->new(
    year => $_[0], month  => $_[1], day    => $_[2],
    hour => $_[3], minute => $_[4], second => $_[5],
    time_zone => "America/New_York",
  );
}

sub dcomp { is(shift->datetime, shift->datetime, shift) }

my($desc, $dtc, $old, $new, $date);

$desc = "DST minute increment";
$dtc = DateTime::Event::Cron->new_from_cron("*/5 * * * *");
ok($dtc, "$desc create");
$old = make_datetime(2017, 3, 12, 1, 55, 0);
$new = $dtc->next($old);
$date = make_datetime(2017, 3, 12, 3, 0, 0);
dcomp($new, $date, "$desc next");

$desc = "DST minute decrement";
$dtc = DateTime::Event::Cron->new_from_cron("*/5 * * * *");
ok($dtc, "$desc create");
$old = make_datetime(2017, 3, 12, 3, 0, 0);
$new = $dtc->previous($old);
$date = make_datetime(2017, 3, 12, 1, 55, 0);
dcomp($new, $date, "$desc next");

$desc = "DST hour increment";
$dtc = DateTime::Event::Cron->new_from_cron("30 * * * *");
ok($dtc, "$desc create");
$old = make_datetime(2017, 3, 12, 1, 30, 0);
$new = $dtc->next($old);
$date = make_datetime(2017, 3, 12, 3, 30, 0);
dcomp($new, $date, "$desc next");

$desc = "DST hour decrement";
$dtc = DateTime::Event::Cron->new_from_cron("30 * * * *");
ok($dtc, "$desc create");
$old = make_datetime(2017, 3, 12, 3, 30, 0);
$new = $dtc->previous($old);
$date = make_datetime(2017, 3, 12, 1, 30, 0);
dcomp($new, $date, "$desc next");

$desc = "DST day increment";
$dtc = DateTime::Event::Cron->new_from_cron("30 2 * * *");
ok($dtc, "$desc create");
$old = make_datetime(2017, 3, 11, 2, 30, 0);
$new = $dtc->next($old);
$date = make_datetime(2017, 3, 13, 2, 30, 0);
dcomp($new, $date, "$desc next");

$desc = "DST day decrement";
$dtc = DateTime::Event::Cron->new_from_cron("*/5 * * * *");
ok($dtc, "$desc create");
$old = make_datetime(2017, 3, 12, 3, 0, 0);
$new = $dtc->previous($old);
$date = make_datetime(2017, 3, 12, 1, 55, 0);
dcomp($new, $date, "$desc next");

# End test