1#!/usr/bin/perl
2
3use warnings;
4use strict;
5use Test::Inter;
6$::ti = new Test::Inter $0;
7require "tests-dm5.pl";
8
9Date_Init("TZ=EST");
10
11my $tests="
12
13# Test weeks
14
15'+ 4 week 3 day'            => +0:0:4:3:0:0:0
16
17'+ 4 wk 3 day 20:30'        => +0:0:4:3:0:20:30
18
19'+ 15mn'                    => +0:0:0:0:0:15:0
20
21'+ 15 mn'                   => +0:0:0:0:0:15:0
22
23'15 mn'                     => +0:0:0:0:0:15:0
24
25'+15 mn'                    => +0:0:0:0:0:15:0
26
27+15mn                       => +0:0:0:0:0:15:0
28
29'+ 35 y 10 month 15mn'      => +35:10:0:0:0:15:0
30
31'+ 35 y 10m15mn'            => +35:10:0:0:0:15:0
32
33'+ 35year 10:0:0:0:15:0'    => +35:10:0:0:0:15:0
34
35'+ 35 y -10 month 15mn'     => +34:2:-0:0:0:15:0
36
37+35:-10:0:0:0:15:0          => +34:2:-0:0:0:15:0
38
39'+ 35 y10 month12:40'       => +35:10:0:0:0:12:40
40
41'+35 y 10 month 1:12:40'    => +35:10:0:0:1:12:40
42
43'+35x 10 month'             => ''
44
45'+ 35 y -10 month 1:12:40'  => +34:2:-0:0:1:12:40
46
471:2:3:4:5:6:7               => +1:2:3:4:5:6:7
48
49'in 1:2:3:4:5:6:7'          => +1:2:3:4:5:6:7
50
51'1:2:3:4:5:6:7 ago'         => -1:2:3:4:5:6:7
52
53-1:2:3:4:5:6:7              => -1:2:3:4:5:6:7
54
551::3:4:5:6:7ago             => -1:0:3:4:5:6:7
56
57# Test normalization of deltas
58
59+1:+1:+1:+1                 => +0:0:0:1:1:1:1
60
61+1:+1:+1:-1                 => +0:0:0:1:1:0:59
62
63+1:+1:-1:+1                 => +0:0:0:1:0:59:1
64
65+1:-1:+1:+1                 => +0:0:0:0:23:1:1
66
67+1:+1:-1:-1                 => +0:0:0:1:0:58:59
68
69+1:-1:+1:-1                 => +0:0:0:0:23:0:59
70
71+1:-1:-1:+1                 => +0:0:0:0:22:59:1
72
73-0:1:+0:0:0:0:0             => -0:1:0:0:0:0:0
74
75-0:0:1:+0:-0:0:0            => -0:0:1:0:0:0:0
76";
77
78$::ti->tests(func  => \&ParseDateDelta,
79             tests => $tests);
80$::ti->done_testing();
81
82#Local Variables:
83#mode: cperl
84#indent-tabs-mode: nil
85#cperl-indent-level: 3
86#cperl-continued-statement-offset: 2
87#cperl-continued-brace-offset: 0
88#cperl-brace-offset: 0
89#cperl-brace-imaginary-offset: 0
90#cperl-label-offset: 0
91#End:
92