chrono-node 1.3.5 → 1.3.11
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/README.md +107 -67
- package/bower.json +1 -1
- package/chrono.js +1249 -1076
- package/chrono.map.json +1 -1
- package/chrono.min.js +101 -101
- package/package.json +11 -15
- package/src/chrono.js +2 -3
- package/src/options.js +3 -3
- package/src/parsers/{DE → de}/DECasualDateParser.js +0 -0
- package/src/parsers/{DE → de}/DEDeadlineFormatParser.js +0 -0
- package/src/parsers/{DE → de}/DEMonthNameLittleEndianParser.js +0 -0
- package/src/parsers/{DE → de}/DEMonthNameParser.js +0 -0
- package/src/parsers/{DE → de}/DESlashDateFormatParser.js +0 -0
- package/src/parsers/{DE → de}/DETimeAgoFormatParser.js +0 -0
- package/src/parsers/{DE → de}/DETimeExpressionParser.js +0 -0
- package/src/parsers/{DE → de}/DEWeekdayParser.js +4 -4
- package/src/parsers/{EN → en}/ENCasualDateParser.js +0 -0
- package/src/parsers/en/ENCasualTimeParser.js +60 -0
- package/src/parsers/{EN → en}/ENDeadlineFormatParser.js +6 -6
- package/src/parsers/{EN → en}/ENISOFormatParser.js +0 -0
- package/src/parsers/{EN → en}/ENMonthNameLittleEndianParser.js +21 -23
- package/src/parsers/{EN → en}/ENMonthNameMiddleEndianParser.js +2 -2
- package/src/parsers/{EN → en}/ENMonthNameParser.js +1 -1
- package/src/parsers/{EN → en}/ENRelativeDateFormatParser.js +40 -2
- package/src/parsers/{EN → en}/ENSlashDateFormatParser.js +5 -1
- package/src/parsers/{EN → en}/ENSlashDateFormatStartWithYearParser.js +8 -2
- package/src/parsers/{EN → en}/ENSlashMonthFormatParser.js +0 -0
- package/src/parsers/en/ENTimeAgoFormatParser.js +69 -0
- package/src/parsers/{EN → en}/ENTimeExpressionParser.js +24 -11
- package/src/parsers/en/ENTimeLaterFormatParser.js +77 -0
- package/src/parsers/{EN → en}/ENWeekdayParser.js +0 -0
- package/src/parsers/{ES → es}/ESCasualDateParser.js +0 -0
- package/src/parsers/{ES → es}/ESDeadlineFormatParser.js +0 -0
- package/src/parsers/{ES → es}/ESMonthNameLittleEndianParser.js +2 -2
- package/src/parsers/{ES → es}/ESSlashDateFormatParser.js +0 -0
- package/src/parsers/{ES → es}/ESTimeAgoFormatParser.js +0 -0
- package/src/parsers/{ES → es}/ESTimeExpressionParser.js +0 -0
- package/src/parsers/{ES → es}/ESWeekdayParser.js +1 -1
- package/src/parsers/{FR → fr}/FRCasualDateParser.js +0 -0
- package/src/parsers/{FR → fr}/FRDeadlineFormatParser.js +0 -0
- package/src/parsers/{FR → fr}/FRMonthNameLittleEndianParser.js +0 -0
- package/src/parsers/{FR → fr}/FRRelativeDateFormatParser.js +0 -0
- package/src/parsers/{FR → fr}/FRSlashDateFormatParser.js +41 -11
- package/src/parsers/{FR → fr}/FRTimeAgoFormatParser.js +0 -0
- package/src/parsers/{FR → fr}/FRTimeExpressionParser.js +0 -0
- package/src/parsers/{FR → fr}/FRWeekdayParser.js +1 -1
- package/src/parsers/{JP → ja}/JPCasualDateParser.js +0 -0
- package/src/parsers/{JP → ja}/JPStandardParser.js +0 -0
- package/src/parsers/parser.js +50 -50
- package/src/parsers/{ZH-Hant → zh-Hant}/ZHHantCasualDateParser.js +18 -2
- package/src/parsers/{ZH-Hant → zh-Hant}/ZHHantDateParser.js +0 -0
- package/src/parsers/{ZH-Hant → zh-Hant}/ZHHantDeadlineFormatParser.js +0 -0
- package/src/parsers/{ZH-Hant → zh-Hant}/ZHHantTimeExpressionParser.js +36 -4
- package/src/parsers/{ZH-Hant → zh-Hant}/ZHHantWeekdayParser.js +1 -1
- package/src/refiners/ExtractTimezoneAbbrRefiner.js +19 -10
- package/src/refiners/ForwardDateRefiner.js +1 -1
- package/src/refiners/{DE → de}/DEMergeDateRangeRefiner.js +1 -1
- package/src/refiners/{DE → de}/DEMergeDateTimeRefiner.js +3 -3
- package/src/refiners/{EN → en}/ENMergeDateRangeRefiner.js +0 -0
- package/src/refiners/{EN → en}/ENMergeDateTimeRefiner.js +15 -2
- package/src/refiners/{EN → en}/ENMergeWeekdayRefiner.js +0 -0
- package/src/refiners/{EN → en}/ENPrioritizeSpecificDateRefiner.js +0 -0
- package/src/refiners/{FR → fr}/FRMergeDateRangeRefiner.js +0 -0
- package/src/refiners/{FR → fr}/FRMergeDateTimeRefiner.js +1 -1
- package/src/refiners/{JP → ja}/JPMergeDateRangeRefiner.js +1 -1
- package/src/refiners/refiner.js +12 -12
- package/src/result.js +3 -1
- package/src/timezone.js +2 -0
- package/src/utils/EN.js +68 -2
- package/test/de/de.test.js +51 -0
- package/test/de/de_casual.test.js +432 -0
- package/test/de/de_dash.test.js +6 -0
- package/test/de/de_deadline.test.js +244 -0
- package/test/de/de_little_endian.test.js +459 -0
- package/test/de/de_time_ago.test.js +313 -0
- package/test/de/de_time_exp.test.js +166 -0
- package/test/de/de_weekday.test.js +235 -0
- package/test/en/en.test.js +250 -0
- package/test/en/en_casual.test.js +461 -0
- package/test/en/en_dash.test.js +31 -0
- package/test/en/en_deadline.test.js +366 -0
- package/test/{test_example.js → en/en_example.test.js} +7 -18
- package/test/en/en_inter_std.test.js +269 -0
- package/test/en/en_little_endian.test.js +566 -0
- package/test/en/en_middle_endian.test.js +552 -0
- package/test/en/en_month.test.js +113 -0
- package/test/en/en_option_forward.test.js +156 -0
- package/test/en/en_relative.test.js +228 -0
- package/test/en/en_slash.test.js +450 -0
- package/test/en/en_time_ago.test.js +374 -0
- package/test/en/en_time_exp.test.js +722 -0
- package/test/en/en_time_from_now.test.js +371 -0
- package/test/en/en_time_later.test.js +95 -0
- package/test/en/en_weekday.test.js +301 -0
- package/test/es/es_casual.test.js +258 -0
- package/test/es/es_dash.test.js +13 -0
- package/test/es/es_deadline.test.js +85 -0
- package/test/es/es_little_endian.test.js +350 -0
- package/test/es/es_slash.test.js +24 -0
- package/test/es/es_time_ago.test.js +137 -0
- package/test/es/es_time_exp.test.js +240 -0
- package/test/fr/fr_casual.test.js +454 -0
- package/test/fr/fr_dash.test.js +26 -0
- package/test/fr/fr_deadline.test.js +244 -0
- package/test/fr/fr_little_endian.test.js +576 -0
- package/test/fr/fr_relative.test.js +198 -0
- package/test/fr/fr_slash.test.js +62 -0
- package/test/fr/fr_time_ago.test.js +194 -0
- package/test/fr/fr_time_exp.test.js +960 -0
- package/test/fr/fr_weekday.test.js +200 -0
- package/test/ja/ja_casual.test.js +51 -0
- package/test/ja/ja_standard.test.js +170 -0
- package/test/system.test.js +207 -0
- package/test/zh/zh_hant_casual.test.js +340 -0
- package/test/zh/zh_hant_date.test.js +118 -0
- package/test/zh/zh_hant_deadline.test.js +213 -0
- package/test/zh/zh_hant_time_exp.test.js +226 -0
- package/test/zh/zh_hant_weekday.test.js +160 -0
- package/.npmignore +0 -11
- package/src/parsers/EN/ENCasualTimeParser.js +0 -53
- package/src/parsers/EN/ENTimeAgoFormatParser.js +0 -130
- package/src/parsers/EN/ENTimeFromNowFormatParser.js +0 -119
- package/test/test_de.js +0 -62
- package/test/test_de_casual.js +0 -443
- package/test/test_de_dash.js +0 -17
- package/test/test_de_deadline.js +0 -255
- package/test/test_de_little_endian.js +0 -470
- package/test/test_de_time_ago.js +0 -324
- package/test/test_de_time_exp.js +0 -177
- package/test/test_de_weekday.js +0 -246
- package/test/test_en.js +0 -249
- package/test/test_en_casual.js +0 -448
- package/test/test_en_dash.js +0 -42
- package/test/test_en_deadline.js +0 -311
- package/test/test_en_inter_std.js +0 -272
- package/test/test_en_little_endian.js +0 -529
- package/test/test_en_middle_endian.js +0 -563
- package/test/test_en_month.js +0 -124
- package/test/test_en_option_forward.js +0 -167
- package/test/test_en_relative.js +0 -206
- package/test/test_en_slash.js +0 -370
- package/test/test_en_time_ago.js +0 -385
- package/test/test_en_time_exp.js +0 -663
- package/test/test_en_time_from_now.js +0 -345
- package/test/test_en_weekday.js +0 -312
- package/test/test_es_casual.js +0 -269
- package/test/test_es_dash.js +0 -24
- package/test/test_es_deadline.js +0 -96
- package/test/test_es_little_endian.js +0 -361
- package/test/test_es_slash.js +0 -35
- package/test/test_es_time_ago.js +0 -148
- package/test/test_es_time_exp.js +0 -251
- package/test/test_fr_casual.js +0 -465
- package/test/test_fr_dash.js +0 -37
- package/test/test_fr_deadline.js +0 -255
- package/test/test_fr_little_endian.js +0 -568
- package/test/test_fr_relative.js +0 -209
- package/test/test_fr_slash.js +0 -54
- package/test/test_fr_time_ago.js +0 -205
- package/test/test_fr_time_exp.js +0 -971
- package/test/test_fr_weekday.js +0 -211
- package/test/test_jp_casual.js +0 -62
- package/test/test_jp_standard.js +0 -181
- package/test/test_system.js +0 -178
- package/test/test_zh_hant_casual.js +0 -329
- package/test/test_zh_hant_date.js +0 -129
- package/test/test_zh_hant_deadline.js +0 -224
- package/test/test_zh_hant_time_exp.js +0 -210
- package/test/test_zh_hant_weekday.js +0 -171
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
var chrono = require('../../src/chrono');
|
|
2
|
+
|
|
3
|
+
test("Test - Single expression", function() {
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var text = "10 Agosto 2012";
|
|
7
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
8
|
+
expect(results.length).toBe(1)
|
|
9
|
+
|
|
10
|
+
var result = results[0];
|
|
11
|
+
if (result) {
|
|
12
|
+
expect(result.start).not.toBeNull()
|
|
13
|
+
expect(result.start.get('year')).toBe(2012)
|
|
14
|
+
expect(result.start.get('month')).toBe(8)
|
|
15
|
+
expect(result.start.get('day')).toBe(10)
|
|
16
|
+
|
|
17
|
+
expect(result.index).toBe(0)
|
|
18
|
+
expect(result.text).toBe('10 Agosto 2012')
|
|
19
|
+
|
|
20
|
+
var resultDate = result.start.date();
|
|
21
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
22
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var text = "10 Agosto 234 AC";
|
|
26
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
27
|
+
expect(results.length).toBe(1)
|
|
28
|
+
|
|
29
|
+
var result = results[0];
|
|
30
|
+
if (result) {
|
|
31
|
+
expect(result.index).toBe(0)
|
|
32
|
+
expect(result.text).toBe('10 Agosto 234 AC')
|
|
33
|
+
|
|
34
|
+
expect(result.start).not.toBeNull()
|
|
35
|
+
expect(result.start.get('year')).toBe(-234)
|
|
36
|
+
expect(result.start.get('month')).toBe(8)
|
|
37
|
+
expect(result.start.get('day')).toBe(10)
|
|
38
|
+
|
|
39
|
+
var resultDate = result.start.date();
|
|
40
|
+
var expectDate = new Date(-234, 8-1, 10, 12);
|
|
41
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
var text = "10 Agosto 88 d. C.";
|
|
46
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
47
|
+
expect(results.length).toBe(1)
|
|
48
|
+
|
|
49
|
+
var result = results[0];
|
|
50
|
+
if (result) {
|
|
51
|
+
expect(result.index).toBe(0)
|
|
52
|
+
expect(result.text).toBe('10 Agosto 88 d. C.')
|
|
53
|
+
|
|
54
|
+
expect(result.start).not.toBeNull()
|
|
55
|
+
expect(result.start.get('year')).toBe(88)
|
|
56
|
+
expect(result.start.get('month')).toBe(8)
|
|
57
|
+
expect(result.start.get('day')).toBe(10)
|
|
58
|
+
|
|
59
|
+
var resultDate = result.start.date();
|
|
60
|
+
var expectDate = new Date(88, 8-1, 10, 12);
|
|
61
|
+
expectDate.setFullYear(88);
|
|
62
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
var text = 'Dom 15Sep';
|
|
67
|
+
var results = chrono.parse(text, new Date(2013,7,10));
|
|
68
|
+
expect(results.length).toBe(1)
|
|
69
|
+
|
|
70
|
+
var result = results[0];
|
|
71
|
+
if(result){
|
|
72
|
+
expect(result.index).toBe(0)
|
|
73
|
+
expect(result.text).toBe('Dom 15Sep')
|
|
74
|
+
|
|
75
|
+
expect(result.start).not.toBeNull()
|
|
76
|
+
expect(result.start.get('year')).toBe(2013)
|
|
77
|
+
expect(result.start.get('month')).toBe(9)
|
|
78
|
+
expect(result.start.get('day')).toBe(15)
|
|
79
|
+
|
|
80
|
+
var resultDate = result.start.date();
|
|
81
|
+
var expectDate = new Date(2013, 9-1, 15, 12);
|
|
82
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var text = 'DOM 15SEP';
|
|
86
|
+
var results = chrono.parse(text, new Date(2013,7,10));
|
|
87
|
+
expect(results.length).toBe(1)
|
|
88
|
+
|
|
89
|
+
var result = results[0];
|
|
90
|
+
if(result){
|
|
91
|
+
expect(result.index).toBe(0)
|
|
92
|
+
expect(result.text).toBe('DOM 15SEP')
|
|
93
|
+
|
|
94
|
+
expect(result.start).not.toBeNull()
|
|
95
|
+
expect(result.start.get('year')).toBe(2013)
|
|
96
|
+
expect(result.start.get('month')).toBe(9)
|
|
97
|
+
expect(result.start.get('day')).toBe(15)
|
|
98
|
+
|
|
99
|
+
var resultDate = result.start.date();
|
|
100
|
+
var expectDate = new Date(2013, 9-1, 15, 12);
|
|
101
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
var text = "La fecha final es el 10 Agosto";
|
|
105
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
106
|
+
expect(results.length).toBe(1)
|
|
107
|
+
|
|
108
|
+
var result = results[0];
|
|
109
|
+
if (result) {
|
|
110
|
+
|
|
111
|
+
expect(result.index).toBe(21)
|
|
112
|
+
expect(result.text).toBe('10 Agosto')
|
|
113
|
+
|
|
114
|
+
expect(result.start).not.toBeNull()
|
|
115
|
+
expect(result.start.get('year')).toBe(2012)
|
|
116
|
+
expect(result.start.get('month')).toBe(8)
|
|
117
|
+
expect(result.start.get('day')).toBe(10)
|
|
118
|
+
|
|
119
|
+
var resultDate = result.start.date();
|
|
120
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
121
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
var text = "La fecha final es el Martes, 10 Enero";
|
|
126
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
127
|
+
expect(results.length).toBe(1)
|
|
128
|
+
|
|
129
|
+
var result = results[0];
|
|
130
|
+
if (result) {
|
|
131
|
+
|
|
132
|
+
expect(result.index).toBe(21)
|
|
133
|
+
expect(result.text).toBe('Martes, 10 Enero')
|
|
134
|
+
|
|
135
|
+
expect(result.start).not.toBeNull()
|
|
136
|
+
expect(result.start.get('year')).toBe(2013)
|
|
137
|
+
expect(result.start.get('month')).toBe(1)
|
|
138
|
+
expect(result.start.get('day')).toBe(10)
|
|
139
|
+
expect(result.start.get('weekday')).toBe(2)
|
|
140
|
+
|
|
141
|
+
var resultDate = result.start.date();
|
|
142
|
+
var expectDate = new Date(2013, 1-1, 10, 12);
|
|
143
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
var text = "La fecha final es el Mar, 10 Enero";
|
|
148
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
149
|
+
expect(results.length).toBe(1)
|
|
150
|
+
|
|
151
|
+
var result = results[0];
|
|
152
|
+
if (result) {
|
|
153
|
+
|
|
154
|
+
expect(result.index).toBe(21)
|
|
155
|
+
expect(result.text).toBe('Mar, 10 Enero')
|
|
156
|
+
|
|
157
|
+
expect(result.start).not.toBeNull()
|
|
158
|
+
expect(result.start.get('year')).toBe(2013)
|
|
159
|
+
expect(result.start.get('month')).toBe(1)
|
|
160
|
+
expect(result.start.get('day')).toBe(10)
|
|
161
|
+
expect(result.start.get('weekday')).toBe(2)
|
|
162
|
+
|
|
163
|
+
var resultDate = result.start.date();
|
|
164
|
+
var expectDate = new Date(2013, 1-1, 10, 12);
|
|
165
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
test("Test - Range expression", function() {
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
var text = "10 - 22 Agosto 2012";
|
|
175
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
176
|
+
expect(results.length).toBe(1)
|
|
177
|
+
|
|
178
|
+
var result = results[0];
|
|
179
|
+
if(result){
|
|
180
|
+
|
|
181
|
+
expect(result.index).toBe(0)
|
|
182
|
+
expect(result.text).toBe('10 - 22 Agosto 2012')
|
|
183
|
+
|
|
184
|
+
expect(result.start).not.toBeNull()
|
|
185
|
+
expect(result.start.get('year')).toBe(2012)
|
|
186
|
+
expect(result.start.get('month')).toBe(8)
|
|
187
|
+
expect(result.start.get('day')).toBe(10)
|
|
188
|
+
|
|
189
|
+
var resultDate = result.start.date();
|
|
190
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
191
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
expect(result.end).not.toBeNull()
|
|
195
|
+
expect(result.end.get('year')).toBe(2012)
|
|
196
|
+
expect(result.end.get('month')).toBe(8)
|
|
197
|
+
expect(result.end.get('day')).toBe(22)
|
|
198
|
+
|
|
199
|
+
var resultDate = result.end.date();
|
|
200
|
+
var expectDate = new Date(2012, 8-1, 22, 12);
|
|
201
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
var text = "10 al 22 Agosto 2012";
|
|
206
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
207
|
+
expect(results.length).toBe(1)
|
|
208
|
+
|
|
209
|
+
var result = results[0];
|
|
210
|
+
if(result){
|
|
211
|
+
|
|
212
|
+
expect(result.index).toBe(0)
|
|
213
|
+
expect(result.text).toBe('10 al 22 Agosto 2012')
|
|
214
|
+
|
|
215
|
+
expect(result.start).not.toBeNull()
|
|
216
|
+
expect(result.start.get('year')).toBe(2012)
|
|
217
|
+
expect(result.start.get('month')).toBe(8)
|
|
218
|
+
expect(result.start.get('day')).toBe(10)
|
|
219
|
+
|
|
220
|
+
var resultDate = result.start.date();
|
|
221
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
222
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
expect(result.end).not.toBeNull()
|
|
226
|
+
expect(result.end.get('year')).toBe(2012)
|
|
227
|
+
expect(result.end.get('month')).toBe(8)
|
|
228
|
+
expect(result.end.get('day')).toBe(22)
|
|
229
|
+
|
|
230
|
+
var resultDate = result.end.date();
|
|
231
|
+
var expectDate = new Date(2012, 8-1, 22, 12);
|
|
232
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
var text = "10 Agosto - 12 Septiembre";
|
|
236
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
237
|
+
expect(results.length).toBe(1)
|
|
238
|
+
|
|
239
|
+
var result = results[0];
|
|
240
|
+
if(result){
|
|
241
|
+
|
|
242
|
+
expect(result.index).toBe(0)
|
|
243
|
+
expect(result.text).toBe('10 Agosto - 12 Septiembre')
|
|
244
|
+
|
|
245
|
+
expect(result.start).not.toBeNull()
|
|
246
|
+
expect(result.start.get('year')).toBe(2012)
|
|
247
|
+
expect(result.start.get('month')).toBe(8)
|
|
248
|
+
expect(result.start.get('day')).toBe(10)
|
|
249
|
+
|
|
250
|
+
var resultDate = result.start.date();
|
|
251
|
+
var expectDate = new Date(2012, 8-1, 10, 12);
|
|
252
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
expect(result.end).not.toBeNull()
|
|
256
|
+
expect(result.end.get('year')).toBe(2012)
|
|
257
|
+
expect(result.end.get('month')).toBe(9)
|
|
258
|
+
expect(result.end.get('day')).toBe(12)
|
|
259
|
+
|
|
260
|
+
var resultDate = result.end.date();
|
|
261
|
+
var expectDate = new Date(2012, 9-1, 12, 12);
|
|
262
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
var text = "10 Agosto - 12 Septiembre 2013";
|
|
266
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
267
|
+
expect(results.length).toBe(1)
|
|
268
|
+
|
|
269
|
+
var result = results[0];
|
|
270
|
+
if(result){
|
|
271
|
+
|
|
272
|
+
expect(result.index).toBe(0)
|
|
273
|
+
expect(result.text).toBe('10 Agosto - 12 Septiembre 2013')
|
|
274
|
+
|
|
275
|
+
expect(result.start).not.toBeNull()
|
|
276
|
+
expect(result.start.get('year')).toBe(2013)
|
|
277
|
+
expect(result.start.get('month')).toBe(8)
|
|
278
|
+
expect(result.start.get('day')).toBe(10)
|
|
279
|
+
|
|
280
|
+
var resultDate = result.start.date();
|
|
281
|
+
var expectDate = new Date(2013, 8-1, 10, 12);
|
|
282
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
expect(result.end).not.toBeNull()
|
|
286
|
+
expect(result.end.get('year')).toBe(2013)
|
|
287
|
+
expect(result.end.get('month')).toBe(9)
|
|
288
|
+
expect(result.end.get('day')).toBe(12)
|
|
289
|
+
|
|
290
|
+
var resultDate = result.end.date();
|
|
291
|
+
var expectDate = new Date(2013, 9-1, 12, 12);
|
|
292
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
test("Test - Combined expression", function() {
|
|
298
|
+
|
|
299
|
+
var text = "12 de Julio a las 19:00";
|
|
300
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
301
|
+
expect(results.length).toBe(1)
|
|
302
|
+
|
|
303
|
+
var result = results[0];
|
|
304
|
+
if(result){
|
|
305
|
+
expect(result.index).toBe(0)
|
|
306
|
+
expect(result.text).toBe('12 de Julio a las 19:00')
|
|
307
|
+
|
|
308
|
+
expect(result.start).not.toBeNull()
|
|
309
|
+
expect(result.start.get('year')).toBe(2012)
|
|
310
|
+
expect(result.start.get('month')).toBe(7)
|
|
311
|
+
expect(result.start.get('day')).toBe(12)
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
var resultDate = result.start.date();
|
|
315
|
+
var expectDate = new Date(2012, 7-1, 12, 19, 0);
|
|
316
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
test("Test - Impossible Dates (Strict Mode)", function() {
|
|
322
|
+
|
|
323
|
+
var text = "32 Agosto 2014";
|
|
324
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
325
|
+
expect(results.length).toBe(0)
|
|
326
|
+
|
|
327
|
+
var text = "29 Febrero 2014";
|
|
328
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
329
|
+
expect(results.length).toBe(0)
|
|
330
|
+
|
|
331
|
+
var text = "32 Agosto";
|
|
332
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
333
|
+
expect(results.length).toBe(0)
|
|
334
|
+
|
|
335
|
+
// TODO
|
|
336
|
+
var text = "29 Febuary";
|
|
337
|
+
var results = chrono.strict.parse(text, new Date(2012,7,10));
|
|
338
|
+
expect(results.length).toBe(0)
|
|
339
|
+
|
|
340
|
+
});
|
|
341
|
+
|
|
342
|
+
test("Test - Impossible Dates (Casual Mode)", function() {
|
|
343
|
+
|
|
344
|
+
var text = "32 Agosto 2015";
|
|
345
|
+
var expectDate = new Date(2015, 8, 1, 12, 0);
|
|
346
|
+
var results = chrono.parse(text);
|
|
347
|
+
var resultDate = results[0].start.date();
|
|
348
|
+
expect(results.length).toBe(1)
|
|
349
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
|
|
350
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var chrono = require('../../src/chrono');
|
|
2
|
+
|
|
3
|
+
test("Test - Single Expression", function() {
|
|
4
|
+
|
|
5
|
+
var text = "lunes 8/2/2016";
|
|
6
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
7
|
+
expect(results.length).toBe(1)
|
|
8
|
+
|
|
9
|
+
var result = results[0];
|
|
10
|
+
if(result){
|
|
11
|
+
expect(result.start).not.toBeNull()
|
|
12
|
+
expect(result.start.get('year')).toBe(2016)
|
|
13
|
+
expect(result.start.get('month')).toBe(2)
|
|
14
|
+
expect(result.start.get('day')).toBe(8)
|
|
15
|
+
|
|
16
|
+
expect(result.index).toBe(0)
|
|
17
|
+
expect(result.text).toBe('lunes 8/2/2016')
|
|
18
|
+
|
|
19
|
+
var resultDate = result.start.date();
|
|
20
|
+
var expectDate = new Date(2016, 2-1, 8, 12);
|
|
21
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
});
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
var chrono = require('../../src/chrono');
|
|
2
|
+
|
|
3
|
+
test("Test - Single Expression", function() {
|
|
4
|
+
|
|
5
|
+
var text = "hace 5 días, hicimos algo";
|
|
6
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
7
|
+
expect(results.length).toBe(1)
|
|
8
|
+
|
|
9
|
+
var result = results[0];
|
|
10
|
+
if(result){
|
|
11
|
+
expect(result.start).not.toBeNull()
|
|
12
|
+
expect(result.start.get('year')).toBe(2012)
|
|
13
|
+
expect(result.start.get('month')).toBe(8)
|
|
14
|
+
expect(result.start.get('day')).toBe(5)
|
|
15
|
+
|
|
16
|
+
expect(result.index).toBe(0)
|
|
17
|
+
expect(result.text).toBe('hace 5 días')
|
|
18
|
+
|
|
19
|
+
var resultDate = result.start.date();
|
|
20
|
+
var expectDate = new Date(2012, 8-1, 5, 12);
|
|
21
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var text = "hace 10 dias, hicimos algo";
|
|
25
|
+
var results = chrono.parse(text, new Date(2012,7,10));
|
|
26
|
+
expect(results.length).toBe(1)
|
|
27
|
+
|
|
28
|
+
var result = results[0];
|
|
29
|
+
if(result){
|
|
30
|
+
expect(result.start).not.toBeNull()
|
|
31
|
+
expect(result.start.get('year')).toBe(2012)
|
|
32
|
+
expect(result.start.get('month')).toBe(7)
|
|
33
|
+
expect(result.start.get('day')).toBe(31)
|
|
34
|
+
|
|
35
|
+
expect(result.index).toBe(0)
|
|
36
|
+
expect(result.text).toBe('hace 10 dias')
|
|
37
|
+
|
|
38
|
+
var resultDate = result.start.date();
|
|
39
|
+
var expectDate = new Date(2012, 7-1, 31, 12);
|
|
40
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
var text = "hace 15 minutos";
|
|
45
|
+
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
46
|
+
expect(results.length).toBe(1)
|
|
47
|
+
|
|
48
|
+
var result = results[0];
|
|
49
|
+
if(result){
|
|
50
|
+
expect(result.index).toBe(0)
|
|
51
|
+
expect(result.text).toBe('hace 15 minutos')
|
|
52
|
+
expect(result.start.get('hour')).toBe(11)
|
|
53
|
+
expect(result.start.get('minute')).toBe(59)
|
|
54
|
+
|
|
55
|
+
var resultDate = result.start.date();
|
|
56
|
+
var expectDate = new Date(2012,7,10,11,59);
|
|
57
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var text = " hace 12 horas";
|
|
61
|
+
var results = chrono.parse(text, new Date(2012,7,10,12,14));
|
|
62
|
+
expect(results.length).toBe(1)
|
|
63
|
+
|
|
64
|
+
var result = results[0];
|
|
65
|
+
if(result){
|
|
66
|
+
expect(result.index).toBe(3)
|
|
67
|
+
expect(result.text).toBe('hace 12 horas')
|
|
68
|
+
expect(result.start.get('hour')).toBe(0)
|
|
69
|
+
expect(result.start.get('minute')).toBe(14)
|
|
70
|
+
|
|
71
|
+
var resultDate = result.start.date();
|
|
72
|
+
var expectDate = new Date(2012,7,10,0,14);
|
|
73
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
test("Test - Single Expression (Casual)", function() {
|
|
79
|
+
|
|
80
|
+
var text = "hace 5 meses, hicimos algo";
|
|
81
|
+
var results = chrono.parse(text, new Date(2012, 8-1,10));
|
|
82
|
+
expect(results.length).toBe(1)
|
|
83
|
+
|
|
84
|
+
var result = results[0];
|
|
85
|
+
if(result){
|
|
86
|
+
expect(result.start).not.toBeNull()
|
|
87
|
+
expect(result.start.get('year')).toBe(2012)
|
|
88
|
+
expect(result.start.get('month')).toBe(3)
|
|
89
|
+
expect(result.start.get('day')).toBe(10)
|
|
90
|
+
|
|
91
|
+
expect(result.index).toBe(0)
|
|
92
|
+
expect(result.text).toBe('hace 5 meses')
|
|
93
|
+
|
|
94
|
+
var resultDate = result.start.date();
|
|
95
|
+
var expectDate = new Date(2012, 3-1, 10, 12);
|
|
96
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var text = "hace 5 años, hicimos algo";
|
|
100
|
+
var results = chrono.parse(text, new Date(2012, 8-1,10));
|
|
101
|
+
expect(results.length).toBe(1)
|
|
102
|
+
|
|
103
|
+
var result = results[0];
|
|
104
|
+
if(result){
|
|
105
|
+
expect(result.start).not.toBeNull()
|
|
106
|
+
expect(result.start.get('year')).toBe(2007)
|
|
107
|
+
expect(result.start.get('month')).toBe(8)
|
|
108
|
+
expect(result.start.get('day')).toBe(10)
|
|
109
|
+
|
|
110
|
+
expect(result.index).toBe(0)
|
|
111
|
+
expect(result.text).toBe('hace 5 años')
|
|
112
|
+
|
|
113
|
+
var resultDate = result.start.date();
|
|
114
|
+
var expectDate = new Date(2007, 8-1, 10, 12);
|
|
115
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
var text = "hace una semana, hicimos algo";
|
|
120
|
+
var results = chrono.parse(text, new Date(2012, 8-1, 3));
|
|
121
|
+
expect(results.length).toBe(1)
|
|
122
|
+
|
|
123
|
+
var result = results[0];
|
|
124
|
+
if(result){
|
|
125
|
+
expect(result.start).not.toBeNull()
|
|
126
|
+
expect(result.start.get('year')).toBe(2012)
|
|
127
|
+
expect(result.start.get('month')).toBe(7)
|
|
128
|
+
expect(result.start.get('day')).toBe(27)
|
|
129
|
+
|
|
130
|
+
expect(result.index).toBe(0)
|
|
131
|
+
expect(result.text).toBe('hace una semana')
|
|
132
|
+
|
|
133
|
+
var resultDate = result.start.date();
|
|
134
|
+
var expectDate = new Date(2012, 7-1, 27, 12);
|
|
135
|
+
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
|
|
136
|
+
}
|
|
137
|
+
});
|