@@ -248,9 +248,10 @@ def test_anchored_shortcuts(self):
248
248
249
249
# ensure invalid cases fail as expected
250
250
invalid_anchors = ['SM-0' , 'SM-28' , 'SM-29' ,
251
- 'SM-FOO' , 'BSM' , 'SM--1'
251
+ 'SM-FOO' , 'BSM' , 'SM--1' ,
252
252
'SMS-1' , 'SMS-28' , 'SMS-30' ,
253
- 'SMS-BAR' , 'BSMS' , 'SMS--2' ]
253
+ 'SMS-BAR' , 'SMS-BYR' 'BSMS' ,
254
+ 'SMS--2' ]
254
255
for invalid_anchor in invalid_anchors :
255
256
with tm .assert_raises_regex (ValueError ,
256
257
'Invalid frequency: ' ):
@@ -292,11 +293,15 @@ def test_get_rule_month():
292
293
293
294
result = frequencies ._get_rule_month ('A-DEC' )
294
295
assert (result == 'DEC' )
296
+ result = frequencies ._get_rule_month ('Y-DEC' )
297
+ assert (result == 'DEC' )
295
298
result = frequencies ._get_rule_month (offsets .YearEnd ())
296
299
assert (result == 'DEC' )
297
300
298
301
result = frequencies ._get_rule_month ('A-MAY' )
299
302
assert (result == 'MAY' )
303
+ result = frequencies ._get_rule_month ('Y-MAY' )
304
+ assert (result == 'MAY' )
300
305
result = frequencies ._get_rule_month (offsets .YearEnd (month = 5 ))
301
306
assert (result == 'MAY' )
302
307
@@ -305,6 +310,10 @@ def test_period_str_to_code():
305
310
assert (frequencies ._period_str_to_code ('A' ) == 1000 )
306
311
assert (frequencies ._period_str_to_code ('A-DEC' ) == 1000 )
307
312
assert (frequencies ._period_str_to_code ('A-JAN' ) == 1001 )
313
+ assert (frequencies ._period_str_to_code ('Y' ) == 1000 )
314
+ assert (frequencies ._period_str_to_code ('Y-DEC' ) == 1000 )
315
+ assert (frequencies ._period_str_to_code ('Y-JAN' ) == 1001 )
316
+
308
317
assert (frequencies ._period_str_to_code ('Q' ) == 2000 )
309
318
assert (frequencies ._period_str_to_code ('Q-DEC' ) == 2000 )
310
319
assert (frequencies ._period_str_to_code ('Q-FEB' ) == 2002 )
@@ -349,6 +358,10 @@ def test_freq_code(self):
349
358
assert frequencies .get_freq ('3A' ) == 1000
350
359
assert frequencies .get_freq ('-1A' ) == 1000
351
360
361
+ assert frequencies .get_freq ('Y' ) == 1000
362
+ assert frequencies .get_freq ('3Y' ) == 1000
363
+ assert frequencies .get_freq ('-1Y' ) == 1000
364
+
352
365
assert frequencies .get_freq ('W' ) == 4000
353
366
assert frequencies .get_freq ('W-MON' ) == 4001
354
367
assert frequencies .get_freq ('W-FRI' ) == 4005
@@ -369,6 +382,13 @@ def test_freq_group(self):
369
382
assert frequencies .get_freq_group ('-1A' ) == 1000
370
383
assert frequencies .get_freq_group ('A-JAN' ) == 1000
371
384
assert frequencies .get_freq_group ('A-MAY' ) == 1000
385
+
386
+ assert frequencies .get_freq_group ('Y' ) == 1000
387
+ assert frequencies .get_freq_group ('3Y' ) == 1000
388
+ assert frequencies .get_freq_group ('-1Y' ) == 1000
389
+ assert frequencies .get_freq_group ('Y-JAN' ) == 1000
390
+ assert frequencies .get_freq_group ('Y-MAY' ) == 1000
391
+
372
392
assert frequencies .get_freq_group (offsets .YearEnd ()) == 1000
373
393
assert frequencies .get_freq_group (offsets .YearEnd (month = 1 )) == 1000
374
394
assert frequencies .get_freq_group (offsets .YearEnd (month = 5 )) == 1000
@@ -790,12 +810,6 @@ def test_series(self):
790
810
for freq in [None , 'L' ]:
791
811
s = Series (period_range ('2013' , periods = 10 , freq = freq ))
792
812
pytest .raises (TypeError , lambda : frequencies .infer_freq (s ))
793
- for freq in ['Y' ]:
794
-
795
- msg = frequencies ._INVALID_FREQ_ERROR
796
- with tm .assert_raises_regex (ValueError , msg ):
797
- s = Series (period_range ('2013' , periods = 10 , freq = freq ))
798
- pytest .raises (TypeError , lambda : frequencies .infer_freq (s ))
799
813
800
814
# DateTimeIndex
801
815
for freq in ['M' , 'L' , 'S' ]:
@@ -812,11 +826,12 @@ def test_legacy_offset_warnings(self):
812
826
'W@FRI' , 'W@SAT' , 'W@SUN' , 'Q@JAN' , 'Q@FEB' , 'Q@MAR' ,
813
827
'A@JAN' , 'A@FEB' , 'A@MAR' , 'A@APR' , 'A@MAY' , 'A@JUN' ,
814
828
'A@JUL' , 'A@AUG' , 'A@SEP' , 'A@OCT' , 'A@NOV' , 'A@DEC' ,
815
- 'WOM@1MON' , 'WOM@2MON' , 'WOM@3MON' , 'WOM@4MON' ,
816
- 'WOM@1TUE' , 'WOM@2TUE' , 'WOM@3TUE' , 'WOM@4TUE' ,
817
- 'WOM@1WED' , 'WOM@2WED' , 'WOM@3WED' , 'WOM@4WED' ,
818
- 'WOM@1THU' , 'WOM@2THU' , 'WOM@3THU' , 'WOM@4THU'
819
- 'WOM@1FRI' , 'WOM@2FRI' , 'WOM@3FRI' , 'WOM@4FRI' ]
829
+ 'Y@JAN' , 'WOM@1MON' , 'WOM@2MON' , 'WOM@3MON' ,
830
+ 'WOM@4MON' , 'WOM@1TUE' , 'WOM@2TUE' , 'WOM@3TUE' ,
831
+ 'WOM@4TUE' , 'WOM@1WED' , 'WOM@2WED' , 'WOM@3WED' ,
832
+ 'WOM@4WED' , 'WOM@1THU' , 'WOM@2THU' , 'WOM@3THU' ,
833
+ 'WOM@4THU' , 'WOM@1FRI' , 'WOM@2FRI' , 'WOM@3FRI' ,
834
+ 'WOM@4FRI' ]
820
835
821
836
msg = frequencies ._INVALID_FREQ_ERROR
822
837
for freq in freqs :
0 commit comments