1#!/usr/bin/perl
2
3use utf8;
4use warnings;
5use strict;
6use Test::Inter;
7$::ti = new Test::Inter $0;
8require "tests.pl";
9
10our $obj = new Date::Manip::Date;
11$obj->config("forcedate","2000-01-21-12:30:45,America/New_York");
12$obj->config("language","French","dateformat","nonUS");
13
14sub test {
15   my(@test)=@_;
16   if ($test[0] eq "config") {
17      shift(@test);
18      $obj->config(@test);
19      return ();
20   }
21
22   my $err = $obj->parse(@test);
23   if ($err) {
24      return $obj->err();
25   } else {
26      my $d1 = $obj->value();
27      return $d1;
28   }
29}
30
31my($currS,$currMN,$currH,$currD,$currM,$currY)=("45","30","12","21","01","2000");
32
33my $now           = "${currY}${currM}${currD}${currH}:${currMN}:${currS}";
34my $today         = "${currY}${currM}${currD}00:00:00";
35my $yesterdaydate = "${currY}${currM}". ${currD}-1;
36my $tomorrowdate  = "${currY}${currM}". ${currD}+1;
37my $yesterday     = "${yesterdaydate}00:00:00";
38my $tomorrow      = "${tomorrowdate}00:00:00";
39
40my $tests="
41
42'5-3-2009 5:30 du soir' => 2009030517:30:00
43
44'5-3-2009 a 5:30 du soir' => 2009030517:30:00
45
46'5-3-2009 a 5:30:45 du soir' => 2009030517:30:45
47
48'5-3-2009 a 5h30:45 du soir' => 2009030517:30:45
49
50aujourd'hui => $today
51
52maintenant => $now
53
54hier => $yesterday
55
56demain => $tomorrow
57
58'dernier mar en Juin 96' => 1996062500:00:00
59
60'dernier mar de Juin' => ${currY}062700:00:00
61
62'premier mar de Juin 1996' => 1996060400:00:00
63
64'premier mar de Juin' => ${currY}060600:00:00
65
66'3e mardi de Juin 96' => 1996061800:00:00
67
68'3e mardi de Juin 96 a 12:00' => 1996061812:00:00
69
70'3e mardi de Juin 96 a 10:30 du matin' => 1996061810:30:00
71
72'3e mardi de Juin 96 a 10:30 du soir' => 1996061822:30:00
73
74
75'SepT 10 65' => 1965091000:00:00
76
77'SepT 10 1965' => 1965091000:00:00
78
79'Septembre 10 65' => 1965091000:00:00
80
81'Septembre 10 1965' => 1965091000:00:00
82
83'Septembre10 1965' => 1965091000:00:00
84
85'Septembre10 1965 12:00' => 1965091012:00:00
86
87'Septembre-10-1965 12:00' => 1965091012:00:00
88
89'Septembre/10/1965 12:00' => 1965091012:00:00
90
91'12:00 Septembre10 1965' => 1965091012:00:00
92
93'12:00 Septembre-10-1965' => 1965091012:00:00
94
95'10 SepT 65' => 1965091000:00:00
96
97'10 SepT 1965' => 1965091000:00:00
98
99'10 Septembre 65' => 1965091000:00:00
100
101'10 Septembre 1965' => 1965091000:00:00
102
10310SepT65 => 1965091000:00:00
104
10510SepT1965 => 1965091000:00:00
106
10710Septembre65 => 1965091000:00:00
108
109'10Septembre 1965' => 1965091000:00:00
110
111'SepT 10 4:50' => ${currY}091004:50:00
112
113'Septembre 10 4:50' => ${currY}091004:50:00
114
115'SepT 10 4:50:40' => ${currY}091004:50:40
116
117'Septembre 10 4:50:42' => ${currY}091004:50:42
118
119'10 SepT 4:50' => ${currY}091004:50:00
120
121'10 Septembre 4:50' => ${currY}091004:50:00
122
123'10SepT 4:50' => ${currY}091004:50:00
124
125'10Septembre 4:50' => ${currY}091004:50:00
126
127'10 SepT 4:50:51' => ${currY}091004:50:51
128
129'10 Septembre 4:50:52' => ${currY}091004:50:52
130
131'10SepT 4:50:53' => ${currY}091004:50:53
132
133'10Septembre 4:50:54' => ${currY}091004:50:54
134
135'10Septembre95 4:50:54' => 1995091004:50:54
136
137'Sept1065 4:50:53' => 1965091004:50:53
138
139'Sept101965 4:50:53' => 1965091004:50:53
140
141'4:50 SepT 10' => ${currY}091004:50:00
142
143'4:50 Septembre 10' => ${currY}091004:50:00
144
145'4:50:40 SepT 10' => ${currY}091004:50:40
146
147'4:50:42 Septembre 10' => ${currY}091004:50:42
148
149'4:50 10 SepT' => ${currY}091004:50:00
150
151'4:50 10 Septembre' => ${currY}091004:50:00
152
153'4:50 10SepT' => ${currY}091004:50:00
154
155'4:50 10Septembre' => ${currY}091004:50:00
156
157'4:50:51 10 SepT' => ${currY}091004:50:51
158
159'4:50:52 10 Septembre' => ${currY}091004:50:52
160
161'4:50:53 10SepT' => ${currY}091004:50:53
162
163'4:50:54 10Septembre' => ${currY}091004:50:54
164
165'SepT 1 5:30' => ${currY}090105:30:00
166
167'SepT 10 05:30' => ${currY}091005:30:00
168
169'SepT 10 05:30:11' => ${currY}091005:30:11
170
171'SepT 1 65' => 1965090100:00:00
172
173'SepT 1 1965' => 1965090100:00:00
174
175'Septembre 1 5:30' => ${currY}090105:30:00
176
177'Septembre 10 05:30' => ${currY}091005:30:00
178
179'Septembre 10 05h30:12' => ${currY}091005:30:12
180
181'Septembre 1 65' => 1965090100:00:00
182
183'Septembre 1 1965' => 1965090100:00:00
184
185'5:30 SepT 1' => ${currY}090105:30:00
186
187'05:30 SepT 10' => ${currY}091005:30:00
188
189'05:30:11 SepT 10' => ${currY}091005:30:11
190
191'5:30 Septembre 1' => ${currY}090105:30:00
192
193'05:30 Septembre 10' => ${currY}091005:30:00
194
195'05:30:12 du matin Septembre 10' => ${currY}091005:30:12
196
197'05:30:12 du soir Septembre 10' => ${currY}091017:30:12
198
199'1 SepT 65' => 1965090100:00:00
200
201'1 SepT 1965' => 1965090100:00:00
202
203'1 Septembre 65' => 1965090100:00:00
204
205'1 Septembre 1965' => 1965090100:00:00
206
207'1 12 65' => 1965120100:00:00
208
209'1 12 1965' => 1965120100:00:00
210
211'29 2 92' => 1992022900:00:00
212
213'2 29 92' => '[parse] Invalid date'
214
215'2 29 90' => '[parse] Invalid date'
216
217'1er SepT 65' => 1965090100:00:00
218
219'SepT premier 1965' => 1965090100:00:00
220
221'Fevrier 3, 2002' => 2002020300:00:00
222
223'FEVRIER 3, 2002' => 2002020300:00:00
224
225'FÉVRIER 3, 2002' => 2002020300:00:00
226
227'f\xE9vrier 3, 2002' => 2002020300:00:00
228
229'f\x{e9}vrier 3, 2002' => 2002020300:00:00
230
231";
232
233$::ti->tests(func  => \&test,
234             tests => $tests);
235$::ti->done_testing();
236
237#Local Variables:
238#mode: cperl
239#indent-tabs-mode: nil
240#cperl-indent-level: 3
241#cperl-continued-statement-offset: 2
242#cperl-continued-brace-offset: 0
243#cperl-brace-offset: 0
244#cperl-brace-imaginary-offset: 0
245#cperl-label-offset: 0
246#End:
247