quandl_babelfish 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,529 +1,529 @@
1
- require 'spec_helper'
2
-
3
- include Quandl::Babelfish
4
- describe NumberMaid do
5
-
6
- it 'should return an exception because month and day are ambiguous YYYY' do
7
- dates = ['01/01/2011','1/2/2011','2/3/2011','11/1/2011']
8
- lambda {DateMaid::sweep(dates)}.should raise_error(Error::GuessDateFormat)
9
- end
10
-
11
- it 'should return an exception because month and day are ambiguous YY' do
12
- dates = ['01/01/11','1/2/11','1/3/11','11/1/11']
13
- lambda {DateMaid::sweep(dates)}.should raise_error(Error::GuessDateFormat)
14
- end
15
-
16
- it 'should remove unwanted characters from dates (eg.  )' do
17
- a=194.chr+160.chr
18
- dates = ["2005#{a}","#{a}2006",'2007','2008']
19
- dates = DateMaid::sweep(dates)
20
- dates[0].should == Date.new(2005,12,31)
21
- dates[1].should == Date.new(2006,12,31)
22
- dates[2].should == Date.new(2007,12,31)
23
- dates[3].should == Date.new(2008,12,31)
24
- end
25
-
26
- it 'should transform a parseable date into valid data (US) YYYY year' do
27
- dates = ['01/10/2011','1/11/2011','1/12/2011','1/13/2011']
28
-
29
- dates = DateMaid::sweep(dates)
30
- dates[0].should == Date.new(2011,1,10)
31
- dates[1].should == Date.new(2011,1,11)
32
- dates[2].should == Date.new(2011,1,12)
33
- dates[3].should == Date.new(2011,1,13)
34
- end
35
-
36
- it 'should calculate dates from UNIX timestamps (to UTC)' do
37
- dates = [1279324800,1279411200,1279497600,1279584000]
38
-
39
- dates = DateMaid::sweep(dates)
40
- dates[0].should == Date.new(2010,7,17)
41
- dates[1].should == Date.new(2010,7,18)
42
- dates[2].should == Date.new(2010,7,19)
43
- dates[3].should == Date.new(2010,7,20)
44
- end
45
-
46
- it 'should transform a parseable date into valid data (US) YY year' do
47
- dates = ['01/10/11','1/11/11','1/12/11','1/13/11,4']
48
- dates = DateMaid::sweep(dates)
49
- dates[0].should == Date.new(2011,1,10)
50
- dates[1].should == Date.new(2011,1,11)
51
- dates[2].should == Date.new(2011,1,12)
52
- dates[3].should == Date.new(2011,1,13)
53
- end
54
-
55
- it 'should throw error when 1 of the dates is invalid' do
56
- # It ain't a leap year
57
- dates = ['2/29/2011','01/01/2011','1/2/2011','1/3/2011','12/1/2011']
58
- lambda {DateMaid::sweep(dates)}.should raise_error(Error::InvalidDate)
59
- end
60
-
61
- it 'should strip invalid parseable dates (US)' do
62
- dates = ['01/01/2011','1/2/2011','1/3/2011','12/17/2011']
63
- dates = DateMaid::sweep(dates)
64
- dates[0].should == Date.new(2011,1,1)
65
- dates[1].should == Date.new(2011,1,2)
66
- dates[2].should == Date.new(2011,1,3)
67
- dates[3].should == Date.new(2011,12,17)
68
- end
69
-
70
- it 'should transform a parseable date into valid data (ISO)' do
71
- dates = ['2011-01-01','2011-01-02','2011-01-03','2011-02-04']
72
- dates = DateMaid::sweep(dates)
73
- dates[0].should == Date.new(2011,1,1)
74
- dates[1].should == Date.new(2011,1,2)
75
- dates[2].should == Date.new(2011,1,3)
76
- dates[3].should == Date.new(2011,2,4)
77
- end
78
-
79
- it 'should parse ISO dates' do
80
- # It ain't a leap year
81
- dates = ['2011-01-01','2011-01-02','2011-01-03','2011-02-04']
82
- dates = DateMaid::sweep(dates)
83
- dates[0].should == Date.new(2011,1,1)
84
- dates[1].should == Date.new(2011,1,2)
85
- dates[2].should == Date.new(2011,1,3)
86
- dates[3].should == Date.new(2011,2,4)
87
- end
88
-
89
- it 'should handle JP dates YYYY/MM/DD' do
90
- dates = ['2011/01/01','2011/01/2','2011/1/03','2011/2/4']
91
- dates = DateMaid::sweep(dates)
92
- dates[0].should == Date.new(2011,1,1)
93
- dates[1].should == Date.new(2011,1,2)
94
- dates[2].should == Date.new(2011,1,3)
95
- dates[3].should == Date.new(2011,2,4)
96
- end
97
-
98
- it 'should handle manually formatted dates (EU)' do
99
- dates = ['01/01/2011','2/1/2011','3/1/2011','1/12/2011']
100
- DateMaid::init(:format => '%d/%m/%Y')
101
- dates = DateMaid::sweep(dates)
102
- dates[0].should == Date.new(2011,1,1)
103
- dates[1].should == Date.new(2011,1,2)
104
- dates[2].should == Date.new(2011,1,3)
105
- dates[3].should == Date.new(2011,12,1)
106
- DateMaid::init({})
107
- end
108
-
109
- it 'should handle manually formatted dates (EU, strip)' do
110
- dates = ['01/01/2011','2/1/2011','3/1/2011','1/12/2011']
111
- DateMaid::init(:format => '%d/%m/%Y')
112
- dates = DateMaid::sweep(dates)
113
- dates[0].should == Date.new(2011,1,1)
114
- dates[1].should == Date.new(2011,1,2)
115
- dates[2].should == Date.new(2011,1,3)
116
- dates[3].should == Date.new(2011,12,1)
117
- DateMaid::init({})
118
- end
119
-
120
- it 'should transform a year into an end of year date' do
121
- dates = ['2011','2010','2009','2008','2007','2006']
122
-
123
- DateMaid::init({:frequency => 'annual'})
124
- dates = DateMaid::sweep(dates)
125
- dates[0].should == Date.new(2011,12,31)
126
- dates[1].should == Date.new(2010,12,31)
127
- dates[2].should == Date.new(2009,12,31)
128
- dates[3].should == Date.new(2008,12,31)
129
- DateMaid::init({})
130
- end
131
-
132
- it 'should transform a year into an end of year date with gaps' do
133
- dates = ['2011','2010','2009','2008','2007','2006']
134
- DateMaid::init({:frequency => 'annual'})
135
- dates = DateMaid::sweep(dates)
136
- dates[0].should == Date.new(2011,12,31)
137
- dates[1].should == Date.new(2010,12,31)
138
- dates[2].should == Date.new(2009,12,31)
139
- dates[3].should == Date.new(2008,12,31)
140
- DateMaid::init({})
141
- end
142
-
143
- it 'should transform a YYYY.0 into an end of year date' do
144
- dates = ['2011.0','2010.0','2009.0','2008.0','2007.0','2006.0']
145
- DateMaid::init({:frequency => 'annual'})
146
- dates = DateMaid::sweep(dates)
147
- dates[0].should == Date.new(2011,12,31)
148
- dates[1].should == Date.new(2010,12,31)
149
- dates[2].should == Date.new(2009,12,31)
150
- dates[3].should == Date.new(2008,12,31)
151
- DateMaid::init({})
152
- end
153
-
154
- it 'should transform a YYYY.1 into an end of month date' do
155
- dates = ['2011.1','2010.2','2009.3','2008.10','2007.11','2006.12']
156
- dates = DateMaid::sweep(dates)
157
- dates[0].should == Date.new(2011,01,31)
158
- dates[1].should == Date.new(2010,02,28)
159
- dates[2].should == Date.new(2009,03,31)
160
- dates[3].should == Date.new(2008,10,31)
161
- dates[4].should == Date.new(2007,11,30)
162
- dates[5].should == Date.new(2006,12,31)
163
- end
164
-
165
-
166
- it 'should transform yyyy-mm to end of month' do
167
- dates = ['2011-01','2011-02','2011-03','2011-04']
168
- dates = DateMaid::sweep(dates)
169
- dates[0].should == Date.new(2011,1,31)
170
- dates[1].should == Date.new(2011,2,28)
171
- dates[2].should == Date.new(2011,3,31)
172
- dates[3].should == Date.new(2011,4,30)
173
- end
174
-
175
- it 'should transform yyyy/mm to end of month' do
176
- dates = ['2011/01','2011/02','2011/03','2011/04,4']
177
- dates = DateMaid::sweep(dates)
178
- dates[0].should == Date.new(2011,1,31)
179
- dates[1].should == Date.new(2011,2,28)
180
- dates[2].should == Date.new(2011,3,31)
181
- dates[3].should == Date.new(2011,4,30)
182
- end
183
-
184
- it 'should transform yyyyMmm to end of month' do
185
- dates = ['2011M01','2011M02','2011M03','2011M04']
186
- dates = DateMaid::sweep(dates)
187
- dates[0].should == Date.new(2011,1,31)
188
- dates[1].should == Date.new(2011,2,28)
189
- dates[2].should == Date.new(2011,3,31)
190
- dates[3].should == Date.new(2011,4,30)
191
- end
192
-
193
- it 'should transform yyyyWww to the first Friday of the week of the year' do
194
- dates = ['1998W52','1998W53','1999W01']
195
- dates = DateMaid::sweep(dates)
196
- dates[0].should == Date.new(1998,12,25)
197
- dates[1].should == Date.new(1999,1,1)
198
- dates[2].should == Date.new(1999,1,8)
199
- end
200
-
201
- it 'should fail on invalid YYYY-MM formats' do
202
- dates = ['2011-13','2011-AA','2011-01','2011-02','2011-03','2011-04']
203
- lambda {DateMaid::sweep(dates)}.should raise_error(Error::InvalidDate)
204
- end
205
-
206
- it 'should parse YYYY-MM formats' do
207
- dates = ['2011-01','2011-02','2011-03','2011-04']
208
- dates = DateMaid::sweep(dates)
209
- dates[0].should == Date.new(2011,1,31)
210
- dates[1].should == Date.new(2011,2,28)
211
- dates[2].should == Date.new(2011,3,31)
212
- dates[3].should == Date.new(2011,4,30)
213
- end
214
-
215
- it 'should transform mm-yyyy to end of month' do
216
- dates = ['01-2011','02-2011','3-2011','4-2011']
217
- dates = DateMaid::sweep(dates)
218
- dates[0].should == Date.new(2011,1,31)
219
- dates[1].should == Date.new(2011,2,28)
220
- dates[2].should == Date.new(2011,3,31)
221
- dates[3].should == Date.new(2011,4,30)
222
- end
223
-
224
- it 'should transform mm/yyyy to end of month' do
225
- dates = ['01/2011','02/2011','3/2011','4/2011']
226
- dates = DateMaid::sweep(dates)
227
- dates[0].should == Date.new(2011,1,31)
228
- dates[1].should == Date.new(2011,2,28)
229
- dates[2].should == Date.new(2011,3,31)
230
- dates[3].should == Date.new(2011,4,30)
231
- end
232
-
233
- it 'should transform yyyymm (no delimiter) to end of month' do
234
- dates = ['201101','201102','201103','201104']
235
- dates = DateMaid::sweep(dates)
236
- dates[0].should == Date.new(2011,1,31)
237
- dates[1].should == Date.new(2011,2,28)
238
- dates[2].should == Date.new(2011,3,31)
239
- dates[3].should == Date.new(2011,4,30)
240
- end
241
-
242
- it 'should transform yyyymm (no delimiter) to end of month' do
243
- # Only 5 digits
244
- dates = ['201101','201102','201103','201104']
245
- dates = DateMaid::sweep(dates)
246
- dates[0].should == Date.new(2011,1,31)
247
- dates[1].should == Date.new(2011,2,28)
248
- dates[2].should == Date.new(2011,3,31)
249
- dates[3].should == Date.new(2011,4,30)
250
- end
251
-
252
- it 'should transform YYYY-MMM to end of month' do
253
- dates = ['2011-jan','2011-feb','2011-mar','2011-apr']
254
- dates = DateMaid::sweep(dates)
255
- dates[0].should == Date.new(2011,1,31)
256
- dates[1].should == Date.new(2011,2,28)
257
- dates[2].should == Date.new(2011,3,31)
258
- dates[3].should == Date.new(2011,4,30)
259
- end
260
-
261
- it 'should transform YYYY MMM to end of month' do
262
- dates = ['2011 jan','2011 feb','2011 mar','2011 apr']
263
- dates = DateMaid::sweep(dates)
264
- dates[0].should == Date.new(2011,1,31)
265
- dates[1].should == Date.new(2011,2,28)
266
- dates[2].should == Date.new(2011,3,31)
267
- dates[3].should == Date.new(2011,4,30)
268
- end
269
-
270
- it 'should transform YYYY MMM to end of month (CAPS)' do
271
- dates = ['2011 JAN','2011 FEB','2011 MAR','2011 APR']
272
- dates = DateMaid::sweep(dates)
273
- dates[0].should == Date.new(2011,1,31)
274
- dates[1].should == Date.new(2011,2,28)
275
- dates[2].should == Date.new(2011,3,31)
276
- dates[3].should == Date.new(2011,4,30)
277
- end
278
-
279
- it 'should transform YYYY MMM to end of month (Camel)' do
280
- dates = ['2011 Jan','2011 Feb','2011 Mar','2011 Apr,4']
281
- dates = DateMaid::sweep(dates)
282
- dates[0].should == Date.new(2011,1,31)
283
- dates[1].should == Date.new(2011,2,28)
284
- dates[2].should == Date.new(2011,3,31)
285
- dates[3].should == Date.new(2011,4,30)
286
- end
287
-
288
- it 'should transform MMM-YYYY to end of month' do
289
- dates = ['jan-2011','feb-2011','mar-2011','apr-2011,4']
290
- dates = DateMaid::sweep(dates)
291
- dates[0].should == Date.new(2011,1,31)
292
- dates[1].should == Date.new(2011,2,28)
293
- dates[2].should == Date.new(2011,3,31)
294
- dates[3].should == Date.new(2011,4,30)
295
- end
296
-
297
- it 'should transform MMM-YYYY to end of month (strip)' do
298
- dates = ['jan-2011','feb-2011','mar-2011','apr-2011']
299
- dates = DateMaid::sweep(dates)
300
- dates[0].should == Date.new(2011,1,31)
301
- dates[1].should == Date.new(2011,2,28)
302
- dates[2].should == Date.new(2011,3,31)
303
- dates[3].should == Date.new(2011,4,30)
304
- end
305
-
306
- it 'should transform MMMYYYY to end of month (No delimiter)' do
307
- dates = ['jan2011','feb2011','mar2011','apr2011']
308
- dates = DateMaid::sweep(dates)
309
- dates[0].should == Date.new(2011,1,31)
310
- dates[1].should == Date.new(2011,2,28)
311
- dates[2].should == Date.new(2011,3,31)
312
- dates[3].should == Date.new(2011,4,30)
313
- end
314
-
315
- it 'should transform MMMYYYY to end of month (No delimiter, strip)' do
316
- dates = ['jan2011','feb2011','mar2011','apr2011']
317
- dates = DateMaid::sweep(dates)
318
- dates[0].should == Date.new(2011,1,31)
319
- dates[1].should == Date.new(2011,2,28)
320
- dates[2].should == Date.new(2011,3,31)
321
- dates[3].should == Date.new(2011,4,30)
322
- end
323
-
324
-
325
- it 'should transform YYYYMMM to end of month (No delimiter) even if one date is partially valid' do
326
- dates = ['2011JAN','2011FEB','2011MAR','2011APR,4']
327
- dates = DateMaid::sweep(dates)
328
- dates[0].should == Date.new(2011,1,31)
329
- dates[1].should == Date.new(2011,2,28)
330
- dates[2].should == Date.new(2011,3,31)
331
- dates[3].should == Date.new(2011,4,30)
332
- end
333
-
334
- it 'should transform YYYYMMM to end of month (No delimiter)' do
335
- dates = ['2011JAN','2011FEB','2011MAR','2011APR,4']
336
- dates = DateMaid::sweep(dates)
337
- dates[0].should == Date.new(2011,1,31)
338
- dates[1].should == Date.new(2011,2,28)
339
- dates[2].should == Date.new(2011,3,31)
340
- dates[3].should == Date.new(2011,4,30)
341
- end
342
-
343
- it 'should transform YYYY-MMM-DD to date' do
344
- dates = ['2011-jan-01','2011-feb-01','2011-mar-3','2011-apr-4']
345
- dates = DateMaid::sweep(dates)
346
- dates[0].should == Date.new(2011,1,1)
347
- dates[1].should == Date.new(2011,2,1)
348
- dates[2].should == Date.new(2011,3,3)
349
- dates[3].should == Date.new(2011,4,4)
350
- end
351
-
352
- it 'should transform YYYY-MMM-DD to date (strip)' do
353
- dates = ['2011-jan-01','2011-feb-01','2011-mar-3','2011-apr-4']
354
- dates = DateMaid::sweep(dates)
355
- dates[0].should == Date.new(2011,1,1)
356
- dates[1].should == Date.new(2011,2,1)
357
- dates[2].should == Date.new(2011,3,3)
358
- dates[3].should == Date.new(2011,4,4)
359
- end
360
-
361
-
362
- it 'should transform DD-MMM-YYYY to date' do
363
- dates = ['01-jan-2011','01-feb-2011','3-mar-2011','4-apr-2011']
364
- dates = DateMaid::sweep(dates)
365
- dates[0].should == Date.new(2011,1,1)
366
- dates[1].should == Date.new(2011,2,1)
367
- dates[2].should == Date.new(2011,3,3)
368
- dates[3].should == Date.new(2011,4,4)
369
- end
370
-
371
- it 'should transform DD-MMM-YYYY to date (strip)' do
372
- dates = ['01-jan-2011','01-feb-2011','3-mar-2011','4-apr-2011']
373
- dates = DateMaid::sweep(dates)
374
- dates[0].should == Date.new(2011,1,1)
375
- dates[1].should == Date.new(2011,2,1)
376
- dates[2].should == Date.new(2011,3,3)
377
- dates[3].should == Date.new(2011,4,4)
378
- end
379
-
380
- it 'should transform YYYYMMMDD to date (no delimiters)' do
381
- dates = ['2011jan01','2011feb01','2011mar3','2011apr4']
382
- dates = DateMaid::sweep(dates)
383
- dates[0].should == Date.new(2011,1,1)
384
- dates[1].should == Date.new(2011,2,1)
385
- dates[2].should == Date.new(2011,3,3)
386
- dates[3].should == Date.new(2011,4,4)
387
- end
388
-
389
- it 'should transform YYYYMMMDD to date (no delimiters, strip)' do
390
- dates = ['2011jan01','2011feb01','2011mar3','2011apr4']
391
- dates = DateMaid::sweep(dates)
392
- dates[0].should == Date.new(2011,1,1)
393
- dates[1].should == Date.new(2011,2,1)
394
- dates[2].should == Date.new(2011,3,3)
395
- dates[3].should == Date.new(2011,4,4)
396
- end
397
-
398
- it 'should transform DD-MMM-YYYY to date (no delimiters)' do
399
- dates = ['01jan2011','01feb2011','3mar2011','4apr2011']
400
- dates = DateMaid::sweep(dates)
401
- dates[0].should == Date.new(2011,1,1)
402
- dates[1].should == Date.new(2011,2,1)
403
- dates[2].should == Date.new(2011,3,3)
404
- dates[3].should == Date.new(2011,4,4)
405
- end
406
-
407
- it 'should transform DD-MMM-YYYY to date (no delimiters, strip)' do
408
- dates = ['01jan2011','01feb2011','3mar2011','4apr2011']
409
- dates = DateMaid::sweep(dates)
410
- dates[0].should == Date.new(2011,1,1)
411
- dates[1].should == Date.new(2011,2,1)
412
- dates[2].should == Date.new(2011,3,3)
413
- dates[3].should == Date.new(2011,4,4)
414
- end
415
-
416
- it 'should transform yyyy-Qq to end of quarter' do
417
- dates = ['2011-Q1','2011-Q2','2011-Q3','2011-Q4']
418
- dates = DateMaid::sweep(dates)
419
- dates[0].should == Date.new(2011,3,31)
420
- dates[1].should == Date.new(2011,6,30)
421
- dates[2].should == Date.new(2011,9,30)
422
- dates[3].should == Date.new(2011,12,31)
423
- end
424
-
425
- it 'should transform yyyy-Qq to end of quarter (strip)' do
426
- dates = ['2011-Q1','2011-Q2','2011-Q3','2011-Q4']
427
- dates = DateMaid::sweep(dates)
428
- dates[0].should == Date.new(2011,3,31)
429
- dates[1].should == Date.new(2011,6,30)
430
- dates[2].should == Date.new(2011,9,30)
431
- dates[3].should == Date.new(2011,12,31)
432
- end
433
-
434
- it 'should transform yyyyQq to end of quarter (no delimiter)' do
435
- dates = ['2011q1','2011Q2','2011q3','2011Q4,4']
436
- dates = DateMaid::sweep(dates)
437
- dates[0].should == Date.new(2011,3,31)
438
- dates[1].should == Date.new(2011,6,30)
439
- dates[2].should == Date.new(2011,9,30)
440
- dates[3].should == Date.new(2011,12,31)
441
- end
442
-
443
- it 'should handle white space at front and back of dates' do
444
- dates = [' 2012q2 ']
445
- dates = DateMaid::sweep(dates)
446
- dates[0].should == Date.new(2012,6,30)
447
- end
448
-
449
- it 'should handle white space at front and back of dates (2)' do
450
- dates = [' 2012 ']
451
- dates = DateMaid::sweep(dates)
452
- dates[0].should == Date.new(2012,12,31)
453
- end
454
-
455
- it 'should know 1871.10 is October' do
456
- dates = ['1871.10']
457
- dates = DateMaid::sweep(dates)
458
- dates[0].should == Date.new(1871,10,31)
459
- end
460
-
461
- it 'should handle 1990' do
462
- dates = ['1990']
463
- dates = DateMaid::sweep(dates)
464
- dates[0].should == Date.new(1990,12,31)
465
- end
466
-
467
- it 'should handle 1990 - 1995' do
468
- dates = ['1990 - 1995']
469
- dates = DateMaid::sweep(dates)
470
- dates[0].should == Date.new(1990,12,31)
471
- end
472
-
473
- it 'should transform YYYYMMDD to date' do
474
- dates = ['20010101','20110518','19701111','19770208','19900531']
475
- dates = DateMaid::sweep(dates)
476
- dates[0].should == Date.new(2001,1,1)
477
- dates[1].should == Date.new(2011,5,18)
478
- dates[2].should == Date.new(1970,11,11)
479
- dates[3].should == Date.new(1977,2,8)
480
- dates[4].should == Date.new(1990,5,31)
481
- end
482
-
483
- it 'should transform Jan 30, 1955' do
484
- dates = ['Jan 30, 1955']
485
- dates = DateMaid::sweep(dates)
486
- dates[0].should == Date.new(1955,1,30)
487
- end
488
-
489
- it 'should transform Jan-68' do
490
- dates = ['Dec-68','Jan-69']
491
- dates = DateMaid::sweep(dates)
492
- dates[0].should == Date.new(1968,12,31)
493
- dates[1].should == Date.new(1969,1,31)
494
- end
495
-
496
-
497
- it 'should transform Jul-01' do
498
- dates = ['Jul-01','Aug-01']
499
- dates = DateMaid::sweep(dates)
500
- dates[1].should == Date.new(2001,8,31)
501
- dates[0].should == Date.new(2001,7,31)
502
- end
503
-
504
- it 'should transform Dec-31-12' do
505
- dates = ['Dec-31-12']
506
- dates = DateMaid::sweep(dates)
507
- dates[0].should == Date.new(2012,12,31)
508
- end
509
-
510
- it 'should format YYYY/MM/DD' do
511
- dates = ['20010101','20110518','19701111','19770208','19900531']
512
- dates = DateMaid::sweep(dates)
513
- dates[0].should == Date.new(2001,1,1)
514
- dates[1].should == Date.new(2011,5,18)
515
- dates[2].should == Date.new(1970,11,11)
516
- dates[3].should == Date.new(1977,2,8)
517
- dates[4].should == Date.new(1990,5,31)
518
- end
519
-
520
- it 'should strip days of the week' do
521
- pending "Not implemented yet"
522
- dates = ["Tuesday, April 30, 2013","Mon april 29, 2012"]
523
- dates = DateMaid::sweep(dates)
524
- dates[0].should == Date.new(2013,04,30)
525
- dates[1].should == Date.new(2012,04,29)
526
- end
527
-
528
-
1
+ require 'spec_helper'
2
+
3
+ include Quandl::Babelfish
4
+ describe NumberMaid do
5
+
6
+ it 'should return an exception because month and day are ambiguous YYYY' do
7
+ dates = ['01/01/2011','1/2/2011','2/3/2011','11/1/2011']
8
+ lambda {DateMaid::sweep(dates)}.should raise_error(Error::GuessDateFormat)
9
+ end
10
+
11
+ it 'should return an exception because month and day are ambiguous YY' do
12
+ dates = ['01/01/11','1/2/11','1/3/11','11/1/11']
13
+ lambda {DateMaid::sweep(dates)}.should raise_error(Error::GuessDateFormat)
14
+ end
15
+
16
+ it 'should remove unwanted characters from dates (eg.  )' do
17
+ a=194.chr+160.chr
18
+ dates = ["2005#{a}","#{a}2006",'2007','2008']
19
+ dates = DateMaid::sweep(dates)
20
+ dates[0].should == Date.new(2005,12,31)
21
+ dates[1].should == Date.new(2006,12,31)
22
+ dates[2].should == Date.new(2007,12,31)
23
+ dates[3].should == Date.new(2008,12,31)
24
+ end
25
+
26
+ it 'should transform a parseable date into valid data (US) YYYY year' do
27
+ dates = ['01/10/2011','1/11/2011','1/12/2011','1/13/2011']
28
+
29
+ dates = DateMaid::sweep(dates)
30
+ dates[0].should == Date.new(2011,1,10)
31
+ dates[1].should == Date.new(2011,1,11)
32
+ dates[2].should == Date.new(2011,1,12)
33
+ dates[3].should == Date.new(2011,1,13)
34
+ end
35
+
36
+ it 'should calculate dates from UNIX timestamps (to UTC)' do
37
+ dates = [1279324800,1279411200,1279497600,1279584000]
38
+
39
+ dates = DateMaid::sweep(dates)
40
+ dates[0].should == Date.new(2010,7,17)
41
+ dates[1].should == Date.new(2010,7,18)
42
+ dates[2].should == Date.new(2010,7,19)
43
+ dates[3].should == Date.new(2010,7,20)
44
+ end
45
+
46
+ it 'should transform a parseable date into valid data (US) YY year' do
47
+ dates = ['01/10/11','1/11/11','1/12/11','1/13/11,4']
48
+ dates = DateMaid::sweep(dates)
49
+ dates[0].should == Date.new(2011,1,10)
50
+ dates[1].should == Date.new(2011,1,11)
51
+ dates[2].should == Date.new(2011,1,12)
52
+ dates[3].should == Date.new(2011,1,13)
53
+ end
54
+
55
+ it 'should throw error when 1 of the dates is invalid' do
56
+ # It ain't a leap year
57
+ dates = ['2/29/2011','01/01/2011','1/2/2011','1/3/2011','12/1/2011']
58
+ lambda {DateMaid::sweep(dates)}.should raise_error(Error::InvalidDate)
59
+ end
60
+
61
+ it 'should strip invalid parseable dates (US)' do
62
+ dates = ['01/01/2011','1/2/2011','1/3/2011','12/17/2011']
63
+ dates = DateMaid::sweep(dates)
64
+ dates[0].should == Date.new(2011,1,1)
65
+ dates[1].should == Date.new(2011,1,2)
66
+ dates[2].should == Date.new(2011,1,3)
67
+ dates[3].should == Date.new(2011,12,17)
68
+ end
69
+
70
+ it 'should transform a parseable date into valid data (ISO)' do
71
+ dates = ['2011-01-01','2011-01-02','2011-01-03','2011-02-04']
72
+ dates = DateMaid::sweep(dates)
73
+ dates[0].should == Date.new(2011,1,1)
74
+ dates[1].should == Date.new(2011,1,2)
75
+ dates[2].should == Date.new(2011,1,3)
76
+ dates[3].should == Date.new(2011,2,4)
77
+ end
78
+
79
+ it 'should parse ISO dates' do
80
+ # It ain't a leap year
81
+ dates = ['2011-01-01','2011-01-02','2011-01-03','2011-02-04']
82
+ dates = DateMaid::sweep(dates)
83
+ dates[0].should == Date.new(2011,1,1)
84
+ dates[1].should == Date.new(2011,1,2)
85
+ dates[2].should == Date.new(2011,1,3)
86
+ dates[3].should == Date.new(2011,2,4)
87
+ end
88
+
89
+ it 'should handle JP dates YYYY/MM/DD' do
90
+ dates = ['2011/01/01','2011/01/2','2011/1/03','2011/2/4']
91
+ dates = DateMaid::sweep(dates)
92
+ dates[0].should == Date.new(2011,1,1)
93
+ dates[1].should == Date.new(2011,1,2)
94
+ dates[2].should == Date.new(2011,1,3)
95
+ dates[3].should == Date.new(2011,2,4)
96
+ end
97
+
98
+ it 'should handle manually formatted dates (EU)' do
99
+ dates = ['01/01/2011','2/1/2011','3/1/2011','1/12/2011']
100
+ DateMaid::init(:format => '%d/%m/%Y')
101
+ dates = DateMaid::sweep(dates)
102
+ dates[0].should == Date.new(2011,1,1)
103
+ dates[1].should == Date.new(2011,1,2)
104
+ dates[2].should == Date.new(2011,1,3)
105
+ dates[3].should == Date.new(2011,12,1)
106
+ DateMaid::init({})
107
+ end
108
+
109
+ it 'should handle manually formatted dates (EU, strip)' do
110
+ dates = ['01/01/2011','2/1/2011','3/1/2011','1/12/2011']
111
+ DateMaid::init(:format => '%d/%m/%Y')
112
+ dates = DateMaid::sweep(dates)
113
+ dates[0].should == Date.new(2011,1,1)
114
+ dates[1].should == Date.new(2011,1,2)
115
+ dates[2].should == Date.new(2011,1,3)
116
+ dates[3].should == Date.new(2011,12,1)
117
+ DateMaid::init({})
118
+ end
119
+
120
+ it 'should transform a year into an end of year date' do
121
+ dates = ['2011','2010','2009','2008','2007','2006']
122
+
123
+ DateMaid::init({:frequency => 'annual'})
124
+ dates = DateMaid::sweep(dates)
125
+ dates[0].should == Date.new(2011,12,31)
126
+ dates[1].should == Date.new(2010,12,31)
127
+ dates[2].should == Date.new(2009,12,31)
128
+ dates[3].should == Date.new(2008,12,31)
129
+ DateMaid::init({})
130
+ end
131
+
132
+ it 'should transform a year into an end of year date with gaps' do
133
+ dates = ['2011','2010','2009','2008','2007','2006']
134
+ DateMaid::init({:frequency => 'annual'})
135
+ dates = DateMaid::sweep(dates)
136
+ dates[0].should == Date.new(2011,12,31)
137
+ dates[1].should == Date.new(2010,12,31)
138
+ dates[2].should == Date.new(2009,12,31)
139
+ dates[3].should == Date.new(2008,12,31)
140
+ DateMaid::init({})
141
+ end
142
+
143
+ it 'should transform a YYYY.0 into an end of year date' do
144
+ dates = ['2011.0','2010.0','2009.0','2008.0','2007.0','2006.0']
145
+ DateMaid::init({:frequency => 'annual'})
146
+ dates = DateMaid::sweep(dates)
147
+ dates[0].should == Date.new(2011,12,31)
148
+ dates[1].should == Date.new(2010,12,31)
149
+ dates[2].should == Date.new(2009,12,31)
150
+ dates[3].should == Date.new(2008,12,31)
151
+ DateMaid::init({})
152
+ end
153
+
154
+ it 'should transform a YYYY.1 into an end of month date' do
155
+ dates = ['2011.1','2010.2','2009.3','2008.10','2007.11','2006.12']
156
+ dates = DateMaid::sweep(dates)
157
+ dates[0].should == Date.new(2011,01,31)
158
+ dates[1].should == Date.new(2010,02,28)
159
+ dates[2].should == Date.new(2009,03,31)
160
+ dates[3].should == Date.new(2008,10,31)
161
+ dates[4].should == Date.new(2007,11,30)
162
+ dates[5].should == Date.new(2006,12,31)
163
+ end
164
+
165
+
166
+ it 'should transform yyyy-mm to end of month' do
167
+ dates = ['2011-01','2011-02','2011-03','2011-04']
168
+ dates = DateMaid::sweep(dates)
169
+ dates[0].should == Date.new(2011,1,31)
170
+ dates[1].should == Date.new(2011,2,28)
171
+ dates[2].should == Date.new(2011,3,31)
172
+ dates[3].should == Date.new(2011,4,30)
173
+ end
174
+
175
+ it 'should transform yyyy/mm to end of month' do
176
+ dates = ['2011/01','2011/02','2011/03','2011/04,4']
177
+ dates = DateMaid::sweep(dates)
178
+ dates[0].should == Date.new(2011,1,31)
179
+ dates[1].should == Date.new(2011,2,28)
180
+ dates[2].should == Date.new(2011,3,31)
181
+ dates[3].should == Date.new(2011,4,30)
182
+ end
183
+
184
+ it 'should transform yyyyMmm to end of month' do
185
+ dates = ['2011M01','2011M02','2011M03','2011M04']
186
+ dates = DateMaid::sweep(dates)
187
+ dates[0].should == Date.new(2011,1,31)
188
+ dates[1].should == Date.new(2011,2,28)
189
+ dates[2].should == Date.new(2011,3,31)
190
+ dates[3].should == Date.new(2011,4,30)
191
+ end
192
+
193
+ it 'should transform yyyyWww to the first Friday of the week of the year' do
194
+ dates = ['1998W52','1998W53','1999W01']
195
+ dates = DateMaid::sweep(dates)
196
+ dates[0].should == Date.new(1998,12,25)
197
+ dates[1].should == Date.new(1999,1,1)
198
+ dates[2].should == Date.new(1999,1,8)
199
+ end
200
+
201
+ it 'should fail on invalid YYYY-MM formats' do
202
+ dates = ['2011-13','2011-AA','2011-01','2011-02','2011-03','2011-04']
203
+ lambda {DateMaid::sweep(dates)}.should raise_error(Error::InvalidDate)
204
+ end
205
+
206
+ it 'should parse YYYY-MM formats' do
207
+ dates = ['2011-01','2011-02','2011-03','2011-04']
208
+ dates = DateMaid::sweep(dates)
209
+ dates[0].should == Date.new(2011,1,31)
210
+ dates[1].should == Date.new(2011,2,28)
211
+ dates[2].should == Date.new(2011,3,31)
212
+ dates[3].should == Date.new(2011,4,30)
213
+ end
214
+
215
+ it 'should transform mm-yyyy to end of month' do
216
+ dates = ['01-2011','02-2011','3-2011','4-2011']
217
+ dates = DateMaid::sweep(dates)
218
+ dates[0].should == Date.new(2011,1,31)
219
+ dates[1].should == Date.new(2011,2,28)
220
+ dates[2].should == Date.new(2011,3,31)
221
+ dates[3].should == Date.new(2011,4,30)
222
+ end
223
+
224
+ it 'should transform mm/yyyy to end of month' do
225
+ dates = ['01/2011','02/2011','3/2011','4/2011']
226
+ dates = DateMaid::sweep(dates)
227
+ dates[0].should == Date.new(2011,1,31)
228
+ dates[1].should == Date.new(2011,2,28)
229
+ dates[2].should == Date.new(2011,3,31)
230
+ dates[3].should == Date.new(2011,4,30)
231
+ end
232
+
233
+ it 'should transform yyyymm (no delimiter) to end of month' do
234
+ dates = ['201101','201102','201103','201104']
235
+ dates = DateMaid::sweep(dates)
236
+ dates[0].should == Date.new(2011,1,31)
237
+ dates[1].should == Date.new(2011,2,28)
238
+ dates[2].should == Date.new(2011,3,31)
239
+ dates[3].should == Date.new(2011,4,30)
240
+ end
241
+
242
+ it 'should transform yyyymm (no delimiter) to end of month' do
243
+ # Only 5 digits
244
+ dates = ['201101','201102','201103','201104']
245
+ dates = DateMaid::sweep(dates)
246
+ dates[0].should == Date.new(2011,1,31)
247
+ dates[1].should == Date.new(2011,2,28)
248
+ dates[2].should == Date.new(2011,3,31)
249
+ dates[3].should == Date.new(2011,4,30)
250
+ end
251
+
252
+ it 'should transform YYYY-MMM to end of month' do
253
+ dates = ['2011-jan','2011-feb','2011-mar','2011-apr']
254
+ dates = DateMaid::sweep(dates)
255
+ dates[0].should == Date.new(2011,1,31)
256
+ dates[1].should == Date.new(2011,2,28)
257
+ dates[2].should == Date.new(2011,3,31)
258
+ dates[3].should == Date.new(2011,4,30)
259
+ end
260
+
261
+ it 'should transform YYYY MMM to end of month' do
262
+ dates = ['2011 jan','2011 feb','2011 mar','2011 apr']
263
+ dates = DateMaid::sweep(dates)
264
+ dates[0].should == Date.new(2011,1,31)
265
+ dates[1].should == Date.new(2011,2,28)
266
+ dates[2].should == Date.new(2011,3,31)
267
+ dates[3].should == Date.new(2011,4,30)
268
+ end
269
+
270
+ it 'should transform YYYY MMM to end of month (CAPS)' do
271
+ dates = ['2011 JAN','2011 FEB','2011 MAR','2011 APR']
272
+ dates = DateMaid::sweep(dates)
273
+ dates[0].should == Date.new(2011,1,31)
274
+ dates[1].should == Date.new(2011,2,28)
275
+ dates[2].should == Date.new(2011,3,31)
276
+ dates[3].should == Date.new(2011,4,30)
277
+ end
278
+
279
+ it 'should transform YYYY MMM to end of month (Camel)' do
280
+ dates = ['2011 Jan','2011 Feb','2011 Mar','2011 Apr,4']
281
+ dates = DateMaid::sweep(dates)
282
+ dates[0].should == Date.new(2011,1,31)
283
+ dates[1].should == Date.new(2011,2,28)
284
+ dates[2].should == Date.new(2011,3,31)
285
+ dates[3].should == Date.new(2011,4,30)
286
+ end
287
+
288
+ it 'should transform MMM-YYYY to end of month' do
289
+ dates = ['jan-2011','feb-2011','mar-2011','apr-2011,4']
290
+ dates = DateMaid::sweep(dates)
291
+ dates[0].should == Date.new(2011,1,31)
292
+ dates[1].should == Date.new(2011,2,28)
293
+ dates[2].should == Date.new(2011,3,31)
294
+ dates[3].should == Date.new(2011,4,30)
295
+ end
296
+
297
+ it 'should transform MMM-YYYY to end of month (strip)' do
298
+ dates = ['jan-2011','feb-2011','mar-2011','apr-2011']
299
+ dates = DateMaid::sweep(dates)
300
+ dates[0].should == Date.new(2011,1,31)
301
+ dates[1].should == Date.new(2011,2,28)
302
+ dates[2].should == Date.new(2011,3,31)
303
+ dates[3].should == Date.new(2011,4,30)
304
+ end
305
+
306
+ it 'should transform MMMYYYY to end of month (No delimiter)' do
307
+ dates = ['jan2011','feb2011','mar2011','apr2011']
308
+ dates = DateMaid::sweep(dates)
309
+ dates[0].should == Date.new(2011,1,31)
310
+ dates[1].should == Date.new(2011,2,28)
311
+ dates[2].should == Date.new(2011,3,31)
312
+ dates[3].should == Date.new(2011,4,30)
313
+ end
314
+
315
+ it 'should transform MMMYYYY to end of month (No delimiter, strip)' do
316
+ dates = ['jan2011','feb2011','mar2011','apr2011']
317
+ dates = DateMaid::sweep(dates)
318
+ dates[0].should == Date.new(2011,1,31)
319
+ dates[1].should == Date.new(2011,2,28)
320
+ dates[2].should == Date.new(2011,3,31)
321
+ dates[3].should == Date.new(2011,4,30)
322
+ end
323
+
324
+
325
+ it 'should transform YYYYMMM to end of month (No delimiter) even if one date is partially valid' do
326
+ dates = ['2011JAN','2011FEB','2011MAR','2011APR,4']
327
+ dates = DateMaid::sweep(dates)
328
+ dates[0].should == Date.new(2011,1,31)
329
+ dates[1].should == Date.new(2011,2,28)
330
+ dates[2].should == Date.new(2011,3,31)
331
+ dates[3].should == Date.new(2011,4,30)
332
+ end
333
+
334
+ it 'should transform YYYYMMM to end of month (No delimiter)' do
335
+ dates = ['2011JAN','2011FEB','2011MAR','2011APR,4']
336
+ dates = DateMaid::sweep(dates)
337
+ dates[0].should == Date.new(2011,1,31)
338
+ dates[1].should == Date.new(2011,2,28)
339
+ dates[2].should == Date.new(2011,3,31)
340
+ dates[3].should == Date.new(2011,4,30)
341
+ end
342
+
343
+ it 'should transform YYYY-MMM-DD to date' do
344
+ dates = ['2011-jan-01','2011-feb-01','2011-mar-3','2011-apr-4']
345
+ dates = DateMaid::sweep(dates)
346
+ dates[0].should == Date.new(2011,1,1)
347
+ dates[1].should == Date.new(2011,2,1)
348
+ dates[2].should == Date.new(2011,3,3)
349
+ dates[3].should == Date.new(2011,4,4)
350
+ end
351
+
352
+ it 'should transform YYYY-MMM-DD to date (strip)' do
353
+ dates = ['2011-jan-01','2011-feb-01','2011-mar-3','2011-apr-4']
354
+ dates = DateMaid::sweep(dates)
355
+ dates[0].should == Date.new(2011,1,1)
356
+ dates[1].should == Date.new(2011,2,1)
357
+ dates[2].should == Date.new(2011,3,3)
358
+ dates[3].should == Date.new(2011,4,4)
359
+ end
360
+
361
+
362
+ it 'should transform DD-MMM-YYYY to date' do
363
+ dates = ['01-jan-2011','01-feb-2011','3-mar-2011','4-apr-2011']
364
+ dates = DateMaid::sweep(dates)
365
+ dates[0].should == Date.new(2011,1,1)
366
+ dates[1].should == Date.new(2011,2,1)
367
+ dates[2].should == Date.new(2011,3,3)
368
+ dates[3].should == Date.new(2011,4,4)
369
+ end
370
+
371
+ it 'should transform DD-MMM-YYYY to date (strip)' do
372
+ dates = ['01-jan-2011','01-feb-2011','3-mar-2011','4-apr-2011']
373
+ dates = DateMaid::sweep(dates)
374
+ dates[0].should == Date.new(2011,1,1)
375
+ dates[1].should == Date.new(2011,2,1)
376
+ dates[2].should == Date.new(2011,3,3)
377
+ dates[3].should == Date.new(2011,4,4)
378
+ end
379
+
380
+ it 'should transform YYYYMMMDD to date (no delimiters)' do
381
+ dates = ['2011jan01','2011feb01','2011mar3','2011apr4']
382
+ dates = DateMaid::sweep(dates)
383
+ dates[0].should == Date.new(2011,1,1)
384
+ dates[1].should == Date.new(2011,2,1)
385
+ dates[2].should == Date.new(2011,3,3)
386
+ dates[3].should == Date.new(2011,4,4)
387
+ end
388
+
389
+ it 'should transform YYYYMMMDD to date (no delimiters, strip)' do
390
+ dates = ['2011jan01','2011feb01','2011mar3','2011apr4']
391
+ dates = DateMaid::sweep(dates)
392
+ dates[0].should == Date.new(2011,1,1)
393
+ dates[1].should == Date.new(2011,2,1)
394
+ dates[2].should == Date.new(2011,3,3)
395
+ dates[3].should == Date.new(2011,4,4)
396
+ end
397
+
398
+ it 'should transform DD-MMM-YYYY to date (no delimiters)' do
399
+ dates = ['01jan2011','01feb2011','3mar2011','4apr2011']
400
+ dates = DateMaid::sweep(dates)
401
+ dates[0].should == Date.new(2011,1,1)
402
+ dates[1].should == Date.new(2011,2,1)
403
+ dates[2].should == Date.new(2011,3,3)
404
+ dates[3].should == Date.new(2011,4,4)
405
+ end
406
+
407
+ it 'should transform DD-MMM-YYYY to date (no delimiters, strip)' do
408
+ dates = ['01jan2011','01feb2011','3mar2011','4apr2011']
409
+ dates = DateMaid::sweep(dates)
410
+ dates[0].should == Date.new(2011,1,1)
411
+ dates[1].should == Date.new(2011,2,1)
412
+ dates[2].should == Date.new(2011,3,3)
413
+ dates[3].should == Date.new(2011,4,4)
414
+ end
415
+
416
+ it 'should transform yyyy-Qq to end of quarter' do
417
+ dates = ['2011-Q1','2011-Q2','2011-Q3','2011-Q4']
418
+ dates = DateMaid::sweep(dates)
419
+ dates[0].should == Date.new(2011,3,31)
420
+ dates[1].should == Date.new(2011,6,30)
421
+ dates[2].should == Date.new(2011,9,30)
422
+ dates[3].should == Date.new(2011,12,31)
423
+ end
424
+
425
+ it 'should transform yyyy-Qq to end of quarter (strip)' do
426
+ dates = ['2011-Q1','2011-Q2','2011-Q3','2011-Q4']
427
+ dates = DateMaid::sweep(dates)
428
+ dates[0].should == Date.new(2011,3,31)
429
+ dates[1].should == Date.new(2011,6,30)
430
+ dates[2].should == Date.new(2011,9,30)
431
+ dates[3].should == Date.new(2011,12,31)
432
+ end
433
+
434
+ it 'should transform yyyyQq to end of quarter (no delimiter)' do
435
+ dates = ['2011q1','2011Q2','2011q3','2011Q4,4']
436
+ dates = DateMaid::sweep(dates)
437
+ dates[0].should == Date.new(2011,3,31)
438
+ dates[1].should == Date.new(2011,6,30)
439
+ dates[2].should == Date.new(2011,9,30)
440
+ dates[3].should == Date.new(2011,12,31)
441
+ end
442
+
443
+ it 'should handle white space at front and back of dates' do
444
+ dates = [' 2012q2 ']
445
+ dates = DateMaid::sweep(dates)
446
+ dates[0].should == Date.new(2012,6,30)
447
+ end
448
+
449
+ it 'should handle white space at front and back of dates (2)' do
450
+ dates = [' 2012 ']
451
+ dates = DateMaid::sweep(dates)
452
+ dates[0].should == Date.new(2012,12,31)
453
+ end
454
+
455
+ it 'should know 1871.10 is October' do
456
+ dates = ['1871.10']
457
+ dates = DateMaid::sweep(dates)
458
+ dates[0].should == Date.new(1871,10,31)
459
+ end
460
+
461
+ it 'should handle 1990' do
462
+ dates = ['1990']
463
+ dates = DateMaid::sweep(dates)
464
+ dates[0].should == Date.new(1990,12,31)
465
+ end
466
+
467
+ it 'should handle 1990 - 1995' do
468
+ dates = ['1990 - 1995']
469
+ dates = DateMaid::sweep(dates)
470
+ dates[0].should == Date.new(1990,12,31)
471
+ end
472
+
473
+ it 'should transform YYYYMMDD to date' do
474
+ dates = ['20010101','20110518','19701111','19770208','19900531']
475
+ dates = DateMaid::sweep(dates)
476
+ dates[0].should == Date.new(2001,1,1)
477
+ dates[1].should == Date.new(2011,5,18)
478
+ dates[2].should == Date.new(1970,11,11)
479
+ dates[3].should == Date.new(1977,2,8)
480
+ dates[4].should == Date.new(1990,5,31)
481
+ end
482
+
483
+ it 'should transform Jan 30, 1955' do
484
+ dates = ['Jan 30, 1955']
485
+ dates = DateMaid::sweep(dates)
486
+ dates[0].should == Date.new(1955,1,30)
487
+ end
488
+
489
+ it 'should transform Jan-68' do
490
+ dates = ['Dec-68','Jan-69']
491
+ dates = DateMaid::sweep(dates)
492
+ dates[0].should == Date.new(1968,12,31)
493
+ dates[1].should == Date.new(1969,1,31)
494
+ end
495
+
496
+
497
+ it 'should transform Jul-01' do
498
+ dates = ['Jul-01','Aug-01']
499
+ dates = DateMaid::sweep(dates)
500
+ dates[1].should == Date.new(2001,8,31)
501
+ dates[0].should == Date.new(2001,7,31)
502
+ end
503
+
504
+ it 'should transform Dec-31-12' do
505
+ dates = ['Dec-31-12']
506
+ dates = DateMaid::sweep(dates)
507
+ dates[0].should == Date.new(2012,12,31)
508
+ end
509
+
510
+ it 'should format YYYY/MM/DD' do
511
+ dates = ['20010101','20110518','19701111','19770208','19900531']
512
+ dates = DateMaid::sweep(dates)
513
+ dates[0].should == Date.new(2001,1,1)
514
+ dates[1].should == Date.new(2011,5,18)
515
+ dates[2].should == Date.new(1970,11,11)
516
+ dates[3].should == Date.new(1977,2,8)
517
+ dates[4].should == Date.new(1990,5,31)
518
+ end
519
+
520
+ it 'should strip days of the week' do
521
+ pending "Not implemented yet"
522
+ dates = ["Tuesday, April 30, 2013","Mon april 29, 2012"]
523
+ dates = DateMaid::sweep(dates)
524
+ dates[0].should == Date.new(2013,04,30)
525
+ dates[1].should == Date.new(2012,04,29)
526
+ end
527
+
528
+
529
529
  end