1#!/usr/bin/perl
2
3# taken from TimeDate-1.16/t/date.t
4
5use strict;
6use warnings;
7
8use lib qw( ./lib );
9
10use Test::More;
11
12use DateTime::Format::DateParse;
13
14my $data = qq!1995-01-24
151995-01-24T09:08:17.1823213
16Wed, 16 Jun 94 07:29:35 CST
17Wed, 16 Nov 94 07:29:35 CST
18Mon, 21 Nov 94 07:42:23 CST
19Mon, 21 Nov 94 04:28:18 CST
20Tue, 15 Nov 94 09:15:10 GMT
21Wed, 16 Nov 94 09:39:49 GMT
22Wed, 16 Nov 94 09:23:17 GMT
23Wed, 16 Nov 94 12:39:49 GMT
24Wed, 16 Nov 94 14:03:06 GMT
25Wed, 16 Nov 94 05:30:51 CST
26Thu, 17 Nov 94 03:19:30 CST
27Mon, 21 Nov 94 14:05:32 GMT
28Mon, 14 Nov 94 15:08:49 CST
29Wed, 16 Nov 94 14:48:06 GMT
30Thu, 17 Nov 94 14:22:03 GMT
31Wed, 16 Nov 94 14:36:00 GMT
32Wed, 16 Nov 94 09:23:17 GMT
33Wed, 16 Nov 94 10:01:43 GMT
34Wed, 16 Nov 94 15:03:35 GMT
35Mon, 21 Nov 94 13:55:19 GMT
36Wed, 16 Nov 94 08:46:11 CST
3721 dec 17:05
3821-dec 17:05
3921/dec 17:05
4021/dec/93 17:05
41dec 21 1994 17:05
42dec 21 94 17:05
43dec 21 94 17:05 GMT
44dec 21 94 17:05 BST
45dec 21 94 00:05 -1700
46dec 21 94 17:05 -1700
47Wed, 9 Nov 1994 09:50:32 -0500 (EST)
48Thu, 13 Oct 94 10:13:13 -0700
49Sat, 19 Nov 1994 16:59:14 +0100
50Thu, 3 Nov 94 14:10:47 EST
51Thu, 3 Nov 94 21:51:09 EST
52Fri, 4 Nov 94 9:24:52 EST
53Wed, 9 Nov 94 09:38:54 EST
54Mon, 14 Nov 94 13:20:12 EST
55Wed, 16 Nov 94 17:09:13 EST
56Tue, 15 Nov 94 12:27:01 PST
57Fri, 18 Nov 1994 07:34:05 -0600
58Mon, 21 Nov 94 14:34:28 -0500
59Fri, 18 Nov 1994 12:05:47 -0800 (PST)
60Fri, 18 Nov 1994 12:36:26 -0800 (PST)
61Wed, 16 Nov 1994 15:58:58 GMT
621999 10:02:18 "GMT"
63Sun, 06 Nov 94 14:27:40 -0500
64Mon, 07 Nov 94 08:20:13 -0500
65Mon, 07 Nov 94 16:48:42 -0500
66Wed, 09 Nov 94 15:46:16 -0500
67Fri, 4 Nov 94 16:17:40 "PST
68Wed, 16 Nov 94 12:43:37 "PST
69Sun, 6 Nov 1994 02:38:17 -0800
70Tue, 1 Nov 1994 13:53:49 -0500
71Tue, 15 Nov 94 08:31:59 +0100
72Sun, 6 Nov 1994 11:09:12 -0500 (IST)
73Fri, 4 Nov 94 12:52:10 EST
74Mon, 31 Oct 1994 14:17:39 -0500 (EST)
75Mon, 14 Nov 94 11:25:00 CST
76Mon, 14 Nov 94 13:26:29 CST
77Fri, 18 Nov 94 8:42:47 CST
78Thu, 17 Nov 94 14:32:01 +0900
79Wed, 2 Nov 94 18:16:31 +0100
80Fri, 18 Nov 94 10:46:26 +0100
81Tue, 8 Nov 1994 22:39:28 +0200
82Wed, 16 Nov 1994 10:01:08 -0500 (EST)
83Wed, 2 Nov 1994 16:59:42 -0800
84Wed, 9 Nov 94 10:00:23 PST
85Fri, 18 Nov 94 17:01:43 PST
86Mon, 14 Nov 1994 14:47:46 -0500
87Mon, 21 Nov 1994 04:56:04 -0500 (EST)
88Mon, 21 Nov 1994 11:50:12 -0800
89Sat, 5 Nov 1994 14:04:16 -0600 (CST)
90Sat, 05 Nov 94 13:10:13 MST
91Wed, 02 Nov 94 10:47:48 -0800
92Wed, 02 Nov 94 13:19:15 -0800
93Thu, 03 Nov 94 15:27:07 -0800
94Fri, 04 Nov 94 09:12:12 -0800
95Wed, 9 Nov 1994 10:13:03 +0000 (GMT)
96Wed, 9 Nov 1994 15:28:37 +0000 (GMT)
97Wed, 2 Nov 1994 17:37:41 +0100 (MET)
9805 Nov 94 14:22:19 PST
9916 Nov 94 22:28:20 PST
100Tue, 1 Nov 1994 19:51:15 -0800
101Wed, 2 Nov 94 12:21:23 GMT
102Fri, 18 Nov 94 18:07:03 GMT
103Wed, 16 Nov 1994 11:26:27 -0500
104Sun, 6 Nov 1994 13:48:49 -0500
105Tue, 8 Nov 1994 13:19:37 -0800
106Fri, 18 Nov 1994 11:01:12 -0800
107Mon, 21 Nov 1994 00:47:58 -0500
108Mon, 7 Nov 1994 14:22:48 -0800 (PST)
109Wed, 16 Nov 1994 15:56:45 -0800 (PST)
110Thu, 3 Nov 1994 13:17:47 +0000
111Wed, 9 Nov 1994 17:32:50 -0500 (EST)
112Wed, 9 Nov 94 16:31:52 PST
113Wed, 09 Nov 94 10:41:10 -0800
114Wed, 9 Nov 94 08:42:22 MST
115Mon, 14 Nov 1994 08:32:13 -0800
116Mon, 14 Nov 1994 11:34:32 -0500 (EST)
117Mon, 14 Nov 94 16:48:09 GMT
118Tue, 15 Nov 1994 10:27:33 +0000
119Wed, 02 Nov 94 13:56:54 MST
120Thu, 03 Nov 94 15:24:45 MST
121Thu, 3 Nov 1994 15:13:53 -0700 (MST)
122Fri, 04 Nov 94 08:15:13 MST
123Thu, 3 Nov 94 18:15:47 EST
124Tue, 08 Nov 94 07:02:33 MST
125Thu, 3 Nov 94 18:15:47 EST
126Tue, 15 Nov 94 07:26:05 MST
127Wed, 2 Nov 1994 00:00:55 -0600 (CST)
128Sun, 6 Nov 1994 01:19:13 -0600 (CST)
129Mon, 7 Nov 1994 23:16:57 -0600 (CST)
130Tue, 08 Nov 1994 13:21:21 -0600
131Mon, 07 Nov 94 13:47:37 PST
132Tue, 08 Nov 94 11:23:19 PST
133Tue, 01 Nov 1994 11:28:25 -0800
134Tue, 15 Nov 1994 13:11:47 -0800
135Tue, 15 Nov 1994 13:18:38 -0800
136Tue, 15 Nov 1994 0:18:38 -0800
137!;
138
139my @data = split(/\n/, $data);
140
141plan tests => scalar @data + 2;
142
143foreach my $format (@data) {
144    my $dt = DateTime::Format::DateParse->parse_datetime($format);
145    isa_ok($dt, 'DateTime');
146}
147
148{
149    my $dt = DateTime::Format::DateParse->parse_datetime('1995-01-24T09:08:17.1823213');
150    is( $dt->nanosecond, 182_321_300, 'nanosecond is an integer' );
151}
152
153{
154    my $dt = DateTime::Format::DateParse->parse_datetime('1995-01-24T09:08:17.6666666666');
155    is( $dt->nanosecond, 666_666_667, 'nanosecond is rounded properly' );
156}
157
158