|
9 | 9 | import pandas.lib as lib
|
10 | 10 | import pandas._period as period
|
11 | 11 | import pandas.algos as algos
|
12 |
| -from pandas.tseries.holiday import Holiday, SA, next_monday |
| 12 | +from pandas.tseries.holiday import Holiday, SA, next_monday,USMartinLutherKingJr,USMemorialDay,AbstractHolidayCalendar |
| 13 | +import datetime |
| 14 | + |
| 15 | + |
13 | 16 | from pandas import DateOffset
|
14 | 17 |
|
15 | 18 |
|
@@ -751,6 +754,28 @@ def test_get_period_field_raises_on_out_of_range(self):
|
751 | 754 | def test_get_period_field_array_raises_on_out_of_range(self):
|
752 | 755 | self.assertRaises(ValueError, period.get_period_field_arr, -1, np.empty(1), 0)
|
753 | 756 |
|
| 757 | +class TestFederalHolidayCalendar(tm.TestCase): |
| 758 | + # Test for issue 10278 |
| 759 | + def test_no_mlk_before_1984(self): |
| 760 | + class MLKCalendar(AbstractHolidayCalendar): |
| 761 | + rules=[USMartinLutherKingJr] |
| 762 | + holidays = MLKCalendar().holidays(start='1984', end='1988').to_pydatetime().tolist() |
| 763 | + # Testing to make sure holiday is not incorrectly observed before 1986 |
| 764 | + self.assertEqual(holidays, [datetime.datetime(1986, 1, 20, 0, 0), datetime.datetime(1987, 1, 19, 0, 0)]) |
| 765 | + |
| 766 | + def test_memorial_day(self): |
| 767 | + class MemorialDay(AbstractHolidayCalendar): |
| 768 | + rules=[USMemorialDay] |
| 769 | + holidays = MemorialDay().holidays(start='1971', end='1980').to_pydatetime().tolist() |
| 770 | + # Fixes 5/31 error and checked manually against wikipedia |
| 771 | + self.assertEqual(holidays, [datetime.datetime(1971, 5, 31, 0, 0), datetime.datetime(1972, 5, 29, 0, 0), |
| 772 | + datetime.datetime(1973, 5, 28, 0, 0), datetime.datetime(1974, 5, 27, 0, 0), |
| 773 | + datetime.datetime(1975, 5, 26, 0, 0), datetime.datetime(1976, 5, 31, 0, 0), |
| 774 | + datetime.datetime(1977, 5, 30, 0, 0), datetime.datetime(1978, 5, 29, 0, 0), |
| 775 | + datetime.datetime(1979, 5, 28, 0, 0)]) |
| 776 | + |
| 777 | + |
| 778 | + |
754 | 779 |
|
755 | 780 | class TestHolidayConflictingArguments(tm.TestCase):
|
756 | 781 |
|
|
0 commit comments