1#!/usr/bin/perl
2
3use warnings;
4use strict;
5use Test::Inter;
6$::ti = new Test::Inter $0;
7require "tests.pl";
8
9sub test {
10   return DateCalc(@_);
11}
12
13Date_Init("ForceDate=1997-03-08-12:30:00,America/New_York");
14Date_Init("ConfigFile=Manip.cnf");
15
16my $tests="
17
18# Exact
19
20'Jan 1 1996 12:00:00'   'Jan 1 1996 14:30:30'   => 0:0:0:0:2:30:30
21
22'Jan 1 1996 14:30:30'   'Jan 1 1996 12:00:00'   => 0:0:0:0:-2:30:30
23
24'Jan 1 1996 12:00:00'   'Jan 2 1996 14:30:30'   => 0:0:0:0:26:30:30
25
26'Jan 2 1996 14:30:30'   'Jan 1 1996 12:00:00'   => 0:0:0:0:-26:30:30
27
28'Jan 1 1996 12:00:00'   'Jan 2 1996 10:30:30'   => 0:0:0:0:22:30:30
29
30'Jan 2 1996 10:30:30'   'Jan 1 1996 12:00:00'   => 0:0:0:0:-22:30:30
31
32'Jan 1 1996 12:00:00'   'Jan 2 1997 10:30:30'   => 0:0:0:0:8806:30:30
33
34'Jan 2 1997 10:30:30'   'Jan 1 1996 12:00:00'   => 0:0:0:0:-8806:30:30
35
36'Jan 1st 1997 00:00:01' 'Feb 1st 1997 00:00:00' => 0:0:0:0:743:59:59
37
38'Jan 1st 1997 00:00:01' 'Mar 1st 1997 00:00:00' => 0:0:0:0:1415:59:59
39
40'Jan 1st 1997 00:00:01' 'Mar 1st 1998 00:00:00' => 0:0:0:0:10175:59:59
41
42# Approximate
43
44'Wed Jan 10 1996 noon'  'Wed Jan 7 1998 noon'   1 => 2:0:0:-3:0:0:0
45
46'Wed Jan 7 1998 noon'   'Wed Jan 10 1996 noon'  1 => -2:0:0:+3:0:0:0
47
48'Wed Jan 10 1996 noon'  'Wed Jan 8 1997 noon'   1 => 1:0:0:-2:0:0:0
49
50'Wed Jan 8 1997 noon'   'Wed Jan 10 1996 noon'  1 => -1:0:0:+2:0:0:0
51
52'Wed May 8 1996 noon'   'Wed Apr 9 1997 noon'   1 => 0:11:0:1:0:0:0
53
54'Wed Apr 9 1997 noon'   'Wed May 8 1996 noon'   1 => 0:-11:0:1:0:0:0
55
56'Wed Apr 10 1996 noon'  'Wed May 14 1997 noon'  1 => 1:1:0:4:0:0:0
57
58'Wed May 14 1997 noon'  'Wed Apr 10 1996 noon'  1 => -1:1:0:4:0:0:0
59
60'Wed Jan 10 1996 noon'  'Wed Feb 7 1996 noon'   1 => 0:1:0:-3:0:0:0
61
62'Wed Feb 7 1996 noon'   'Wed Jan 10 1996 noon'  1 => 0:-1:0:+3:0:0:0
63
64'Mon Jan 8 1996 noon'   'Fri Feb 9 1996 noon'   1 => 0:1:0:1:0:0:0
65
66'Fri Feb 9 1996 noon'   'Mon Jan 8 1996 noon'   1 => 0:-1:0:1:0:0:0
67
68'Jan 1 1996 12:00:00'   'Jan 1 1996 14:30:30'   1 => 0:0:0:0:2:30:30
69
70'Jan 1 1996 14:30:30'   'Jan 1 1996 12:00:00'   1 => 0:0:0:0:-2:30:30
71
72'Jan 1 1996 12:00:00'   'Jan 2 1996 14:30:30'   1 => 0:0:0:1:2:30:30
73
74'Jan 2 1996 14:30:30'   'Jan 1 1996 12:00:00'   1 => 0:0:0:-1:2:30:30
75
76'Jan 1 1996 12:00:00'   'Jan 2 1996 10:30:30'   1 => 0:0:0:0:22:30:30
77
78'Jan 2 1996 10:30:30'   'Jan 1 1996 12:00:00'   1 => 0:0:0:0:-22:30:30
79
80'Jan 1 1996 12:00:00'   'Jan 2 1997 10:30:30'   1 => 1:0:0:0:22:30:30
81
82'Jan 2 1997 10:30:30'   'Jan 1 1996 12:00:00'   1 => -1:0:0:0:22:30:30
83
84'Jan 31 1996 12:00:00'  'Feb 28 1997 10:30:30'  1 => 1:1:0:0:-1:29:30
85
86'Feb 28 1997 10:30:30'  'Jan 31 1996 12:00:00'  1 => -1:1:0:+3:1:29:30
87
88'Jan 1st 1997 00:00:01' 'Feb 1st 1997 00:00:00' 1 => 0:1:0:0:0:0:-1
89
90'Jan 1st 1997 00:00:01' 'Mar 1st 1997 00:00:00' 1 => 0:2:0:0:0:0:-1
91
92'Jan 1st 1997 00:00:01' 'Mar 1st 1998 00:00:00' 1 => 1:2:0:0:0:0:-1
93
94# Business approximate
95
96'Jun 1 1999' 'Jun 4 1999' 2 => 0:0:0:2:0:0:0
97
98'Wed Jan 10 1996 noon' 'Wed Jan 7 1998 noon' 2 => 2:0:0:-2:5:0:0
99
100'Wed Jan 7 1998 noon' 'Wed Jan 10 1996 noon' 2 => -2:0:0:+2:4:0:0
101
102'Wed Jan 10 1996 noon' 'Wed Jan 8 1997 noon' 2 => 1:0:0:-2:0:0:0
103
104'Wed Jan 8 1997 noon' 'Wed Jan 10 1996 noon' 2 => -1:0:0:+2:0:0:0
105
106'Wed May 8 1996 noon' 'Wed Apr 9 1997 noon' 2 => 0:11:0:1:0:0:0
107
108'Wed Apr 9 1997 noon' 'Wed May 8 1996 noon' 2 => 0:-11:0:1:0:0:0
109
110'Wed Apr 10 1996 noon' 'Wed May 14 1997 noon' 2 => 1:1:0:2:4:0:0
111
112'Wed May 14 1997 noon' 'Wed Apr 10 1996 noon' 2 => -1:1:0:2:5:0:0
113
114'Wed Jan 10 1996 noon' 'Wed Feb 7 1996 noon' 2 => 0:1:0:-2:5:0:0
115
116'Wed Feb 7 1996 noon' 'Wed Jan 10 1996 noon' 2 => 0:-1:0:+2:4:0:0
117
118'Mon Jan 8 1996 noon' 'Fri Feb 9 1996 noon' 2 => 0:1:0:1:0:0:0
119
120'Fri Feb 9 1996 noon' 'Mon Jan 8 1996 noon' 2 => 0:-1:0:1:0:0:0
121
122'Tue Jan 9 1996 12:00:00' 'Tue Jan 9 1996 14:30:30' 2 => 0:0:0:0:2:30:30
123
124'Tue Jan 9 1996 14:30:30' 'Tue Jan 9 1996 12:00:00' 2 => 0:0:0:0:-2:30:30
125
126'Tue Jan 9 1996 12:00:00' 'Wed Jan 10 1996 14:30:30' 2 => 0:0:0:1:2:30:30
127
128'Wed Jan 10 1996 14:30:30' 'Tue Jan 9 1996 12:00:00' 2 => 0:0:0:-1:2:30:30
129
130'Tue Jan 9 1996 12:00:00' 'Wed Jan 10 1996 10:30:30' 2 => 0:0:0:0:7:30:30
131
132'Wed Jan 10 1996 10:30:30' 'Tue Jan 9 1996 12:00:00' 2 => 0:0:0:0:-7:30:30
133
134'Tue Jan 9 1996 12:00:00' 'Fri Jan 10 1997 10:30:30' 2 => 1:0:0:0:7:30:30
135
136'Fri Jan 10 1997 10:30:30' 'Tue Jan 9 1996 12:00:00' 2 => -1:0:0:0:7:30:30
137
138'Mon Dec 30 1996 noon' 'Mon Jan 6 1997 noon' 2 => 0:1:-3:3:0:0:0
139
140'Mon Jan 6 1997 noon' 'Mon Dec 30 1996 noon' 2 => 0:-1:+3:1:0:0:0
141
142# Business exact
143
144'Wed Jan 10 1996 noon' 'Wed Feb 7 1996 noon' 3 => 0:0:0:19:0:0:0
145
146'Wed Feb 7 1996 noon' 'Wed Jan 10 1996 noon' 3 => 0:0:0:-19:0:0:0
147
148'Tue Jan 9 1996 12:00:00' 'Tue Jan 9 1996 14:30:30' 3 => 0:0:0:0:2:30:30
149
150'Tue Jan 9 1996 14:30:30' 'Tue Jan 9 1996 12:00:00' 3 => 0:0:0:0:-2:30:30
151
152'Tue Jan 9 1996 12:00:00' 'Wed Jan 10 1996 14:30:30' 3 => 0:0:0:1:2:30:30
153
154'Wed Jan 10 1996 14:30:30' 'Tue Jan 9 1996 12:00:00' 3 => 0:0:0:-1:2:30:30
155
156'Tue Jan 9 1996 12:00:00' 'Wed Jan 10 1996 10:30:30' 3 => 0:0:0:0:7:30:30
157
158'Wed Jan 10 1996 10:30:30' 'Tue Jan 9 1996 12:00:00' 3 => 0:0:0:0:-7:30:30
159
160'Mon Dec 30 1996 noon' 'Mon Jan 6 1997 noon' 3 => 0:0:0:4:0:0:0
161
162'Mon Jan 6 1997 noon' 'Mon Dec 30 1996 noon' 3 => 0:0:0:-4:0:0:0
163
164'Fri Feb 11 2005 16:00:43' 'Fri Feb 11 2005 16:44:09' 3 => 0:0:0:0:0:43:26
165
166'02/11/2005 04:00:43 PM' '02/11/2005 04:44:09 PM' 3 => 0:0:0:0:0:43:26
167
168";
169
170$::ti->tests(func  => \&test,
171             tests => $tests);
172$::ti->done_testing();
173
174#Local Variables:
175#mode: cperl
176#indent-tabs-mode: nil
177#cperl-indent-level: 3
178#cperl-continued-statement-offset: 2
179#cperl-continued-brace-offset: 0
180#cperl-brace-offset: 0
181#cperl-brace-imaginary-offset: 0
182#cperl-label-offset: 0
183#End:
184