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.
Files changed (69) hide show
  1. package/dist/chrono.js +711 -809
  2. package/dist/chrono.js.map +1 -1
  3. package/dist/chrono.min.js +1 -1
  4. package/dist/chrono.min.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/chrono.js +57 -59
  7. package/src/options.js +30 -29
  8. package/src/parsers/en/ENDeadlineFormatParser.js +9 -9
  9. package/src/result.js +119 -119
  10. package/test/de/de.test.js +36 -51
  11. package/test/de/de_casual.test.js +242 -141
  12. package/test/de/de_dash.test.js +5 -8
  13. package/test/de/de_deadline.test.js +151 -47
  14. package/test/de/de_little_endian.test.js +207 -58
  15. package/test/de/de_time_ago.test.js +167 -52
  16. package/test/de/de_time_exp.test.js +135 -121
  17. package/test/de/de_weekday.test.js +94 -31
  18. package/test/en/en.test.js +118 -89
  19. package/test/en/en_casual.test.js +149 -134
  20. package/test/en/en_dash.test.js +17 -11
  21. package/test/en/en_deadline.test.js +93 -69
  22. package/test/en/en_inter_std.test.js +28 -7
  23. package/test/en/en_little_endian.test.js +76 -26
  24. package/test/en/en_middle_endian.test.js +63 -21
  25. package/test/en/en_month.test.js +6 -2
  26. package/test/en/en_option_forward.test.js +120 -112
  27. package/test/en/en_relative.test.js +155 -172
  28. package/test/en/en_slash.test.js +156 -115
  29. package/test/en/en_time_ago.test.js +61 -21
  30. package/test/en/en_time_exp.test.js +228 -209
  31. package/test/en/en_time_from_now.test.js +70 -24
  32. package/test/en/en_time_later.test.js +16 -6
  33. package/test/en/en_weekday.test.js +39 -13
  34. package/test/es/es_casual.test.js +143 -120
  35. package/test/es/es_dash.test.js +7 -8
  36. package/test/es/es_deadline.test.js +69 -35
  37. package/test/es/es_little_endian.test.js +250 -145
  38. package/test/es/es_slash.test.js +17 -12
  39. package/test/es/es_time_ago.test.js +21 -7
  40. package/test/es/es_time_exp.test.js +154 -160
  41. package/test/fr/fr_casual.test.js +153 -124
  42. package/test/fr/fr_dash.test.js +13 -6
  43. package/test/fr/fr_deadline.test.js +163 -44
  44. package/test/fr/fr_little_endian.test.js +262 -81
  45. package/test/fr/fr_relative.test.js +188 -196
  46. package/test/fr/fr_slash.test.js +41 -14
  47. package/test/fr/fr_time_ago.test.js +30 -10
  48. package/test/fr/fr_time_exp.test.js +619 -567
  49. package/test/fr/fr_weekday.test.js +24 -8
  50. package/test/ja/ja_casual.test.js +41 -26
  51. package/test/ja/ja_standard.test.js +322 -207
  52. package/test/nl/nl.test.js +18 -20
  53. package/test/nl/nl_dash.test.js +26 -26
  54. package/test/nl/nl_little_endian.test.js +100 -51
  55. package/test/nl/nl_time_exp.test.js +37 -13
  56. package/test/nl/nl_weekday.test.js +39 -13
  57. package/test/pt/pt_casual.test.js +222 -156
  58. package/test/pt/pt_dash.test.js +7 -6
  59. package/test/pt/pt_deadline.test.js +51 -17
  60. package/test/pt/pt_little_endian.test.js +251 -144
  61. package/test/pt/pt_slash.test.js +38 -25
  62. package/test/pt/pt_time_ago.test.js +128 -80
  63. package/test/pt/pt_time_exp.test.js +191 -173
  64. package/test/test_util.js +1 -5
  65. package/test/zh/zh_hant_casual.test.js +184 -87
  66. package/test/zh/zh_hant_date.test.js +109 -75
  67. package/test/zh/zh_hant_deadline.test.js +131 -41
  68. package/test/zh/zh_hant_time_exp.test.js +184 -141
  69. package/test/zh/zh_hant_weekday.test.js +64 -22
@@ -1,10 +1,14 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase } from '../test_util';
1
+ var chrono = require('../../src/chrono');
3
2
 
4
3
  test("Test - Single Expression", function() {
5
4
 
6
5
 
7
- testSingleCase(chrono.casual, '雞而家全部都係雞', new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
6
+ var text = "雞而家全部都係雞";
7
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 8, 9, 10, 11));
8
+ expect(results.length).toBe(1);
9
+
10
+ var result = results[0];
11
+ if(result){
8
12
  expect(result.index).toBe(1);
9
13
  expect(result.text).toBe('而家');
10
14
 
@@ -17,11 +21,18 @@ test("Test - Single Expression", function() {
17
21
  expect(result.start.get('second')).toBe(10);
18
22
  expect(result.start.get('millisecond')).toBe(11);
19
23
 
20
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
21
- });
24
+ var resultDate = result.start.date();
25
+ var expectDate = new Date(2012, 7, 10, 8, 9, 10, 11);
26
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
27
+ }
28
+
22
29
 
30
+ var text = "雞今日全部都係雞";
31
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
32
+ expect(results.length).toBe(1);
23
33
 
24
- testSingleCase(chrono.casual, '雞今日全部都係雞', new Date(2012, 7, 10, 12), (result) => {
34
+ var result = results[0];
35
+ if(result){
25
36
  expect(result.index).toBe(1);
26
37
  expect(result.text).toBe('今日');
27
38
 
@@ -30,11 +41,18 @@ test("Test - Single Expression", function() {
30
41
  expect(result.start.get('month')).toBe(8);
31
42
  expect(result.start.get('day')).toBe(10);
32
43
 
33
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
34
- });
44
+ var resultDate = result.start.date();
45
+ var expectDate = new Date(2012, 7, 10, 12);
46
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
47
+ }
35
48
 
36
49
 
37
- testSingleCase(chrono.casual, '雞聽日全部都係雞', new Date(2012, 7, 10, 12), (result) => {
50
+ var text = "雞聽日全部都係雞";
51
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
52
+ expect(results.length).toBe(1);
53
+
54
+ var result = results[0];
55
+ if(result){
38
56
  expect(result.index).toBe(1);
39
57
  expect(result.text).toBe('聽日');
40
58
 
@@ -43,24 +61,52 @@ test("Test - Single Expression", function() {
43
61
  expect(result.start.get('month')).toBe(8);
44
62
  expect(result.start.get('day')).toBe(11);
45
63
 
46
- expect(result.start).toBeDate(new Date(2012, 7, 11, 12));
47
- });
64
+ var resultDate = result.start.date();
65
+ var expectDate = new Date(2012, 7, 11, 12);
66
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
67
+ }
48
68
 
49
69
  // Say.."Tomorrow" in the late night (1 AM)
50
- testSingleCase(chrono.casual, '雞明天全部都係雞', new Date(2012, 7, 10, 1), (result) => {
51
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
52
- });
53
-
54
- testSingleCase(chrono.casual, '雞後天凌晨全部都係雞', new Date(2012, 7, 10, 0, 0), (result) => {
55
- expect(result.start).toBeDate(new Date(2012, 7, 12, 0, 0));
56
- });
57
-
58
- testSingleCase(chrono.casual, '雞大前天凌晨全部都係雞', new Date(2012, 7, 10, 0, 0), (result) => {
59
- expect(result.start).toBeDate(new Date(2012, 7, 7, 0, 0));
60
- });
61
-
62
-
63
- testSingleCase(chrono.casual, '雞琴日全部都係雞', new Date(2012, 7, 10, 12), (result) => {
70
+ var text = "雞明天全部都係雞";
71
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 1));
72
+ expect(results.length).toBe(1);
73
+
74
+ var result = results[0];
75
+ if(result){
76
+ var resultDate = result.start.date();
77
+ var expectDate = new Date(2012, 7, 10, 12);
78
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
79
+ }
80
+
81
+ var text = "雞後天凌晨全部都係雞";
82
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 0, 0));
83
+ expect(results.length).toBe(1);
84
+
85
+ var result = results[0];
86
+ if(result){
87
+ var resultDate = result.start.date();
88
+ var expectDate = new Date(2012, 7, 12, 0, 0);
89
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
90
+ }
91
+
92
+ var text = "雞大前天凌晨全部都係雞";
93
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 0, 0));
94
+ expect(results.length).toBe(1);
95
+
96
+ var result = results[0];
97
+ if(result){
98
+ var resultDate = result.start.date();
99
+ var expectDate = new Date(2012, 7, 7, 0, 0);
100
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
101
+ }
102
+
103
+
104
+ var text = "雞琴日全部都係雞";
105
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
106
+ expect(results.length).toBe(1);
107
+
108
+ var result = results[0];
109
+ if(result){
64
110
  expect(result.index).toBe(1);
65
111
  expect(result.text).toBe('琴日');
66
112
 
@@ -69,11 +115,18 @@ test("Test - Single Expression", function() {
69
115
  expect(result.start.get('month')).toBe(8);
70
116
  expect(result.start.get('day')).toBe(9);
71
117
 
72
- expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
73
- });
118
+ var resultDate = result.start.date();
119
+ var expectDate = new Date(2012, 7, 9, 12);
120
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
121
+ }
74
122
 
75
123
 
76
- testSingleCase(chrono.casual, '雞昨天晚上全部都係雞', new Date(2012, 7, 10, 12), (result) => {
124
+ var text = "雞昨天晚上全部都係雞";
125
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
126
+ expect(results.length).toBe(1);
127
+
128
+ var result = results[0];
129
+ if(result){
77
130
  expect(result.index).toBe(1);
78
131
  expect(result.text).toBe('昨天晚上');
79
132
 
@@ -83,11 +136,18 @@ test("Test - Single Expression", function() {
83
136
  expect(result.start.get('day')).toBe(9);
84
137
  expect(result.start.get('hour')).toBe(22);
85
138
 
86
- expect(result.start).toBeDate(new Date(2012, 7, 9, 22));
87
- });
139
+ var resultDate = result.start.date();
140
+ var expectDate = new Date(2012, 7, 9, 22);
141
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
142
+ }
143
+
88
144
 
145
+ var text = "雞今日朝早全部都係雞";
146
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
147
+ expect(results.length).toBe(1);
89
148
 
90
- testSingleCase(chrono.casual, '雞今日朝早全部都係雞', new Date(2012, 7, 10, 12), (result) => {
149
+ var result = results[0];
150
+ if(result){
91
151
  expect(result.index).toBe(1);
92
152
  expect(result.text).toBe('今日朝早');
93
153
 
@@ -97,11 +157,18 @@ test("Test - Single Expression", function() {
97
157
  expect(result.start.get('day')).toBe(10);
98
158
  expect(result.start.get('hour')).toBe(6);
99
159
 
100
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6));
101
- });
160
+ var resultDate = result.start.date();
161
+ var expectDate = new Date(2012, 7, 10, 6);
162
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
163
+ }
164
+
102
165
 
166
+ var text = "雞晏晝全部都係雞";
167
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
168
+ expect(results.length).toBe(1);
103
169
 
104
- testSingleCase(chrono.casual, '雞晏晝全部都係雞', new Date(2012, 7, 10, 12), (result) => {
170
+ var result = results[0];
171
+ if(result){
105
172
  expect(result.index).toBe(1);
106
173
  expect(result.text).toBe('晏晝');
107
174
 
@@ -111,11 +178,18 @@ test("Test - Single Expression", function() {
111
178
  expect(result.start.get('day')).toBe(10);
112
179
  expect(result.start.get('hour')).toBe(15);
113
180
 
114
- expect(result.start).toBeDate(new Date(2012, 7, 10, 15));
115
- });
181
+ var resultDate = result.start.date();
182
+ var expectDate = new Date(2012, 7, 10, 15);
183
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
184
+ }
116
185
 
117
186
 
118
- testSingleCase(chrono.casual, '雞今晚全部都係雞', new Date(2012, 7, 10, 12), (result) => {
187
+ var text = "雞今晚全部都係雞";
188
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
189
+ expect(results.length).toBe(1);
190
+
191
+ var result = results[0];
192
+ if(result){
119
193
  expect(result.index).toBe(1);
120
194
  expect(result.text).toBe('今晚');
121
195
 
@@ -125,15 +199,22 @@ test("Test - Single Expression", function() {
125
199
  expect(result.start.get('day')).toBe(10);
126
200
  expect(result.start.get('hour')).toBe(22);
127
201
 
128
- expect(result.start).toBeDate(new Date(2012, 7, 10, 22));
129
- });
202
+ var resultDate = result.start.date();
203
+ var expectDate = new Date(2012, 7, 10, 22);
204
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
205
+ }
130
206
  });
131
207
 
132
208
 
133
209
  test("Test - Combined Expression", function() {
134
210
 
135
211
 
136
- testSingleCase(chrono.casual, '雞今日晏晝5點全部都係雞', new Date(2012, 7, 10, 12), (result) => {
212
+ var text = "雞今日晏晝5點全部都係雞";
213
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
214
+ expect(results.length).toBe(1);
215
+
216
+ var result = results[0];
217
+ if(result){
137
218
  expect(result.index).toBe(1);
138
219
  expect(result.text).toBe('今日晏晝5點');
139
220
 
@@ -143,14 +224,21 @@ test("Test - Combined Expression", function() {
143
224
  expect(result.start.get('day')).toBe(10);
144
225
  expect(result.start.get('hour')).toBe(17);
145
226
 
146
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
147
- });
227
+ var resultDate = result.start.date();
228
+ var expectDate = new Date(2012, 7, 10, 17);
229
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
230
+ }
148
231
  });
149
232
 
150
233
 
151
234
  test("Test - Casual date range", function() {
152
235
 
153
- testSingleCase(chrono.casual, '雞今日 - 下禮拜五全部都係雞', new Date(2012, 7, 4, 12), (result) => {
236
+ var text = "雞今日 - 下禮拜五全部都係雞";
237
+ var results = chrono.casual.parse(text, new Date(2012, 7, 4, 12));
238
+ expect(results.length).toBe(1);
239
+
240
+ var result = results[0];
241
+ if(result){
154
242
  expect(result.index).toBe(1);
155
243
  expect(result.text).toBe('今日 - 下禮拜五');
156
244
 
@@ -160,7 +248,9 @@ test("Test - Casual date range", function() {
160
248
  expect(result.start.get('day')).toBe(4);
161
249
  expect(result.start.get('hour')).toBe(12);
162
250
 
163
- expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
251
+ var resultDate = result.start.date();
252
+ var expectDate = new Date(2012, 7, 4, 12);
253
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
164
254
 
165
255
 
166
256
  expect(result.end).not.toBeNull();
@@ -169,12 +259,19 @@ test("Test - Casual date range", function() {
169
259
  expect(result.end.get('day')).toBe(10);
170
260
  expect(result.end.get('hour')).toBe(12);
171
261
 
172
- expect(result.end).toBeDate(new Date(2012, 7, 10, 12));
173
- });
262
+ var resultDate = result.end.date();
263
+ var expectDate = new Date(2012, 7, 10, 12);
264
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
265
+ }
174
266
 
175
267
 
176
268
 
177
- testSingleCase(chrono.casual, '雞今日 - 下禮拜五全部都係雞', new Date(2012, 7, 10, 12), (result) => {
269
+ var text = "雞今日 - 下禮拜五全部都係雞";
270
+ var results = chrono.casual.parse(text, new Date(2012, 7, 10, 12));
271
+ expect(results.length).toBe(1);
272
+
273
+ var result = results[0];
274
+ if(result){
178
275
  expect(result.index).toBe(1);
179
276
  expect(result.text).toBe('今日 - 下禮拜五');
180
277
 
@@ -184,7 +281,9 @@ test("Test - Casual date range", function() {
184
281
  expect(result.start.get('day')).toBe(10);
185
282
  expect(result.start.get('hour')).toBe(12);
186
283
 
187
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
284
+ var resultDate = result.start.date();
285
+ var expectDate = new Date(2012, 7, 10, 12);
286
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
188
287
 
189
288
 
190
289
  expect(result.end).not.toBeNull();
@@ -193,8 +292,10 @@ test("Test - Casual date range", function() {
193
292
  expect(result.end.get('day')).toBe(17);
194
293
  expect(result.end.get('hour')).toBe(12);
195
294
 
196
- expect(result.end).toBeDate(new Date(2012, 7, 17, 12));
197
- });
295
+ var resultDate = result.end.date();
296
+ var expectDate = new Date(2012, 7, 17, 12);
297
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
298
+ }
198
299
  });
199
300
 
200
301
 
@@ -203,41 +304,37 @@ test("Test - Casual date range", function() {
203
304
 
204
305
  test('Test - Random text', function() {
205
306
 
206
- testSingleCase(chrono, '今日夜晚', new Date(2012, 1-1, 1, 12), (result, text) => {
207
-
208
- expect(result.text).toBe(text);
209
- expect(result.start.get('year')).toBe(2012);
210
- expect(result.start.get('month')).toBe(1);
211
- expect(result.start.get('day')).toBe(1);
212
- expect(result.start.get('hour')).toBe(22);
213
- expect(result.start.get('meridiem') ).toBe(1);
214
- });
215
-
216
- testSingleCase(chrono, '今晚8點正', new Date(2012, 1-1, 1, 12), (result, text) => {
217
-
218
- expect(result.text).toBe(text);
219
- expect(result.start.get('hour') ).toBe(20);
220
- expect(result.start.get('year') ).toBe(2012);
221
- expect(result.start.get('month')).toBe(1);
222
- expect(result.start.get('day') ).toBe(1);
223
- expect(result.start.get('meridiem') ).toBe(1);
224
- });
225
-
226
-
227
- testSingleCase(chrono, '晚上8點', new Date(2012, 1-1, 1, 12), (result, text) => {
228
-
229
- expect(result.text).toBe(text);
230
- expect(result.start.get('hour') ).toBe(20);
231
- expect(result.start.get('year') ).toBe(2012);
232
- expect(result.start.get('month')).toBe(1);
233
- expect(result.start.get('day') ).toBe(1);
234
- expect(result.start.get('meridiem') ).toBe(1);
235
- });
236
-
237
-
238
- testSingleCase(chrono, '星期四', (result, text) => {
239
-
240
- expect(result.text).toBe(text);
241
- expect(result.start.get('weekday')).toBe(4);
242
- });
307
+ var text = "今日夜晚";
308
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
309
+ expect(result.text).toBe(text);
310
+ expect(result.start.get('year')).toBe(2012);
311
+ expect(result.start.get('month')).toBe(1);
312
+ expect(result.start.get('day')).toBe(1);
313
+ expect(result.start.get('hour')).toBe(22);
314
+ expect(result.start.get('meridiem') ).toBe(1);
315
+
316
+ var text = "今晚8點正";
317
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
318
+ expect(result.text).toBe(text);
319
+ expect(result.start.get('hour') ).toBe(20);
320
+ expect(result.start.get('year') ).toBe(2012);
321
+ expect(result.start.get('month')).toBe(1);
322
+ expect(result.start.get('day') ).toBe(1);
323
+ expect(result.start.get('meridiem') ).toBe(1);
324
+
325
+
326
+ var text = "晚上8點";
327
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
328
+ expect(result.text).toBe(text);
329
+ expect(result.start.get('hour') ).toBe(20);
330
+ expect(result.start.get('year') ).toBe(2012);
331
+ expect(result.start.get('month')).toBe(1);
332
+ expect(result.start.get('day') ).toBe(1);
333
+ expect(result.start.get('meridiem') ).toBe(1);
334
+
335
+
336
+ var text = "星期四";
337
+ var result = chrono.parse(text)[0];
338
+ expect(result.text).toBe(text);
339
+ expect(result.start.get('weekday')).toBe(4);
243
340
  });
@@ -1,84 +1,118 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase } from '../test_util';
3
-
1
+ var chrono = require('../../src/chrono');
4
2
  test("Test - Single Expression", function() {
5
3
 
6
- testSingleCase(chrono, '雞2016年9月3號全部都係雞', new Date(2012,8-1,10), (result) => {
7
- expect(result.index).toBe(1);
8
- expect(result.text).toBe('2016年9月3號');
9
-
10
- expect(result.start).not.toBeNull();
11
- expect(result.start.get('year')).toBe(2016);
12
- expect(result.start.get('month')).toBe(9);
13
- expect(result.start.get('day')).toBe(3);
14
-
15
- expect(result.start).toBeDate(new Date(2016, 9-1, 3, 12));
16
- });
17
-
18
- testSingleCase(chrono, '雞二零一六年,九月三號全部都係雞', new Date(2012,8-1,10), (result) => {
19
- expect(result.index).toBe(1);
20
- expect(result.text).toBe('二零一六年,九月三號');
21
-
22
- expect(result.start).not.toBeNull();
23
- expect(result.start.get('year')).toBe(2016);
24
- expect(result.start.get('month')).toBe(9);
25
- expect(result.start.get('day')).toBe(3);
26
-
27
- expect(result.start).toBeDate(new Date(2016, 9-1, 3, 12));
28
- });
29
-
30
- testSingleCase(chrono, '雞九月三號全部都係雞', new Date(2014,8-1,10), (result) => {
31
- expect(result.index).toBe(1);
32
- expect(result.text).toBe('九月三號');
33
-
34
- expect(result.start).not.toBeNull();
35
- expect(result.start.get('year')).toBe(2014);
36
- expect(result.start.get('month')).toBe(9);
37
- expect(result.start.get('day')).toBe(3);
38
-
39
- expect(result.start).toBeDate(new Date(2014, 9-1, 3, 12));
40
- });
4
+ var text = "雞2016年9月3號全部都係雞";
5
+ var results = chrono.parse(text, new Date(2012,8-1,10));
6
+ expect(results.length).toBe(1)
7
+ var result = results[0];
8
+ if (result) {
9
+ expect(result.index).toBe(1)
10
+ expect(result.text).toBe('2016年9月3號')
11
+
12
+ expect(result.start).not.toBeNull()
13
+ expect(result.start.get('year')).toBe(2016)
14
+ expect(result.start.get('month')).toBe(9)
15
+ expect(result.start.get('day')).toBe(3)
16
+
17
+ var resultDate = result.start.date();
18
+ var expectDate = new Date(2016, 9-1, 3, 12);
19
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
20
+ }
21
+
22
+ var text = "雞二零一六年,九月三號全部都係雞";
23
+ var results = chrono.parse(text, new Date(2012,8-1,10));
24
+ expect(results.length).toBe(1)
25
+ var result = results[0];
26
+ if (result) {
27
+ expect(result.index).toBe(1)
28
+ expect(result.text).toBe('二零一六年,九月三號')
29
+
30
+ expect(result.start).not.toBeNull()
31
+ expect(result.start.get('year')).toBe(2016)
32
+ expect(result.start.get('month')).toBe(9)
33
+ expect(result.start.get('day')).toBe(3)
34
+
35
+ var resultDate = result.start.date();
36
+ var expectDate = new Date(2016, 9-1, 3, 12);
37
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
38
+ }
39
+
40
+ var text = "雞九月三號全部都係雞";
41
+ var results = chrono.parse(text, new Date(2014,8-1,10));
42
+ expect(results.length).toBe(1)
43
+ var result = results[0];
44
+ if (result) {
45
+ expect(result.index).toBe(1)
46
+ expect(result.text).toBe('九月三號')
47
+
48
+ expect(result.start).not.toBeNull()
49
+ expect(result.start.get('year')).toBe(2014)
50
+ expect(result.start.get('month')).toBe(9)
51
+ expect(result.start.get('day')).toBe(3)
52
+
53
+ var resultDate = result.start.date();
54
+ var expectDate = new Date(2014, 9-1, 3, 12);
55
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
56
+ }
41
57
  });
42
58
 
43
59
 
44
60
  test("Test - Range Expression", function() {
45
61
 
46
- testSingleCase(chrono, '2016年9月3號-2017年10月24號', new Date(2012,8-1,10), (result) => {
47
- expect(result.index).toBe(0);
48
- expect(result.text).toBe('2016年9月3號-2017年10月24號');
49
-
50
- expect(result.start).not.toBeNull();
51
- expect(result.start.get('year')).toBe(2016);
52
- expect(result.start.get('month')).toBe(9);
53
- expect(result.start.get('day')).toBe(3);
54
-
55
- expect(result.start).toBeDate(new Date(2016, 9-1, 3, 12));
56
-
57
- expect(result.end).not.toBeNull();
58
- expect(result.end.get('year')).toBe(2017);
59
- expect(result.end.get('month')).toBe(10);
60
- expect(result.end.get('day')).toBe(24);
61
-
62
- expect(result.end).toBeDate(new Date(2017, 10-1, 24, 12));
63
- });
64
-
65
- testSingleCase(chrono, '二零一六年九月三號ー2017年10月24號', new Date(2012,8-1,10), (result) => {
66
- expect(result.index).toBe(0);
67
- expect(result.text).toBe('二零一六年九月三號ー2017年10月24號');
68
-
69
- expect(result.start).not.toBeNull();
70
- expect(result.start.get('year')).toBe(2016);
71
- expect(result.start.get('month')).toBe(9);
72
- expect(result.start.get('day')).toBe(3);
73
-
74
- expect(result.start).toBeDate(new Date(2016, 9-1, 3, 12));
75
-
76
- expect(result.end).not.toBeNull();
77
- expect(result.end.get('year')).toBe(2017);
78
- expect(result.end.get('month')).toBe(10);
79
- expect(result.end.get('day')).toBe(24);
80
-
81
- expect(result.end).toBeDate(new Date(2017, 10-1, 24, 12));
82
- });
62
+ var text = "2016年9月3號-2017年10月24號";
63
+ var results = chrono.parse(text, new Date(2012,8-1,10));
64
+ expect(results.length).toBe(1)
65
+
66
+ var result = results[0];
67
+ if (result) {
68
+ expect(result.index).toBe(0)
69
+ expect(result.text).toBe('2016年9月3號-2017年10月24號')
70
+
71
+ expect(result.start).not.toBeNull()
72
+ expect(result.start.get('year')).toBe(2016)
73
+ expect(result.start.get('month')).toBe(9)
74
+ expect(result.start.get('day')).toBe(3)
75
+
76
+ var resultDate = result.start.date();
77
+ var expectDate = new Date(2016, 9-1, 3, 12);
78
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
79
+
80
+ expect(result.end).not.toBeNull()
81
+ expect(result.end.get('year')).toBe(2017)
82
+ expect(result.end.get('month')).toBe(10)
83
+ expect(result.end.get('day')).toBe(24)
84
+
85
+ var resultDate = result.end.date();
86
+ var expectDate = new Date(2017, 10-1, 24, 12);
87
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
88
+ }
89
+
90
+ var text = "二零一六年九月三號ー2017年10月24號";
91
+ var results = chrono.parse(text, new Date(2012,8-1,10));
92
+ expect(results.length).toBe(1)
93
+
94
+ var result = results[0];
95
+ if (result) {
96
+ expect(result.index).toBe(0)
97
+ expect(result.text).toBe('二零一六年九月三號ー20171024號')
98
+
99
+ expect(result.start).not.toBeNull()
100
+ expect(result.start.get('year')).toBe(2016)
101
+ expect(result.start.get('month')).toBe(9)
102
+ expect(result.start.get('day')).toBe(3)
103
+
104
+ var resultDate = result.start.date();
105
+ var expectDate = new Date(2016, 9-1, 3, 12);
106
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
107
+
108
+ expect(result.end).not.toBeNull()
109
+ expect(result.end.get('year')).toBe(2017)
110
+ expect(result.end.get('month')).toBe(10)
111
+ expect(result.end.get('day')).toBe(24)
112
+
113
+ var resultDate = result.end.date();
114
+ var expectDate = new Date(2017, 10-1, 24, 12);
115
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
116
+ }
83
117
 
84
118
  });