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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
|
#!/usr/local/bin/perl -w
#Thanks to Andreas Koenig for converting all those dates to numbers
#and adding the folloing acknowledgement into Date/t/getdate.t
#Thanks to Graham Barr for writing these tests. Slightly adjusted for
#the C version by Andreas Koenig, 96-06-08.
use Date::Parse;
$data = qq!1995-01-24 ;790905600
1995-06-24 ;803952000
92/01/02 12:01 ;694353660
92/01/02 12:01 AM ;694310460
92/01/02 12:01 PM ;694353660
2002-11-02 11pm GMT ;1036278000
2002-11-02 11 pm GMT ;1036278000
1995-01-24 GMT ;790905600
1995-01-24 BST ;790902000
1995-06-24 GMT ;803952000
1995-06-24 BST ;803948400
1992-1-2 12:01 GMT ;694353660
1992-1-2-12:01:00 GMT ;694353660
Wed, 16 Jun 94 07:29:35 CST ;771773375
Wed,16 Jun 94 07:29:35 CST ;771773375
Wed, 16 Nov 94 07:29:35 CST ;784992575
Mon, 21 Nov 94 07:42:23 CST ;785425343
Mon, 21 Nov 94 04:28:18 CST ;785413698
Tue, 15 Nov 94 09:15:10 GMT ;784890910
Wed, 16 Nov 94 09:39:49 GMT ;784978789
Wed, 16 Nov 94 09:23:17 GMT ;784977797
Wed, 16 Nov 94 12:39:49 GMT ;784989589
Wed, 16 Nov 94 14:03:06 GMT ;784994586
Wed, 16 Nov 94 05:30:51 CST ;784985451
Thu, 17 Nov 94 03:19:30 CST ;785063970
1994:11:21T14:05:32+0000 ;785426732
Mon, 21 Nov 94 14:05:32 GMT ;785426732
Mon, 14 Nov 94 15:08:49 CST ;784847329
Wed, 16 Nov 94 14:48:06 GMT ;784997286
Thu, 17 Nov 94 14:22:03 GMT ;785082123
Wed, 16 Nov 94 14:36:00 GMT ;784996560
Wed, 16 Nov 94 09:23:17 GMT ;784977797
Wed, 16 Nov 94 10:01:43 GMT ;784980103
Wed, 16 Nov 94 15:03:35 GMT ;784998215
Mon, 21 Nov 94 13:55:19 GMT ;785426119
Wed, 16 Nov 94 08:46:11 CST ;784997171
Wed, 9 Nov 1994 09:50:32 -0500 (EST) ;784392632
Thu, 13 Oct 94 10:13:13 -0700 ;782068393
Sat, 19 Nov 1994 16:59:14 +0100 ;785260754
Thu, 3 Nov 94 14:10:47 EST ;783889847
Thu, 3 Nov 94 21:51:09 EST ;783917469
Fri, 4 Nov 94 9:24:52 EST ;783959092
Wed, 9 Nov 94 09:38:54 EST ;784391934
Mon, 14 Nov 94 13:20:12 EST ;784837212
Wed, 16 Nov 94 17:09:13 EST ;785023753
Tue, 15 Nov 94 12:27:01 PST ;784931221
Fri, 18 Nov 1994 07:34:05 -0600 ;785165645
Mon, 21 Nov 94 14:34:28 -0500 ;785446468
Fri, 18 Nov 1994 12:05:47 -0800 (PST);785189147
Fri, 18 Nov 1994 12:36:26 -0800 (PST);785190986
Wed, 16 Nov 1994 15:58:58 GMT ;785001538
Sun, 06 Nov 94 14:27:40 -0500 ;784150060
Mon, 07 Nov 94 08:20:13 -0500 ;784214413
Mon, 07 Nov 94 16:48:42 -0500 ;784244922
Wed, 09 Nov 94 15:46:16 -0500 ;784413976
Sun, 6 Nov 1994 02:38:17 -0800 ;784118297
Tue, 1 Nov 1994 13:53:49 -0500 ;783716029
Tue, 15 Nov 94 08:31:59 +0100 ;784884719
Sun, 6 Nov 1994 11:09:12 -0500 (IST) ;784138152
Fri, 4 Nov 94 12:52:10 EST ;783971530
Mon, 31 Oct 1994 14:17:39 -0500 (EST);783631059
Mon, 14 Nov 94 11:25:00 CST ;784833900
Mon, 14 Nov 94 13:26:29 CST ;784841189
Fri, 18 Nov 94 8:42:47 CST ;785169767
Thu, 17 Nov 94 14:32:01 +0900 ;785050321
Wed, 2 Nov 94 18:16:31 +0100 ;783796591
Fri, 18 Nov 94 10:46:26 +0100 ;785151986
Tue, 8 Nov 1994 22:39:28 +0200 ;784327168
Wed, 16 Nov 1994 10:01:08 -0500 (EST);784998068
Wed, 2 Nov 1994 16:59:42 -0800 ;783824382
Wed, 9 Nov 94 10:00:23 PST ;784404023
Fri, 18 Nov 94 17:01:43 PST ;785206903
Mon, 14 Nov 1994 14:47:46 -0500 ;784842466
Mon, 21 Nov 1994 04:56:04 -0500 (EST);785411764
Mon, 21 Nov 1994 11:50:12 -0800 ;785447412
Sat, 5 Nov 1994 14:04:16 -0600 (CST) ;784065856
Sat, 05 Nov 94 13:10:13 MST ;784066213
Wed, 02 Nov 94 10:47:48 -0800 ;783802068
Wed, 02 Nov 94 13:19:15 -0800 ;783811155
Thu, 03 Nov 94 15:27:07 -0800 ;783905227
Fri, 04 Nov 94 09:12:12 -0800 ;783969132
Wed, 9 Nov 1994 10:13:03 +0000 (GMT) ;784375983
Wed, 9 Nov 1994 15:28:37 +0000 (GMT) ;784394917
Wed, 2 Nov 1994 17:37:41 +0100 (MET) ;783794261
05 Nov 94 14:22:19 PST ;784074139
16 Nov 94 22:28:20 PST ;785053700
Tue, 1 Nov 1994 19:51:15 -0800 ;783748275
Wed, 2 Nov 94 12:21:23 GMT ;783778883
Fri, 18 Nov 94 18:07:03 GMT ;785182023
Wed, 16 Nov 1994 11:26:27 -0500 ;785003187
Sun, 6 Nov 1994 13:48:49 -0500 ;784147729
Tue, 8 Nov 1994 13:19:37 -0800 ;784329577
Fri, 18 Nov 1994 11:01:12 -0800 ;785185272
Mon, 21 Nov 1994 00:47:58 -0500 ;785396878
Mon, 7 Nov 1994 14:22:48 -0800 (PST) ;784246968
Wed, 16 Nov 1994 15:56:45 -0800 (PST);785030205
Thu, 3 Nov 1994 13:17:47 +0000 ;783868667
Wed, 9 Nov 1994 17:32:50 -0500 (EST) ;784420370
Wed, 9 Nov 94 16:31:52 PST ;784427512
Wed, 09 Nov 94 10:41:10 -0800 ;784406470
Wed, 9 Nov 94 08:42:22 MST ;784395742
Mon, 14 Nov 1994 08:32:13 -0800 ;784830733
Mon, 14 Nov 1994 11:34:32 -0500 (EST);784830872
Mon, 14 Nov 94 16:48:09 GMT ;784831689
Tue, 15 Nov 1994 10:27:33 +0000 ;784895253
Wed, 02 Nov 94 13:56:54 MST ;783809814
Thu, 03 Nov 94 15:24:45 MST ;783901485
Thu, 3 Nov 1994 15:13:53 -0700 (MST) ;783900833
Fri, 04 Nov 94 08:15:13 MST ;783962113
Thu, 3 Nov 94 18:15:47 EST ;783904547
Tue, 08 Nov 94 07:02:33 MST ;784303353
Thu, 3 Nov 94 18:15:47 EST ;783904547
Tue, 15 Nov 94 07:26:05 MST ;784909565
Wed, 2 Nov 1994 00:00:55 -0600 (CST) ;783756055
Sun, 6 Nov 1994 01:19:13 -0600 (CST) ;784106353
Mon, 7 Nov 1994 23:16:57 -0600 (CST) ;784271817
Tue, 08 Nov 1994 13:21:21 -0600 ;784322481
Mon, 07 Nov 94 13:47:37 PST ;784244857
Tue, 08 Nov 94 11:23:19 PST ;784322599
Tue, 01 Nov 1994 11:28:25 -0800 ;783718105
Tue, 15 Nov 1994 13:11:47 -0800 ;784933907
Tue, 15 Nov 1994 13:18:38 -0800 ;784934318
Tue, 15 Nov 1994 0:18:38 -0800 ;784887518
Jul 13 1999 1:23P GMT ;931872180
Jul 13 1999 1:23P.M GMT ;931872180
Jul 13 1999 1:23P.M. GMT ;931872180
Jul-13-1999 1:23P.M GMT ;931872180
Jul/13/1999 1:23P.M. GMT ;931872180
2001-02-26T13:44:12-0700 ;983220252
2001-02-26T13:44-0700 ;983220240
2001-02-26T13-0700 ;983217600
2001-02-26T13-44-12-0700 ;983220252
2001-02-26T13-44-0700 ;983220240
2001-02-26T13-0700 ;983217600
07/Nov/2000:16:45:56 +0100 ;973611956
2002-11-07T23:31:49-05:00 ;1036729909
2003-02-17T07:45:56Z ;1045467956
2003-02-17T08:14:07.198189+0000 ;1045469647.198189
20020722T100000Z ;1027332000
Jul 22 10:00:00 UTC 2002 ;1027332000
2002-07-22 10:00:00Z ;1027332000
2002-07-22 10:00:00 Z ;1027332000
2002-07-22 10:00 Z ;1027332000
2002-07-22 10:00Z ;1027332000
2002-07-22 10:00 +100 ;1027328400
2002-07-22 10:00 +0100 ;1027328400
!;
require Time::Local;
my $offset = Time::Local::timegm(0,0,0,1,0,1970);
@data = split(/\n/, $data);
print "1..", scalar(@data),"\n";
$loop = 1;
printf "# offset = %d\n", $offset;
foreach (@data){
my($str,$time_expect) = split ';', $_;
my $time = Date::Parse::str2time($str);
if($loop < 6) {
# The first five tests are parsed in the current time zone
# But the check number is in GMT
my @lt = localtime($time_expect);
my @gt = gmtime($time_expect);
$tzsec = ($gt[1] - $lt[1]) * 60 + ($gt[2] - $lt[2]) * 3600;
my($lday,$gday) = ($lt[7],$gt[7]);
if($lt[5] > $gt[5]) {
$tzsec -= 24 * 3600;
}
elsif($gt[5] > $lt[5]) {
$tzsec += 24 * 3600;
}
else {
$tzsec += ($gt[7] - $lt[7]) * (24 * 3600);
}
$time -= $tzsec;
}
$time_expect += $offset;
if(defined($time) and $time==$time_expect) {
print "ok $loop\n";
}
else {
require Date::Format;
print "-"x50,"\nFAIL $loop\n";
printf "%s\nDiff: %d\n", $str, $time - $time_expect;
printf "Expect: %10f %s",$time_expect,Date::Format::ctime($time_expect);
printf "Got: %10f %s",$time, Date::Format::ctime($time);
}
$loop++;
}
|