UNPKG

13.9 kBPlain TextView Raw
1import * as chrono from "../../src";
2import { testSingleCase } from "../test_util";
3
4test("Test - Single expression", () => {
5 testSingleCase(chrono.nl, "10 augustus 2012", new Date(2012, 7, 10), (result) => {
6 expect(result.start).not.toBeNull();
7 expect(result.start.get("year")).toBe(2012);
8 expect(result.start.get("month")).toBe(8);
9 expect(result.start.get("day")).toBe(10);
10
11 expect(result.index).toBe(0);
12 expect(result.text).toBe("10 augustus 2012");
13
14 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
15 });
16
17 testSingleCase(chrono.nl, "3 februari 82", new Date(2012, 7, 10), (result) => {
18 expect(result.start).not.toBeNull();
19 expect(result.start.get("year")).toBe(1982);
20 expect(result.start.get("month")).toBe(2);
21 expect(result.start.get("day")).toBe(3);
22
23 expect(result.index).toBe(0);
24 expect(result.text).toBe("3 februari 82");
25
26 expect(result.start).toBeDate(new Date(1982, 2 - 1, 3, 12));
27 });
28
29 testSingleCase(chrono.nl, "10 augustus 234 voor Christus", new Date(2012, 7, 10), (result) => {
30 expect(result.index).toBe(0);
31 expect(result.text).toBe("10 augustus 234 voor Christus");
32
33 expect(result.start).not.toBeNull();
34 expect(result.start.get("year")).toBe(-234);
35 expect(result.start.get("month")).toBe(8);
36 expect(result.start.get("day")).toBe(10);
37
38 expect(result.start).toBeDate(new Date(-234, 8 - 1, 10, 12));
39 });
40
41 testSingleCase(chrono.nl, "10 augustus 88 na Christus", new Date(2012, 7, 10), (result) => {
42 expect(result.index).toBe(0);
43 expect(result.text).toBe("10 augustus 88 na Christus");
44
45 expect(result.start).not.toBeNull();
46 expect(result.start.get("year")).toBe(88);
47 expect(result.start.get("month")).toBe(8);
48 expect(result.start.get("day")).toBe(10);
49
50 const resultDate = result.start.date();
51 const expectDate = new Date(88, 8 - 1, 10, 12);
52 expectDate.setFullYear(88);
53 expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
54 });
55
56 testSingleCase(chrono.nl, "Zon 15 Sept", new Date(2013, 7, 10), (result) => {
57 expect(result.index).toBe(0);
58 expect(result.text).toBe("Zon 15 Sept");
59
60 expect(result.start).not.toBeNull();
61 expect(result.start.get("year")).toBe(2013);
62 expect(result.start.get("month")).toBe(9);
63 expect(result.start.get("day")).toBe(15);
64
65 expect(result.start).toBeDate(new Date(2013, 9 - 1, 15, 12));
66 });
67
68 testSingleCase(chrono.nl, "ZON 15 SEPT", new Date(2013, 7, 10), (result) => {
69 expect(result.index).toBe(0);
70 expect(result.text).toBe("ZON 15 SEPT");
71
72 expect(result.start).not.toBeNull();
73 expect(result.start.get("year")).toBe(2013);
74 expect(result.start.get("month")).toBe(9);
75 expect(result.start.get("day")).toBe(15);
76
77 expect(result.start).toBeDate(new Date(2013, 9 - 1, 15, 12));
78 });
79
80 testSingleCase(chrono.nl, "De deadline is 10 augustus", new Date(2012, 7, 10), (result) => {
81 expect(result.index).toBe(15);
82 expect(result.text).toBe("10 augustus");
83
84 expect(result.start).not.toBeNull();
85 expect(result.start.get("year")).toBe(2012);
86 expect(result.start.get("month")).toBe(8);
87 expect(result.start.get("day")).toBe(10);
88
89 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
90 });
91
92 testSingleCase(chrono.nl, "De deadline is dinsdag, 10 januari", new Date(2012, 7, 10), (result) => {
93 expect(result.index).toBe(15);
94 expect(result.text).toBe("dinsdag, 10 januari");
95
96 expect(result.start).not.toBeNull();
97 expect(result.start.get("year")).toBe(2013);
98 expect(result.start.get("month")).toBe(1);
99 expect(result.start.get("day")).toBe(10);
100 expect(result.start.get("weekday")).toBe(2);
101
102 expect(result.start).toBeDate(new Date(2013, 1 - 1, 10, 12));
103 });
104
105 testSingleCase(chrono.nl, "De deadline is di, 10 januari", new Date(2012, 7, 10), (result) => {
106 expect(result.index).toBe(15);
107 expect(result.text).toBe("di, 10 januari");
108
109 expect(result.start).not.toBeNull();
110 expect(result.start.get("year")).toBe(2013);
111 expect(result.start.get("month")).toBe(1);
112 expect(result.start.get("day")).toBe(10);
113 expect(result.start.get("weekday")).toBe(2);
114
115 expect(result.start).toBeDate(new Date(2013, 1 - 1, 10, 12));
116 });
117
118 testSingleCase(chrono.nl, "31ste maart 2016", new Date(2012, 7, 10), (result) => {
119 expect(result.index).toBe(0);
120 expect(result.text).toBe("31ste maart 2016");
121
122 expect(result.start).not.toBeNull();
123 expect(result.start.get("year")).toBe(2016);
124 expect(result.start.get("month")).toBe(3);
125 expect(result.start.get("day")).toBe(31);
126
127 expect(result.start).toBeDate(new Date(2016, 3 - 1, 31, 12));
128 });
129
130 testSingleCase(chrono.nl, "23ste februari 2016", new Date(2012, 7, 10), (result) => {
131 expect(result.index).toBe(0);
132 expect(result.text).toBe("23ste februari 2016");
133
134 expect(result.start).not.toBeNull();
135 expect(result.start.get("year")).toBe(2016);
136 expect(result.start.get("month")).toBe(2);
137 expect(result.start.get("day")).toBe(23);
138
139 expect(result.start).toBeDate(new Date(2016, 2 - 1, 23, 12));
140 });
141});
142
143test("Test - Range expression", () => {
144 testSingleCase(chrono.nl, "10 - 22 augustus 2012", new Date(2012, 7, 10), (result) => {
145 expect(result.index).toBe(0);
146 expect(result.text).toBe("10 - 22 augustus 2012");
147
148 expect(result.start).not.toBeNull();
149 expect(result.start.get("year")).toBe(2012);
150 expect(result.start.get("month")).toBe(8);
151 expect(result.start.get("day")).toBe(10);
152
153 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
154
155 expect(result.end).not.toBeNull();
156 expect(result.end.get("year")).toBe(2012);
157 expect(result.end.get("month")).toBe(8);
158 expect(result.end.get("day")).toBe(22);
159
160 expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
161 });
162
163 testSingleCase(chrono.nl, "10 tot 22 augustus 2012", new Date(2012, 7, 10), (result) => {
164 expect(result.index).toBe(0);
165 expect(result.text).toBe("10 tot 22 augustus 2012");
166
167 expect(result.start).not.toBeNull();
168 expect(result.start.get("year")).toBe(2012);
169 expect(result.start.get("month")).toBe(8);
170 expect(result.start.get("day")).toBe(10);
171
172 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
173
174 expect(result.end).not.toBeNull();
175 expect(result.end.get("year")).toBe(2012);
176 expect(result.end.get("month")).toBe(8);
177 expect(result.end.get("day")).toBe(22);
178
179 expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
180 });
181
182 testSingleCase(chrono.nl, "10 augustus - 12 september", new Date(2012, 7, 10), (result) => {
183 expect(result.index).toBe(0);
184 expect(result.text).toBe("10 augustus - 12 september");
185
186 expect(result.start).not.toBeNull();
187 expect(result.start.get("year")).toBe(2012);
188 expect(result.start.get("month")).toBe(8);
189 expect(result.start.get("day")).toBe(10);
190
191 expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
192
193 expect(result.end).not.toBeNull();
194 expect(result.end.get("year")).toBe(2012);
195 expect(result.end.get("month")).toBe(9);
196 expect(result.end.get("day")).toBe(12);
197
198 expect(result.end).toBeDate(new Date(2012, 9 - 1, 12, 12));
199 });
200
201 testSingleCase(chrono.nl, "10 augustus - 12 september 2013", new Date(2012, 7, 10), (result) => {
202 expect(result.index).toBe(0);
203 expect(result.text).toBe("10 augustus - 12 september 2013");
204
205 expect(result.start).not.toBeNull();
206 expect(result.start.get("year")).toBe(2013);
207 expect(result.start.get("month")).toBe(8);
208 expect(result.start.get("day")).toBe(10);
209
210 expect(result.start).toBeDate(new Date(2013, 8 - 1, 10, 12));
211
212 expect(result.end).not.toBeNull();
213 expect(result.end.get("year")).toBe(2013);
214 expect(result.end.get("month")).toBe(9);
215 expect(result.end.get("day")).toBe(12);
216
217 expect(result.end).toBeDate(new Date(2013, 9 - 1, 12, 12));
218 });
219});
220
221test("Test - Combined expression", () => {
222 testSingleCase(chrono.nl, "12de juli om 19:00", new Date(2012, 7, 10), (result) => {
223 expect(result.index).toBe(0);
224 expect(result.text).toBe("12de juli om 19:00");
225
226 expect(result.start).not.toBeNull();
227 expect(result.start.get("year")).toBe(2012);
228 expect(result.start.get("month")).toBe(7);
229 expect(result.start.get("day")).toBe(12);
230
231 expect(result.start).toBeDate(new Date(2012, 7 - 1, 12, 19, 0));
232 });
233
234 testSingleCase(chrono.nl, "5 mei 12:00", new Date(2012, 7, 10), (result) => {
235 expect(result.index).toBe(0);
236 expect(result.text).toBe("5 mei 12:00");
237
238 expect(result.start).not.toBeNull();
239 expect(result.start.get("year")).toBe(2012);
240 expect(result.start.get("month")).toBe(5);
241 expect(result.start.get("day")).toBe(5);
242
243 expect(result.start).toBeDate(new Date(2012, 5 - 1, 5, 12, 0));
244 });
245
246 testSingleCase(chrono.nl, "7 mei 11:00", new Date(2012, 7, 10), (result) => {
247 expect(result.index).toBe(0);
248 expect(result.text).toBe("7 mei 11:00");
249
250 expect(result.start).not.toBeNull();
251 expect(result.start.get("year")).toBe(2012);
252 expect(result.start.get("month")).toBe(5);
253 expect(result.start.get("day")).toBe(7);
254 expect(result.start.get("hour")).toBe(11);
255
256 expect(result.start).toBeDate(new Date(2012, 5 - 1, 7, 11, 0));
257 });
258});
259
260test("Test - Ordinal Words", () => {
261 testSingleCase(chrono.nl, "vierentwintigste mei", new Date(2012, 7, 10), (result) => {
262 expect(result.text).toBe("vierentwintigste mei");
263
264 expect(result.start).not.toBeNull();
265 expect(result.start.get("year")).toBe(2012);
266 expect(result.start.get("month")).toBe(5);
267 expect(result.start.get("day")).toBe(24);
268 });
269
270 testSingleCase(chrono.nl, "achtste tot elfde mei 2010", new Date(2012, 7, 10), (result) => {
271 expect(result.text).toBe("achtste tot elfde mei 2010");
272
273 expect(result.start).not.toBeNull();
274 expect(result.start.get("year")).toBe(2010);
275 expect(result.start.get("month")).toBe(5);
276 expect(result.start.get("day")).toBe(8);
277
278 expect(result.end).not.toBeNull();
279 expect(result.end.get("year")).toBe(2010);
280 expect(result.end.get("month")).toBe(5);
281 expect(result.end.get("day")).toBe(11);
282 });
283});
284
285test("Test - little endian date followed by time", () => {
286 testSingleCase(chrono.nl, "24ste oktober, 9:00", new Date(2017, 7 - 1, 7, 15), (result) => {
287 expect(result.text).toBe("24ste oktober, 9:00");
288 expect(result.start.get("day")).toBe(24);
289 expect(result.start.get("month")).toBe(10);
290 expect(result.start.get("hour")).toBe(9);
291 });
292
293 testSingleCase(chrono.nl, "24ste oktober, 21:00", new Date(2017, 7 - 1, 7, 15), (result) => {
294 expect(result.text).toBe("24ste oktober, 21:00");
295 expect(result.start.get("day")).toBe(24);
296 expect(result.start.get("month")).toBe(10);
297 expect(result.start.get("hour")).toBe(21);
298 });
299
300 testSingleCase(chrono.nl, "24 oktober, 21:00", new Date(2017, 7 - 1, 7, 15), (result) => {
301 expect(result.text).toBe("24 oktober, 21:00");
302 expect(result.start.get("day")).toBe(24);
303 expect(result.start.get("month")).toBe(10);
304 expect(result.start.get("hour")).toBe(21);
305 });
306});
307
308test("Test - year 90's parsing", () => {
309 testSingleCase(chrono.nl, "03 aug 96", new Date(2012, 7, 10), (result) => {
310 expect(result.text).toBe("03 aug 96");
311
312 expect(result.start.get("year")).toBe(1996);
313 expect(result.start.get("month")).toBe(8);
314 expect(result.start.get("day")).toBe(3);
315 });
316
317 testSingleCase(chrono.nl, "3 aug 96", new Date(2012, 7, 10), (result) => {
318 expect(result.text).toBe("3 aug 96");
319
320 expect(result.start.get("year")).toBe(1996);
321 expect(result.start.get("month")).toBe(8);
322 expect(result.start.get("day")).toBe(3);
323 });
324
325 testSingleCase(chrono.nl, "9 aug 96", new Date(2012, 7, 10), (result) => {
326 expect(result.text).toBe("9 aug 96");
327
328 expect(result.start.get("year")).toBe(1996);
329 expect(result.start.get("month")).toBe(8);
330 expect(result.start.get("day")).toBe(9);
331 });
332});
333
334test("Test - Forward Option", () => {
335 testSingleCase(chrono.nl, "22-23 februari om 19:00", new Date(2016, 3 - 1, 15), (result) => {
336 expect(result.start.get("year")).toBe(2016);
337 expect(result.start.get("month")).toBe(2);
338 expect(result.start.get("day")).toBe(22);
339 expect(result.start.get("hour")).toBe(19);
340
341 expect(result.end.get("year")).toBe(2016);
342 expect(result.end.get("month")).toBe(2);
343 expect(result.end.get("day")).toBe(23);
344 expect(result.end.get("hour")).toBe(19);
345 });
346
347 testSingleCase(chrono.nl, "22-23 februari om 19:00", new Date(2016, 3 - 1, 15), { forwardDate: true }, (result) => {
348 expect(result.start.get("year")).toBe(2017);
349 expect(result.start.get("month")).toBe(2);
350 expect(result.start.get("day")).toBe(22);
351 expect(result.start.get("hour")).toBe(19);
352
353 expect(result.end.get("year")).toBe(2017);
354 expect(result.end.get("month")).toBe(2);
355 expect(result.end.get("day")).toBe(23);
356 expect(result.end.get("hour")).toBe(19);
357 });
358});