chrono-node 1.4.7 → 1.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chrono.js +711 -809
- package/dist/chrono.js.map +1 -1
- package/dist/chrono.min.js +1 -1
- package/dist/chrono.min.js.map +1 -1
- package/package.json +1 -1
- package/src/chrono.js +57 -59
- package/src/options.js +30 -29
- package/src/parsers/en/ENDeadlineFormatParser.js +9 -9
- package/src/result.js +119 -119
- package/test/de/de.test.js +36 -51
- package/test/de/de_casual.test.js +242 -141
- package/test/de/de_dash.test.js +5 -8
- package/test/de/de_deadline.test.js +151 -47
- package/test/de/de_little_endian.test.js +207 -58
- package/test/de/de_time_ago.test.js +167 -52
- package/test/de/de_time_exp.test.js +135 -121
- package/test/de/de_weekday.test.js +94 -31
- package/test/en/en.test.js +118 -89
- package/test/en/en_casual.test.js +149 -134
- package/test/en/en_dash.test.js +17 -11
- package/test/en/en_deadline.test.js +93 -69
- package/test/en/en_inter_std.test.js +28 -7
- package/test/en/en_little_endian.test.js +76 -26
- package/test/en/en_middle_endian.test.js +63 -21
- package/test/en/en_month.test.js +6 -2
- package/test/en/en_option_forward.test.js +120 -112
- package/test/en/en_relative.test.js +155 -172
- package/test/en/en_slash.test.js +156 -115
- package/test/en/en_time_ago.test.js +61 -21
- package/test/en/en_time_exp.test.js +228 -209
- package/test/en/en_time_from_now.test.js +70 -24
- package/test/en/en_time_later.test.js +16 -6
- package/test/en/en_weekday.test.js +39 -13
- package/test/es/es_casual.test.js +143 -120
- package/test/es/es_dash.test.js +7 -8
- package/test/es/es_deadline.test.js +69 -35
- package/test/es/es_little_endian.test.js +250 -145
- package/test/es/es_slash.test.js +17 -12
- package/test/es/es_time_ago.test.js +21 -7
- package/test/es/es_time_exp.test.js +154 -160
- package/test/fr/fr_casual.test.js +153 -124
- package/test/fr/fr_dash.test.js +13 -6
- package/test/fr/fr_deadline.test.js +163 -44
- package/test/fr/fr_little_endian.test.js +262 -81
- package/test/fr/fr_relative.test.js +188 -196
- package/test/fr/fr_slash.test.js +41 -14
- package/test/fr/fr_time_ago.test.js +30 -10
- package/test/fr/fr_time_exp.test.js +619 -567
- package/test/fr/fr_weekday.test.js +24 -8
- package/test/ja/ja_casual.test.js +41 -26
- package/test/ja/ja_standard.test.js +322 -207
- package/test/nl/nl.test.js +18 -20
- package/test/nl/nl_dash.test.js +26 -26
- package/test/nl/nl_little_endian.test.js +100 -51
- package/test/nl/nl_time_exp.test.js +37 -13
- package/test/nl/nl_weekday.test.js +39 -13
- package/test/pt/pt_casual.test.js +222 -156
- package/test/pt/pt_dash.test.js +7 -6
- package/test/pt/pt_deadline.test.js +51 -17
- package/test/pt/pt_little_endian.test.js +251 -144
- package/test/pt/pt_slash.test.js +38 -25
- package/test/pt/pt_time_ago.test.js +128 -80
- package/test/pt/pt_time_exp.test.js +191 -173
- package/test/test_util.js +1 -5
- package/test/zh/zh_hant_casual.test.js +184 -87
- package/test/zh/zh_hant_date.test.js +109 -75
- package/test/zh/zh_hant_deadline.test.js +131 -41
- package/test/zh/zh_hant_time_exp.test.js +184 -141
- package/test/zh/zh_hant_weekday.test.js +64 -22
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as chrono from '../../src/chrono';
|
|
2
|
-
import { testSingleCase
|
|
2
|
+
import { testSingleCase } from '../test_util';
|
|
3
3
|
|
|
4
4
|
test("Test - Single Expression", function() {
|
|
5
5
|
|
|
@@ -12,7 +12,9 @@ test("Test - Single Expression", function() {
|
|
|
12
12
|
expect(result.start.get('month')).toBe(8);
|
|
13
13
|
expect(result.start.get('day')).toBe(15);
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
var resultDate = result.start.date();
|
|
16
|
+
var expectDate = new Date(2012, 8-1, 15, 12);
|
|
17
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
16
18
|
});
|
|
17
19
|
|
|
18
20
|
|
|
@@ -26,7 +28,9 @@ test("Test - Single Expression", function() {
|
|
|
26
28
|
expect(result.start.get('month')).toBe(8);
|
|
27
29
|
expect(result.start.get('day')).toBe(15);
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
var resultDate = result.start.date();
|
|
32
|
+
var expectDate = new Date(2012, 8-1, 15, 12);
|
|
33
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
30
34
|
});
|
|
31
35
|
|
|
32
36
|
|
|
@@ -39,7 +43,9 @@ test("Test - Single Expression", function() {
|
|
|
39
43
|
expect(result.start.get('month')).toBe(8);
|
|
40
44
|
expect(result.start.get('day')).toBe(20);
|
|
41
45
|
|
|
42
|
-
|
|
46
|
+
var resultDate = result.start.date();
|
|
47
|
+
var expectDate = new Date(2012, 8-1, 20, 12);
|
|
48
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
43
49
|
});
|
|
44
50
|
|
|
45
51
|
|
|
@@ -47,21 +53,27 @@ test("Test - Single Expression", function() {
|
|
|
47
53
|
expect(result.index).toBe(0);
|
|
48
54
|
expect(result.text).toBe('in 5 minutes');
|
|
49
55
|
|
|
50
|
-
|
|
56
|
+
var resultDate = result.start.date();
|
|
57
|
+
var expectDate = new Date(2012,7,10,12,19);
|
|
58
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
51
59
|
});
|
|
52
60
|
|
|
53
61
|
testSingleCase(chrono, 'within 1 hour', new Date(2012,7,10,12,14), (result) => {
|
|
54
62
|
expect(result.index).toBe(0);
|
|
55
63
|
expect(result.text).toBe('within 1 hour');
|
|
56
64
|
|
|
57
|
-
|
|
65
|
+
var resultDate = result.start.date();
|
|
66
|
+
var expectDate = new Date(2012,7,10,13,14);
|
|
67
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
58
68
|
});
|
|
59
69
|
|
|
60
70
|
testSingleCase(chrono, 'In 5 minutes I will go home', new Date(2012,7,10,12,14), (result) => {
|
|
61
71
|
expect(result.index).toBe(0);
|
|
62
72
|
expect(result.text).toBe('In 5 minutes');
|
|
63
73
|
|
|
64
|
-
|
|
74
|
+
var resultDate = result.start.date();
|
|
75
|
+
var expectDate = new Date(2012,7,10,12,19);
|
|
76
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
65
77
|
});
|
|
66
78
|
|
|
67
79
|
|
|
@@ -69,7 +81,9 @@ test("Test - Single Expression", function() {
|
|
|
69
81
|
expect(result.index).toBe(0);
|
|
70
82
|
expect(result.text).toBe('In 5 minutes');
|
|
71
83
|
|
|
72
|
-
|
|
84
|
+
var resultDate = result.start.date();
|
|
85
|
+
var expectDate = new Date(2012,7,10,12,19);
|
|
86
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
73
87
|
});
|
|
74
88
|
|
|
75
89
|
|
|
@@ -77,7 +91,9 @@ test("Test - Single Expression", function() {
|
|
|
77
91
|
expect(result.index).toBe(0);
|
|
78
92
|
expect(result.text).toBe('In 5 seconds');
|
|
79
93
|
|
|
80
|
-
|
|
94
|
+
var resultDate = result.start.date();
|
|
95
|
+
var expectDate = new Date(2012, 7, 10, 12, 14, 5);
|
|
96
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
81
97
|
});
|
|
82
98
|
|
|
83
99
|
|
|
@@ -85,7 +101,9 @@ test("Test - Single Expression", function() {
|
|
|
85
101
|
expect(result.index).toBe(0);
|
|
86
102
|
expect(result.text).toBe('within half an hour');
|
|
87
103
|
|
|
88
|
-
|
|
104
|
+
var resultDate = result.start.date();
|
|
105
|
+
var expectDate = new Date(2012,7,10,12,44);
|
|
106
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
89
107
|
});
|
|
90
108
|
|
|
91
109
|
|
|
@@ -93,7 +111,9 @@ test("Test - Single Expression", function() {
|
|
|
93
111
|
expect(result.index).toBe(0);
|
|
94
112
|
expect(result.text).toBe('within two weeks');
|
|
95
113
|
|
|
96
|
-
|
|
114
|
+
var resultDate = result.start.date();
|
|
115
|
+
var expectDate = new Date(2012, 7, 24, 12);
|
|
116
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
97
117
|
});
|
|
98
118
|
|
|
99
119
|
|
|
@@ -101,7 +121,9 @@ test("Test - Single Expression", function() {
|
|
|
101
121
|
expect(result.index).toBe(0);
|
|
102
122
|
expect(result.text).toBe('within a month');
|
|
103
123
|
|
|
104
|
-
|
|
124
|
+
var resultDate = result.start.date();
|
|
125
|
+
var expectDate = new Date(2012, 8, 10, 12);
|
|
126
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
105
127
|
});
|
|
106
128
|
|
|
107
129
|
|
|
@@ -109,7 +131,9 @@ test("Test - Single Expression", function() {
|
|
|
109
131
|
expect(result.index).toBe(0);
|
|
110
132
|
expect(result.text).toBe('within a few months');
|
|
111
133
|
|
|
112
|
-
|
|
134
|
+
var resultDate = result.start.date();
|
|
135
|
+
var expectDate = new Date(2012, 10, 10, 12);
|
|
136
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
113
137
|
});
|
|
114
138
|
|
|
115
139
|
|
|
@@ -117,7 +141,9 @@ test("Test - Single Expression", function() {
|
|
|
117
141
|
expect(result.index).toBe(0);
|
|
118
142
|
expect(result.text).toBe('within one year');
|
|
119
143
|
|
|
120
|
-
|
|
144
|
+
var resultDate = result.start.date();
|
|
145
|
+
var expectDate = new Date(2013, 7, 10, 12);
|
|
146
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
121
147
|
});
|
|
122
148
|
|
|
123
149
|
|
|
@@ -125,7 +151,9 @@ test("Test - Single Expression", function() {
|
|
|
125
151
|
expect(result.index).toBe(0);
|
|
126
152
|
expect(result.text).toBe('within one Year');
|
|
127
153
|
|
|
128
|
-
|
|
154
|
+
var resultDate = result.start.date();
|
|
155
|
+
var expectDate = new Date(2013, 7, 10, 12);
|
|
156
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
129
157
|
});
|
|
130
158
|
|
|
131
159
|
|
|
@@ -133,7 +161,9 @@ test("Test - Single Expression", function() {
|
|
|
133
161
|
expect(result.index).toBe(0);
|
|
134
162
|
expect(result.text).toBe('within One year');
|
|
135
163
|
|
|
136
|
-
|
|
164
|
+
var resultDate = result.start.date();
|
|
165
|
+
var expectDate = new Date(2013, 7, 10, 12);
|
|
166
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
137
167
|
});
|
|
138
168
|
|
|
139
169
|
|
|
@@ -141,7 +171,9 @@ test("Test - Single Expression", function() {
|
|
|
141
171
|
expect(result.index).toBe(0);
|
|
142
172
|
expect(result.text).toBe('In 5 Minutes');
|
|
143
173
|
|
|
144
|
-
|
|
174
|
+
var resultDate = result.start.date();
|
|
175
|
+
var expectDate = new Date(2012,7,10,12,19);
|
|
176
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
145
177
|
});
|
|
146
178
|
|
|
147
179
|
|
|
@@ -149,94 +181,86 @@ test("Test - Single Expression", function() {
|
|
|
149
181
|
expect(result.index).toBe(0);
|
|
150
182
|
expect(result.text).toBe('In 5 mins');
|
|
151
183
|
|
|
152
|
-
|
|
184
|
+
var resultDate = result.start.date();
|
|
185
|
+
var expectDate = new Date(2012,7,10,12,19);
|
|
186
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
153
187
|
});
|
|
154
188
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
});
|
|
189
|
+
var text = "in a week";
|
|
190
|
+
var result = chrono.parse(text, new Date(2016, 10-1, 1))[0];
|
|
191
|
+
expect(result.text).toBe(text);
|
|
192
|
+
expect(result.start.get('year')).toBe(2016);
|
|
193
|
+
expect(result.start.get('month')).toBe(10);
|
|
194
|
+
expect(result.start.get('day')).toBe(8);
|
|
195
|
+
expect(result.start.get('hour')).toBe(12);
|
|
163
196
|
|
|
164
197
|
});
|
|
165
198
|
|
|
166
199
|
|
|
167
200
|
test("Test - Single Expression (Strict)", function() {
|
|
168
201
|
|
|
169
|
-
|
|
202
|
+
var text = "within one year";
|
|
203
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10,12,14));
|
|
204
|
+
expect(results.length).toBe(0);
|
|
170
205
|
|
|
171
206
|
|
|
172
|
-
|
|
207
|
+
var text = "within a few months";
|
|
208
|
+
var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
|
|
209
|
+
expect(results.length).toBe(0)
|
|
173
210
|
|
|
174
211
|
|
|
175
|
-
|
|
212
|
+
var text = "within a few days";
|
|
213
|
+
var results = chrono.strict.parse(text, new Date(2012, 8-1, 3));
|
|
214
|
+
expect(results.length).toBe(0)
|
|
176
215
|
});
|
|
177
216
|
|
|
178
217
|
|
|
179
|
-
test("Test - Single Expression (
|
|
218
|
+
test("Test - Single Expression (Certainty)", function() {
|
|
180
219
|
|
|
181
|
-
|
|
220
|
+
|
|
221
|
+
var text = "within 30 years";
|
|
182
222
|
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
183
223
|
expect(results.length).toBe(1);
|
|
184
|
-
expect(
|
|
185
|
-
expect(!results[0].start.isCertain('month')).not.toBeNull();
|
|
186
|
-
expect(!results[0].start.isCertain('day')).not.toBeNull();
|
|
187
|
-
expect(!results[0].start.isCertain('hour')).not.toBeNull();
|
|
188
|
-
expect(!results[0].start.isCertain('minute')).not.toBeNull();
|
|
189
|
-
expect(!results[0].start.isCertain('second')).not.toBeNull();
|
|
224
|
+
expect(results[0].start.isCertain('year')).toBe(true);
|
|
190
225
|
|
|
191
226
|
var text = "within 30 months";
|
|
192
227
|
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
193
228
|
expect(results.length).toBe(1);
|
|
194
|
-
expect(
|
|
195
|
-
expect(
|
|
196
|
-
expect(!results[0].start.isCertain('day')).not.toBeNull();
|
|
197
|
-
expect(!results[0].start.isCertain('hour')).not.toBeNull();
|
|
198
|
-
expect(!results[0].start.isCertain('minute')).not.toBeNull();
|
|
199
|
-
expect(!results[0].start.isCertain('second')).not.toBeNull();
|
|
229
|
+
expect(results[0].start.isCertain('year')).toBe(true);
|
|
230
|
+
expect(results[0].start.isCertain('month')).toBe(true);
|
|
200
231
|
|
|
201
|
-
var text = "within 30
|
|
232
|
+
var text = "within 30 days";
|
|
202
233
|
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
203
234
|
expect(results.length).toBe(1);
|
|
204
|
-
expect(
|
|
205
|
-
expect(
|
|
206
|
-
expect(
|
|
207
|
-
expect(!results[0].start.isCertain('hour')).not.toBeNull();
|
|
208
|
-
expect(!results[0].start.isCertain('minute')).not.toBeNull();
|
|
209
|
-
expect(!results[0].start.isCertain('second')).not.toBeNull();
|
|
235
|
+
expect(results[0].start.isCertain('year')).toBe(true);
|
|
236
|
+
expect(results[0].start.isCertain('month')).toBe(true);
|
|
237
|
+
expect(results[0].start.isCertain('day')).toBe(true);
|
|
210
238
|
|
|
211
239
|
var text = "within 5 hours";
|
|
212
240
|
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
213
241
|
expect(results.length).toBe(1);
|
|
214
|
-
expect(
|
|
215
|
-
expect(
|
|
216
|
-
expect(
|
|
217
|
-
expect(
|
|
218
|
-
expect(!results[0].start.isCertain('minute')).not.toBeNull();
|
|
219
|
-
expect(!results[0].start.isCertain('second')).not.toBeNull();
|
|
242
|
+
expect(results[0].start.isCertain('year')).toBe(true);
|
|
243
|
+
expect(results[0].start.isCertain('month')).toBe(true);
|
|
244
|
+
expect(results[0].start.isCertain('day')).toBe(true);
|
|
245
|
+
expect(results[0].start.isCertain('hour')).toBe(true);
|
|
220
246
|
|
|
221
247
|
var text = "within 5 minutes";
|
|
222
248
|
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
223
249
|
expect(results.length).toBe(1);
|
|
224
|
-
expect(
|
|
225
|
-
expect(
|
|
226
|
-
expect(
|
|
227
|
-
expect(
|
|
228
|
-
expect(
|
|
229
|
-
expect(!results[0].start.isCertain('second')).not.toBeNull();
|
|
250
|
+
expect(results[0].start.isCertain('year')).toBe(true);
|
|
251
|
+
expect(results[0].start.isCertain('month')).toBe(true);
|
|
252
|
+
expect(results[0].start.isCertain('day')).toBe(true);
|
|
253
|
+
expect(results[0].start.isCertain('hour')).toBe(true);
|
|
254
|
+
expect(results[0].start.isCertain('minute')).toBe(true);
|
|
230
255
|
|
|
231
256
|
var text = "within 5 seconds";
|
|
232
257
|
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
233
258
|
expect(results.length).toBe(1);
|
|
234
|
-
expect(
|
|
235
|
-
expect(
|
|
236
|
-
expect(
|
|
237
|
-
expect(
|
|
238
|
-
expect(
|
|
239
|
-
expect(
|
|
240
|
-
|
|
259
|
+
expect(results[0].start.isCertain('year')).toBe(true);
|
|
260
|
+
expect(results[0].start.isCertain('month')).toBe(true);
|
|
261
|
+
expect(results[0].start.isCertain('day')).toBe(true);
|
|
262
|
+
expect(results[0].start.isCertain('hour')).toBe(true);
|
|
263
|
+
expect(results[0].start.isCertain('minute')).toBe(true);
|
|
264
|
+
expect(results[0].start.isCertain('second')).toBe(true);
|
|
241
265
|
});
|
|
242
266
|
|
|
@@ -26,7 +26,10 @@ test("Test - Single Expression", function() {
|
|
|
26
26
|
expect(result.start.get('timezoneOffset')).toBe(-330);
|
|
27
27
|
expect(result.text).toBe('1994-11-05T08:15:30-05:30');
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
var resultDate = result.start.date();
|
|
30
|
+
var expectDate = new Date(784043130000);
|
|
31
|
+
|
|
32
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
30
33
|
});
|
|
31
34
|
|
|
32
35
|
testSingleCase(chrono, '1994-11-05T13:15:30', new Date(2012,7,8), (result) => {
|
|
@@ -40,7 +43,10 @@ test("Test - Single Expression", function() {
|
|
|
40
43
|
expect(result.start.get('timezoneOffset')).toBe(0);
|
|
41
44
|
expect(result.text).toBe('1994-11-05T13:15:30');
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
var resultDate = result.start.date();
|
|
47
|
+
var expectDate = new Date(784041330000);
|
|
48
|
+
|
|
49
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
44
50
|
});
|
|
45
51
|
|
|
46
52
|
testSingleCase(chrono, '2015-07-31T12:00:00', new Date(2012,7,8), (result) => {
|
|
@@ -54,7 +60,10 @@ test("Test - Single Expression", function() {
|
|
|
54
60
|
expect(result.start.get('timezoneOffset')).toBe(0);
|
|
55
61
|
expect(result.text).toBe('2015-07-31T12:00:00');
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
var resultDate = result.start.date();
|
|
64
|
+
var expectDate = new Date(1438344000000);
|
|
65
|
+
|
|
66
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
58
67
|
});
|
|
59
68
|
|
|
60
69
|
|
|
@@ -69,7 +78,10 @@ test("Test - Single Expression", function() {
|
|
|
69
78
|
expect(result.start.get('timezoneOffset')).toBe(0);
|
|
70
79
|
expect(result.text).toBe('1994-11-05T13:15:30Z');
|
|
71
80
|
|
|
72
|
-
|
|
81
|
+
var resultDate = result.start.date();
|
|
82
|
+
var expectDate = new Date(784041330000);
|
|
83
|
+
|
|
84
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
73
85
|
});
|
|
74
86
|
|
|
75
87
|
testSingleCase(chrono, '1994-11-05T13:15:30Z', new Date(2012,7,8), (result) => {
|
|
@@ -83,7 +95,10 @@ test("Test - Single Expression", function() {
|
|
|
83
95
|
expect(result.start.get('timezoneOffset')).toBe(0);
|
|
84
96
|
expect(result.text).toBe('1994-11-05T13:15:30Z');
|
|
85
97
|
|
|
86
|
-
|
|
98
|
+
var resultDate = result.start.date();
|
|
99
|
+
var expectDate = new Date(784041330000);
|
|
100
|
+
|
|
101
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
87
102
|
});
|
|
88
103
|
|
|
89
104
|
|
|
@@ -100,7 +115,10 @@ test("Test - Single Expression", function() {
|
|
|
100
115
|
expect(result.index).toBe(2);
|
|
101
116
|
expect(result.text).toBe('1994-11-05T13:15:30Z');
|
|
102
117
|
|
|
103
|
-
|
|
118
|
+
var resultDate = result.start.date();
|
|
119
|
+
var expectDate = new Date(784041330000);
|
|
120
|
+
|
|
121
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
104
122
|
});
|
|
105
123
|
|
|
106
124
|
testSingleCase(chrono.strict, '2016-05-07T23:45:00.487+01:00', new Date(2012,7,8), (result) => {
|
|
@@ -115,7 +133,10 @@ test("Test - Single Expression", function() {
|
|
|
115
133
|
|
|
116
134
|
expect(result.text).toBe('2016-05-07T23:45:00.487+01:00');
|
|
117
135
|
|
|
118
|
-
|
|
136
|
+
var resultDate = result.start.date();
|
|
137
|
+
var expectDate = new Date(1462661100487);
|
|
138
|
+
|
|
139
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
119
140
|
});
|
|
120
141
|
});
|
|
121
142
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as chrono from '../../src/chrono';
|
|
2
|
-
import { testSingleCase
|
|
2
|
+
import { testSingleCase } from '../test_util';
|
|
3
3
|
|
|
4
4
|
test("Test - Single expression", function() {
|
|
5
5
|
|
|
@@ -12,7 +12,9 @@ test("Test - Single expression", function() {
|
|
|
12
12
|
expect(result.index).toBe(0);
|
|
13
13
|
expect(result.text).toBe('10 August 2012');
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
var resultDate = result.start.date();
|
|
16
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
17
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
16
18
|
});
|
|
17
19
|
|
|
18
20
|
testSingleCase(chrono, '3rd Feb 82', new Date(2012,7,10), (result) => {
|
|
@@ -36,7 +38,9 @@ test("Test - Single expression", function() {
|
|
|
36
38
|
expect(result.start.get('month')).toBe(8);
|
|
37
39
|
expect(result.start.get('day')).toBe(10);
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
var resultDate = result.start.date();
|
|
42
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
43
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
40
44
|
});
|
|
41
45
|
|
|
42
46
|
testSingleCase(chrono, '10 August 234 BC', new Date(2012,7,10), (result) => {
|
|
@@ -48,7 +52,9 @@ test("Test - Single expression", function() {
|
|
|
48
52
|
expect(result.start.get('month')).toBe(8);
|
|
49
53
|
expect(result.start.get('day')).toBe(10);
|
|
50
54
|
|
|
51
|
-
|
|
55
|
+
var resultDate = result.start.date();
|
|
56
|
+
var expectDate = new Date(-234, 8-1, 10, 12);
|
|
57
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
52
58
|
});
|
|
53
59
|
|
|
54
60
|
testSingleCase(chrono, '10 August 88 AD', new Date(2012,7,10), (result) => {
|
|
@@ -75,7 +81,9 @@ test("Test - Single expression", function() {
|
|
|
75
81
|
expect(result.start.get('month')).toBe(9);
|
|
76
82
|
expect(result.start.get('day')).toBe(15);
|
|
77
83
|
|
|
78
|
-
|
|
84
|
+
var resultDate = result.start.date();
|
|
85
|
+
var expectDate = new Date(2013, 9-1, 15, 12);
|
|
86
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
79
87
|
});
|
|
80
88
|
|
|
81
89
|
testSingleCase(chrono, 'SUN 15SEP', new Date(2013,7,10), (result) => {
|
|
@@ -87,7 +95,9 @@ test("Test - Single expression", function() {
|
|
|
87
95
|
expect(result.start.get('month')).toBe(9);
|
|
88
96
|
expect(result.start.get('day')).toBe(15);
|
|
89
97
|
|
|
90
|
-
|
|
98
|
+
var resultDate = result.start.date();
|
|
99
|
+
var expectDate = new Date(2013, 9-1, 15, 12);
|
|
100
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
91
101
|
});
|
|
92
102
|
|
|
93
103
|
testSingleCase(chrono, 'The Deadline is 10 August', new Date(2012,7,10), (result) => {
|
|
@@ -100,7 +110,9 @@ test("Test - Single expression", function() {
|
|
|
100
110
|
expect(result.start.get('month')).toBe(8);
|
|
101
111
|
expect(result.start.get('day')).toBe(10);
|
|
102
112
|
|
|
103
|
-
|
|
113
|
+
var resultDate = result.start.date();
|
|
114
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
115
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
104
116
|
});
|
|
105
117
|
|
|
106
118
|
|
|
@@ -115,7 +127,9 @@ test("Test - Single expression", function() {
|
|
|
115
127
|
expect(result.start.get('day')).toBe(10);
|
|
116
128
|
expect(result.start.get('weekday')).toBe(2);
|
|
117
129
|
|
|
118
|
-
|
|
130
|
+
var resultDate = result.start.date();
|
|
131
|
+
var expectDate = new Date(2013, 1-1, 10, 12);
|
|
132
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
119
133
|
});
|
|
120
134
|
|
|
121
135
|
|
|
@@ -130,7 +144,9 @@ test("Test - Single expression", function() {
|
|
|
130
144
|
expect(result.start.get('day')).toBe(10);
|
|
131
145
|
expect(result.start.get('weekday')).toBe(2);
|
|
132
146
|
|
|
133
|
-
|
|
147
|
+
var resultDate = result.start.date();
|
|
148
|
+
var expectDate = new Date(2013, 1-1, 10, 12);
|
|
149
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
134
150
|
});
|
|
135
151
|
|
|
136
152
|
|
|
@@ -144,7 +160,9 @@ test("Test - Single expression", function() {
|
|
|
144
160
|
expect(result.start.get('month')).toBe(3);
|
|
145
161
|
expect(result.start.get('day')).toBe(31);
|
|
146
162
|
|
|
147
|
-
|
|
163
|
+
var resultDate = result.start.date();
|
|
164
|
+
var expectDate = new Date(2016, 3-1, 31, 12);
|
|
165
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
148
166
|
});
|
|
149
167
|
|
|
150
168
|
|
|
@@ -158,7 +176,9 @@ test("Test - Single expression", function() {
|
|
|
158
176
|
expect(result.start.get('month')).toBe(2);
|
|
159
177
|
expect(result.start.get('day')).toBe(23);
|
|
160
178
|
|
|
161
|
-
|
|
179
|
+
var resultDate = result.start.date();
|
|
180
|
+
var expectDate = new Date(2016, 2-1, 23, 12);
|
|
181
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
162
182
|
});
|
|
163
183
|
});
|
|
164
184
|
|
|
@@ -203,7 +223,9 @@ test("Test - Range expression", function() {
|
|
|
203
223
|
expect(result.start.get('month')).toBe(8);
|
|
204
224
|
expect(result.start.get('day')).toBe(10);
|
|
205
225
|
|
|
206
|
-
|
|
226
|
+
var resultDate = result.start.date();
|
|
227
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
228
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
|
|
207
229
|
|
|
208
230
|
|
|
209
231
|
expect(result.end).not.toBeNull();
|
|
@@ -211,7 +233,9 @@ test("Test - Range expression", function() {
|
|
|
211
233
|
expect(result.end.get('month')).toBe(8);
|
|
212
234
|
expect(result.end.get('day')).toBe(22);
|
|
213
235
|
|
|
214
|
-
|
|
236
|
+
var resultDate = result.end.date();
|
|
237
|
+
var expectDate = new Date(2012, 8-1, 22, 12);
|
|
238
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
215
239
|
});
|
|
216
240
|
|
|
217
241
|
|
|
@@ -225,7 +249,9 @@ test("Test - Range expression", function() {
|
|
|
225
249
|
expect(result.start.get('month')).toBe(8);
|
|
226
250
|
expect(result.start.get('day')).toBe(10);
|
|
227
251
|
|
|
228
|
-
|
|
252
|
+
var resultDate = result.start.date();
|
|
253
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
254
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
|
|
229
255
|
|
|
230
256
|
|
|
231
257
|
expect(result.end).not.toBeNull();
|
|
@@ -233,7 +259,9 @@ test("Test - Range expression", function() {
|
|
|
233
259
|
expect(result.end.get('month')).toBe(8);
|
|
234
260
|
expect(result.end.get('day')).toBe(22);
|
|
235
261
|
|
|
236
|
-
|
|
262
|
+
var resultDate = result.end.date();
|
|
263
|
+
var expectDate = new Date(2012, 8-1, 22, 12);
|
|
264
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
237
265
|
});
|
|
238
266
|
|
|
239
267
|
testSingleCase(chrono, '10 August - 12 September', new Date(2012,7,10), (result) => {
|
|
@@ -246,7 +274,9 @@ test("Test - Range expression", function() {
|
|
|
246
274
|
expect(result.start.get('month')).toBe(8);
|
|
247
275
|
expect(result.start.get('day')).toBe(10);
|
|
248
276
|
|
|
249
|
-
|
|
277
|
+
var resultDate = result.start.date();
|
|
278
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
279
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
|
|
250
280
|
|
|
251
281
|
|
|
252
282
|
expect(result.end).not.toBeNull();
|
|
@@ -254,7 +284,9 @@ test("Test - Range expression", function() {
|
|
|
254
284
|
expect(result.end.get('month')).toBe(9);
|
|
255
285
|
expect(result.end.get('day')).toBe(12);
|
|
256
286
|
|
|
257
|
-
|
|
287
|
+
var resultDate = result.end.date();
|
|
288
|
+
var expectDate = new Date(2012, 9-1, 12, 12);
|
|
289
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
258
290
|
});
|
|
259
291
|
|
|
260
292
|
testSingleCase(chrono, '10 August - 12 September 2013', new Date(2012,7,10), (result) => {
|
|
@@ -267,7 +299,9 @@ test("Test - Range expression", function() {
|
|
|
267
299
|
expect(result.start.get('month')).toBe(8);
|
|
268
300
|
expect(result.start.get('day')).toBe(10);
|
|
269
301
|
|
|
270
|
-
|
|
302
|
+
var resultDate = result.start.date();
|
|
303
|
+
var expectDate = new Date(2013, 8-1, 10, 12);
|
|
304
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
|
|
271
305
|
|
|
272
306
|
|
|
273
307
|
expect(result.end).not.toBeNull();
|
|
@@ -275,7 +309,9 @@ test("Test - Range expression", function() {
|
|
|
275
309
|
expect(result.end.get('month')).toBe(9);
|
|
276
310
|
expect(result.end.get('day')).toBe(12);
|
|
277
311
|
|
|
278
|
-
|
|
312
|
+
var resultDate = result.end.date();
|
|
313
|
+
var expectDate = new Date(2013, 9-1, 12, 12);
|
|
314
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
279
315
|
});
|
|
280
316
|
});
|
|
281
317
|
|
|
@@ -292,7 +328,9 @@ test("Test - Combined expression", function() {
|
|
|
292
328
|
expect(result.start.get('day')).toBe(12);
|
|
293
329
|
|
|
294
330
|
|
|
295
|
-
|
|
331
|
+
var resultDate = result.start.date();
|
|
332
|
+
var expectDate = new Date(2012, 7-1, 12, 19, 0);
|
|
333
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
296
334
|
});
|
|
297
335
|
|
|
298
336
|
|
|
@@ -306,7 +344,9 @@ test("Test - Combined expression", function() {
|
|
|
306
344
|
expect(result.start.get('day')).toBe(5);
|
|
307
345
|
|
|
308
346
|
|
|
309
|
-
|
|
347
|
+
var resultDate = result.start.date();
|
|
348
|
+
var expectDate = new Date(2012, 5-1, 5, 12, 0);
|
|
349
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
310
350
|
});
|
|
311
351
|
|
|
312
352
|
|
|
@@ -320,7 +360,9 @@ test("Test - Combined expression", function() {
|
|
|
320
360
|
expect(result.start.get('day')).toBe(7);
|
|
321
361
|
expect(result.start.get('hour')).toBe(11);
|
|
322
362
|
|
|
323
|
-
|
|
363
|
+
var resultDate = result.start.date();
|
|
364
|
+
var expectDate = new Date(2012, 5-1, 7, 11, 0);
|
|
365
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
324
366
|
});
|
|
325
367
|
});
|
|
326
368
|
|
|
@@ -397,13 +439,21 @@ test("Test - little endian date followed by time", function() {
|
|
|
397
439
|
|
|
398
440
|
test("Test - Impossible Dates (Strict Mode)", function() {
|
|
399
441
|
|
|
400
|
-
|
|
442
|
+
var text = "32 August 2014";
|
|
443
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
444
|
+
expect(results.length).toBe(0);
|
|
401
445
|
|
|
402
|
-
|
|
446
|
+
var text = "29 February 2014";
|
|
447
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
448
|
+
expect(results.length).toBe(0);
|
|
403
449
|
|
|
404
|
-
|
|
450
|
+
var text = "32 August";
|
|
451
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
452
|
+
expect(results.length).toBe(0);
|
|
405
453
|
|
|
406
|
-
|
|
454
|
+
var text = "29 February";
|
|
455
|
+
var results = chrono.strict.parse(text, new Date(2013,7,10));
|
|
456
|
+
expect(results.length).toBe(0)
|
|
407
457
|
|
|
408
458
|
});
|
|
409
459
|
|