1 | import * as chrono from "../../src/";
|
2 | import { testSingleCase, testUnexpectedResult } from "../test_util";
|
3 |
|
4 | test("Test - Casual date expression", function () {
|
5 | testSingleCase(chrono.de, "Die Deadline ist jetzt", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
6 | expect(result.index).toBe(17);
|
7 | expect(result.text).toBe("jetzt");
|
8 |
|
9 | expect(result.start).not.toBeNull();
|
10 | expect(result.start.get("year")).toBe(2012);
|
11 | expect(result.start.get("month")).toBe(8);
|
12 | expect(result.start.get("day")).toBe(10);
|
13 | expect(result.start.get("hour")).toBe(8);
|
14 | expect(result.start.get("minute")).toBe(9);
|
15 | expect(result.start.get("second")).toBe(10);
|
16 | expect(result.start.get("millisecond")).toBe(11);
|
17 |
|
18 | expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
|
19 | });
|
20 |
|
21 | testSingleCase(chrono.de, "Die Deadline ist heute", new Date(2012, 7, 10, 12), (result) => {
|
22 | expect(result.index).toBe(17);
|
23 | expect(result.text).toBe("heute");
|
24 |
|
25 | expect(result.start).not.toBeNull();
|
26 | expect(result.start.get("year")).toBe(2012);
|
27 | expect(result.start.get("month")).toBe(8);
|
28 | expect(result.start.get("day")).toBe(10);
|
29 |
|
30 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
|
31 | });
|
32 |
|
33 | testSingleCase(chrono.de, "Die Deadline ist morgen", new Date(2012, 7, 10, 12), (result) => {
|
34 | expect(result.index).toBe(17);
|
35 | expect(result.text).toBe("morgen");
|
36 |
|
37 | expect(result.start.get("year")).toBe(2012);
|
38 | expect(result.start.get("month")).toBe(8);
|
39 | expect(result.start.get("day")).toBe(11);
|
40 |
|
41 | });
|
42 |
|
43 | testSingleCase(chrono.de, "Die Deadline ist morgen", new Date(2012, 8 - 1, 10, 1), (result) => {
|
44 | expect(result.start.get("year")).toBe(2012);
|
45 | expect(result.start.get("month")).toBe(8);
|
46 | expect(result.start.get("day")).toBe(11);
|
47 | expect(result.start.get("hour")).toBe(1);
|
48 | });
|
49 |
|
50 | testSingleCase(chrono.de, "Die Deadline war gestern", new Date(2012, 7, 10, 12), (result) => {
|
51 | expect(result.index).toBe(17);
|
52 | expect(result.text).toBe("gestern");
|
53 |
|
54 | expect(result.start).not.toBeNull();
|
55 | expect(result.start.get("year")).toBe(2012);
|
56 | expect(result.start.get("month")).toBe(8);
|
57 | expect(result.start.get("day")).toBe(9);
|
58 |
|
59 | expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
|
60 | });
|
61 |
|
62 | testSingleCase(chrono.de, "Die Deadline war letzte Nacht ", new Date(2012, 7, 10, 12), (result) => {
|
63 | expect(result.index).toBe(17);
|
64 | expect(result.text).toBe("letzte Nacht");
|
65 |
|
66 | expect(result.start).not.toBeNull();
|
67 | expect(result.start.get("year")).toBe(2012);
|
68 | expect(result.start.get("month")).toBe(8);
|
69 | expect(result.start.get("day")).toBe(9);
|
70 | expect(result.start.get("hour")).toBe(0);
|
71 |
|
72 | expect(result.start).toBeDate(new Date(2012, 7, 9, 0));
|
73 | });
|
74 |
|
75 | testSingleCase(chrono.de, "Die Deadline war gestern Nacht ", new Date(2012, 7, 10, 12), (result) => {
|
76 | expect(result.index).toBe(17);
|
77 | expect(result.text).toBe("gestern Nacht");
|
78 |
|
79 | expect(result.start).not.toBeNull();
|
80 | expect(result.start.get("year")).toBe(2012);
|
81 | expect(result.start.get("month")).toBe(8);
|
82 | expect(result.start.get("day")).toBe(9);
|
83 | expect(result.start.get("hour")).toBe(22);
|
84 |
|
85 | expect(result.start).toBeDate(new Date(2012, 7, 9, 22));
|
86 | });
|
87 |
|
88 | testSingleCase(chrono.de, "Die Deadline war heute Morgen ", new Date(2012, 7, 10, 12), (result) => {
|
89 | expect(result.index).toBe(17);
|
90 | expect(result.text).toBe("heute Morgen");
|
91 |
|
92 | expect(result.start).not.toBeNull();
|
93 | expect(result.start.get("year")).toBe(2012);
|
94 | expect(result.start.get("month")).toBe(8);
|
95 | expect(result.start.get("day")).toBe(10);
|
96 | expect(result.start.get("hour")).toBe(6);
|
97 |
|
98 | expect(result.start).toBeDate(new Date(2012, 7, 10, 6));
|
99 | });
|
100 |
|
101 | testSingleCase(chrono.de, "Die Deadline war heute Nachmittag ", new Date(2012, 7, 10, 12), (result) => {
|
102 | expect(result.index).toBe(17);
|
103 | expect(result.text).toBe("heute Nachmittag");
|
104 |
|
105 | expect(result.start).not.toBeNull();
|
106 | expect(result.start.get("year")).toBe(2012);
|
107 | expect(result.start.get("month")).toBe(8);
|
108 | expect(result.start.get("day")).toBe(10);
|
109 | expect(result.start.get("hour")).toBe(15);
|
110 |
|
111 | expect(result.start).toBeDate(new Date(2012, 7, 10, 15));
|
112 | });
|
113 |
|
114 | testSingleCase(chrono.de, "Die Deadline war heute Abend ", new Date(2012, 7, 10, 12), (result) => {
|
115 | expect(result.index).toBe(17);
|
116 | expect(result.text).toBe("heute Abend");
|
117 |
|
118 | expect(result.start).not.toBeNull();
|
119 | expect(result.start.get("year")).toBe(2012);
|
120 | expect(result.start.get("month")).toBe(8);
|
121 | expect(result.start.get("day")).toBe(10);
|
122 | expect(result.start.get("hour")).toBe(18);
|
123 |
|
124 | expect(result.start).toBeDate(new Date(2012, 7, 10, 18));
|
125 | });
|
126 | });
|
127 |
|
128 | test("Test - Casual time expression", function () {
|
129 | testSingleCase(chrono.de, "Die Deadline ist mittags", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
|
130 | expect(result.index).toBe(17);
|
131 | expect(result.text).toBe("mittags");
|
132 |
|
133 | expect(result.start.get("year")).toBe(2012);
|
134 | expect(result.start.get("month")).toBe(8);
|
135 | expect(result.start.get("day")).toBe(10);
|
136 | expect(result.start.get("hour")).toBe(12);
|
137 | expect(result.start.get("minute")).toBe(0);
|
138 | expect(result.start.get("second")).toBe(0);
|
139 | });
|
140 |
|
141 | testSingleCase(chrono.de, "um Mitternacht", new Date(2012, 7, 10, 12), (result) => {
|
142 | expect(result.start.get("year")).toBe(2012);
|
143 | expect(result.start.get("month")).toBe(8);
|
144 | expect(result.start.get("day")).toBe(11);
|
145 | expect(result.start.get("hour")).toBe(0);
|
146 | expect(result.start.get("minute")).toBe(0);
|
147 | expect(result.start.get("second")).toBe(0);
|
148 | });
|
149 |
|
150 | testSingleCase(chrono.de, "um Mitternacht", new Date(2012, 7, 10, 1), (result) => {
|
151 | expect(result.start.get("year")).toBe(2012);
|
152 | expect(result.start.get("month")).toBe(8);
|
153 | expect(result.start.get("day")).toBe(10);
|
154 | expect(result.start.get("hour")).toBe(0);
|
155 | expect(result.start.get("minute")).toBe(0);
|
156 | expect(result.start.get("second")).toBe(0);
|
157 | });
|
158 | });
|
159 |
|
160 | test("Test - Combined Expression", function () {
|
161 | testSingleCase(chrono.de, "Die Deadline ist heute 17 Uhr", new Date(2012, 7, 10, 12), (result) => {
|
162 | expect(result.index).toBe(17);
|
163 | expect(result.text).toBe("heute 17 Uhr");
|
164 |
|
165 | expect(result.start).not.toBeNull();
|
166 | expect(result.start.get("year")).toBe(2012);
|
167 | expect(result.start.get("month")).toBe(8);
|
168 | expect(result.start.get("day")).toBe(10);
|
169 | expect(result.start.get("hour")).toBe(17);
|
170 |
|
171 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
|
172 | });
|
173 |
|
174 | testSingleCase(chrono.de, "Die Deadline ist heute um 17 Uhr", new Date(2012, 7, 10, 12), (result) => {
|
175 | expect(result.index).toBe(17);
|
176 | expect(result.text).toBe("heute um 17 Uhr");
|
177 |
|
178 | expect(result.start).not.toBeNull();
|
179 | expect(result.start.get("year")).toBe(2012);
|
180 | expect(result.start.get("month")).toBe(8);
|
181 | expect(result.start.get("day")).toBe(10);
|
182 | expect(result.start.get("hour")).toBe(17);
|
183 |
|
184 | expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
|
185 | });
|
186 | });
|
187 |
|
188 | test("Test - Casual date range", function () {
|
189 | testSingleCase(chrono.de, "Der Event ist heute - nächsten Freitag", new Date(2012, 7, 4, 12), (result) => {
|
190 | expect(result.index).toBe(14);
|
191 | expect(result.text).toBe("heute - nächsten Freitag");
|
192 |
|
193 | expect(result.start).not.toBeNull();
|
194 | expect(result.start.get("year")).toBe(2012);
|
195 | expect(result.start.get("month")).toBe(8);
|
196 | expect(result.start.get("day")).toBe(4);
|
197 | expect(result.start.get("hour")).toBe(12);
|
198 |
|
199 | expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
|
200 |
|
201 | expect(result.end).not.toBeNull();
|
202 | expect(result.end.get("year")).toBe(2012);
|
203 | expect(result.end.get("month")).toBe(8);
|
204 | expect(result.end.get("day")).toBe(10);
|
205 | expect(result.end.get("hour")).toBe(12);
|
206 |
|
207 | expect(result.end).toBeDate(new Date(2012, 7, 10, 12));
|
208 | });
|
209 |
|
210 | testSingleCase(chrono.de, "Der Event ist heute - nächsten Freitag", new Date(2012, 7, 10, 12), (result) => {
|
211 | expect(result.index).toBe(14);
|
212 | expect(result.text).toBe("heute - nächsten Freitag");
|
213 |
|
214 | expect(result.start).not.toBeNull();
|
215 | expect(result.start.get("year")).toBe(2012);
|
216 | expect(result.start.get("month")).toBe(8);
|
217 | expect(result.start.get("day")).toBe(10);
|
218 | expect(result.start.get("hour")).toBe(12);
|
219 |
|
220 | expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
|
221 |
|
222 | expect(result.end).not.toBeNull();
|
223 | expect(result.end.get("year")).toBe(2012);
|
224 | expect(result.end.get("month")).toBe(8);
|
225 | expect(result.end.get("day")).toBe(17);
|
226 | expect(result.end.get("hour")).toBe(12);
|
227 |
|
228 | expect(result.end).toBeDate(new Date(2012, 7, 17, 12));
|
229 | });
|
230 | });
|
231 |
|
232 | test("Test - Random text", function () {
|
233 | testSingleCase(chrono.de, "heute Nacht", new Date(2012, 1 - 1, 1, 12), (result, text) => {
|
234 | expect(result.text).toBe(text);
|
235 | expect(result.start.get("year")).toBe(2012);
|
236 | expect(result.start.get("month")).toBe(1);
|
237 | expect(result.start.get("day")).toBe(1);
|
238 | expect(result.start.get("hour")).toBe(22);
|
239 | expect(result.start.get("meridiem")).toBe(1);
|
240 | });
|
241 |
|
242 | testSingleCase(chrono.de, "heute Nacht um 20 Uhr", new Date(2012, 1 - 1, 1, 12), (result, text) => {
|
243 | expect(result.text).toBe(text);
|
244 | expect(result.start.get("hour")).toBe(20);
|
245 | expect(result.start.get("year")).toBe(2012);
|
246 | expect(result.start.get("month")).toBe(1);
|
247 | expect(result.start.get("day")).toBe(1);
|
248 | expect(result.start.get("meridiem")).toBe(1);
|
249 | });
|
250 |
|
251 | testSingleCase(chrono.de, "heute Abend um 8", new Date(2012, 1 - 1, 1, 12), (result, text) => {
|
252 | expect(result.text).toBe(text);
|
253 | expect(result.start.get("hour")).toBe(20);
|
254 | expect(result.start.get("year")).toBe(2012);
|
255 | expect(result.start.get("month")).toBe(1);
|
256 | expect(result.start.get("day")).toBe(1);
|
257 | expect(result.start.get("meridiem")).toBe(1);
|
258 | });
|
259 |
|
260 | testSingleCase(chrono.de, "8 Uhr abends", new Date(2012, 1 - 1, 1, 12), (result, text) => {
|
261 | expect(result.text).toBe(text);
|
262 | expect(result.start.get("hour")).toBe(20);
|
263 | expect(result.start.get("year")).toBe(2012);
|
264 | expect(result.start.get("month")).toBe(1);
|
265 | expect(result.start.get("day")).toBe(1);
|
266 | expect(result.start.get("meridiem")).toBe(1);
|
267 | });
|
268 |
|
269 | testSingleCase(chrono.de, "Do", (result, text) => {
|
270 | expect(result.text).toBe(text);
|
271 | expect(result.start.get("weekday")).toBe(4);
|
272 | });
|
273 |
|
274 | testSingleCase(chrono.de, "Donnerstag", (result, text) => {
|
275 | expect(result.text).toBe(text);
|
276 | expect(result.start.get("weekday")).toBe(4);
|
277 | });
|
278 |
|
279 | testSingleCase(chrono.de, "gestern Nachmittag", new Date(2016, 10 - 1, 1), (result, text) => {
|
280 | expect(result.text).toBe(text);
|
281 | expect(result.start.get("year")).toBe(2016);
|
282 | expect(result.start.get("month")).toBe(9);
|
283 | expect(result.start.get("day")).toBe(30);
|
284 | expect(result.start.get("hour")).toBe(15);
|
285 | });
|
286 |
|
287 | testSingleCase(chrono.de, "morgen Morgen", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
288 | expect(result.text).toBe(text);
|
289 | expect(result.start.get("year")).toBe(2016);
|
290 | expect(result.start.get("month")).toBe(10);
|
291 | expect(result.start.get("day")).toBe(2);
|
292 | expect(result.start.get("hour")).toBe(6);
|
293 | });
|
294 |
|
295 | testSingleCase(chrono.de, "uebermorgen Abend", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
296 | expect(result.text).toBe(text);
|
297 | expect(result.start.get("year")).toBe(2016);
|
298 | expect(result.start.get("month")).toBe(10);
|
299 | expect(result.start.get("day")).toBe(3);
|
300 | expect(result.start.get("hour")).toBe(18);
|
301 | });
|
302 |
|
303 | testSingleCase(chrono.de, "vorgestern Vormittag", new Date(2016, 10 - 1, 1), (result, text) => {
|
304 | expect(result.text).toBe(text);
|
305 | expect(result.start.get("year")).toBe(2016);
|
306 | expect(result.start.get("month")).toBe(9);
|
307 | expect(result.start.get("day")).toBe(29);
|
308 | expect(result.start.get("hour")).toBe(9);
|
309 | });
|
310 | });
|
311 |
|
312 | test("Test - Random negative text", function () {
|
313 | testUnexpectedResult(chrono.de, "nicheute");
|
314 |
|
315 | testUnexpectedResult(chrono.de, "heutenicht");
|
316 |
|
317 | testUnexpectedResult(chrono.de, "angestern");
|
318 |
|
319 | testUnexpectedResult(chrono.de, "jetztig");
|
320 |
|
321 | testUnexpectedResult(chrono.de, "ljetztlich");
|
322 | });
|