@@ -248,9 +248,10 @@ def test_anchored_shortcuts(self):
248248
249249 # ensure invalid cases fail as expected
250250 invalid_anchors = ['SM-0' , 'SM-28' , 'SM-29' ,
251- 'SM-FOO' , 'BSM' , 'SM--1'
251+ 'SM-FOO' , 'BSM' , 'SM--1' ,
252252 'SMS-1' , 'SMS-28' , 'SMS-30' ,
253- 'SMS-BAR' , 'BSMS' , 'SMS--2' ]
253+ 'SMS-BAR' , 'SMS-BYR' 'BSMS' ,
254+ 'SMS--2' ]
254255 for invalid_anchor in invalid_anchors :
255256 with tm .assert_raises_regex (ValueError ,
256257 'Invalid frequency: ' ):
@@ -292,11 +293,15 @@ def test_get_rule_month():
292293
293294 result = frequencies ._get_rule_month ('A-DEC' )
294295 assert (result == 'DEC' )
296+ result = frequencies ._get_rule_month ('Y-DEC' )
297+ assert (result == 'DEC' )
295298 result = frequencies ._get_rule_month (offsets .YearEnd ())
296299 assert (result == 'DEC' )
297300
298301 result = frequencies ._get_rule_month ('A-MAY' )
299302 assert (result == 'MAY' )
303+ result = frequencies ._get_rule_month ('Y-MAY' )
304+ assert (result == 'MAY' )
300305 result = frequencies ._get_rule_month (offsets .YearEnd (month = 5 ))
301306 assert (result == 'MAY' )
302307
@@ -305,6 +310,10 @@ def test_period_str_to_code():
305310 assert (frequencies ._period_str_to_code ('A' ) == 1000 )
306311 assert (frequencies ._period_str_to_code ('A-DEC' ) == 1000 )
307312 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+
308317 assert (frequencies ._period_str_to_code ('Q' ) == 2000 )
309318 assert (frequencies ._period_str_to_code ('Q-DEC' ) == 2000 )
310319 assert (frequencies ._period_str_to_code ('Q-FEB' ) == 2002 )
@@ -349,6 +358,10 @@ def test_freq_code(self):
349358 assert frequencies .get_freq ('3A' ) == 1000
350359 assert frequencies .get_freq ('-1A' ) == 1000
351360
361+ assert frequencies .get_freq ('Y' ) == 1000
362+ assert frequencies .get_freq ('3Y' ) == 1000
363+ assert frequencies .get_freq ('-1Y' ) == 1000
364+
352365 assert frequencies .get_freq ('W' ) == 4000
353366 assert frequencies .get_freq ('W-MON' ) == 4001
354367 assert frequencies .get_freq ('W-FRI' ) == 4005
@@ -369,6 +382,13 @@ def test_freq_group(self):
369382 assert frequencies .get_freq_group ('-1A' ) == 1000
370383 assert frequencies .get_freq_group ('A-JAN' ) == 1000
371384 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+
372392 assert frequencies .get_freq_group (offsets .YearEnd ()) == 1000
373393 assert frequencies .get_freq_group (offsets .YearEnd (month = 1 )) == 1000
374394 assert frequencies .get_freq_group (offsets .YearEnd (month = 5 )) == 1000
@@ -790,12 +810,6 @@ def test_series(self):
790810 for freq in [None , 'L' ]:
791811 s = Series (period_range ('2013' , periods = 10 , freq = freq ))
792812 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 ))
799813
800814 # DateTimeIndex
801815 for freq in ['M' , 'L' , 'S' ]:
@@ -812,11 +826,12 @@ def test_legacy_offset_warnings(self):
812826 'W@FRI' , 'W@SAT' , 'W@SUN' , 'Q@JAN' , 'Q@FEB' , 'Q@MAR' ,
813827 'A@JAN' , 'A@FEB' , 'A@MAR' , 'A@APR' , 'A@MAY' , 'A@JUN' ,
814828 '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' ]
820835
821836 msg = frequencies ._INVALID_FREQ_ERROR
822837 for freq in freqs :
0 commit comments