@@ -55,87 +55,112 @@ def setUp(self):
5555 self .start_date = datetime (2011 , 1 , 1 )
5656 self .end_date = datetime (2020 , 12 , 31 )
5757
58+ def check_results (self , holiday , start , end , expected ):
59+ self .assertEqual (
60+ list (holiday .dates (start , end )),
61+ expected ,
62+ )
63+
5864 def test_usmemorialday (self ):
59- holidays = USMemorialDay .dates (self .start_date ,
60- self .end_date )
61- holidayList = [
62- datetime (2011 , 5 , 30 ),
63- datetime (2012 , 5 , 28 ),
64- datetime (2013 , 5 , 27 ),
65- datetime (2014 , 5 , 26 ),
66- datetime (2015 , 5 , 25 ),
67- datetime (2016 , 5 , 30 ),
68- datetime (2017 , 5 , 29 ),
69- datetime (2018 , 5 , 28 ),
70- datetime (2019 , 5 , 27 ),
71- datetime (2020 , 5 , 25 ),
72- ]
73- self .assertEqual (list (holidays ), holidayList )
65+ self .check_results (
66+ holiday = USMemorialDay ,
67+ start = self .start_date ,
68+ end = self .end_date ,
69+ expected = [
70+ datetime (2011 , 5 , 30 ),
71+ datetime (2012 , 5 , 28 ),
72+ datetime (2013 , 5 , 27 ),
73+ datetime (2014 , 5 , 26 ),
74+ datetime (2015 , 5 , 25 ),
75+ datetime (2016 , 5 , 30 ),
76+ datetime (2017 , 5 , 29 ),
77+ datetime (2018 , 5 , 28 ),
78+ datetime (2019 , 5 , 27 ),
79+ datetime (2020 , 5 , 25 ),
80+ ],
81+ )
7482
7583 def test_non_observed_holiday (self ):
76- july_3rd = Holiday ('July 4th Eve' , month = 7 , day = 3 )
77- result = july_3rd .dates ("2001-01-01" , "2003-03-03" )
78- expected = [Timestamp ('2001-07-03 00:00:00' ),
79- Timestamp ('2002-07-03 00:00:00' )]
80- self .assertEqual (list (result ), expected )
81- july_3rd = Holiday ('July 4th Eve' , month = 7 , day = 3 ,
82- days_of_week = (0 , 1 , 2 , 3 ))
83- result = july_3rd .dates ("2001-01-01" , "2008-03-03" )
84- expected = [Timestamp ('2001-07-03 00:00:00' ),
85- Timestamp ('2002-07-03 00:00:00' ),
86- Timestamp ('2003-07-03 00:00:00' ),
87- Timestamp ('2006-07-03 00:00:00' ),
88- Timestamp ('2007-07-03 00:00:00' )]
89- self .assertEqual (list (result ), expected )
84+
85+ self .check_results (
86+ Holiday ('July 4th Eve' , month = 7 , day = 3 ),
87+ start = "2001-01-01" ,
88+ end = "2003-03-03" ,
89+ expected = [
90+ Timestamp ('2001-07-03 00:00:00' ),
91+ Timestamp ('2002-07-03 00:00:00' )
92+ ]
93+ )
94+
95+ self .check_results (
96+ Holiday ('July 4th Eve' , month = 7 , day = 3 , days_of_week = (0 , 1 , 2 , 3 )),
97+ start = "2001-01-01" ,
98+ end = "2008-03-03" ,
99+ expected = [
100+ Timestamp ('2001-07-03 00:00:00' ),
101+ Timestamp ('2002-07-03 00:00:00' ),
102+ Timestamp ('2003-07-03 00:00:00' ),
103+ Timestamp ('2006-07-03 00:00:00' ),
104+ Timestamp ('2007-07-03 00:00:00' ),
105+ ]
106+ )
90107
91108 def test_easter (self ):
92- holidays = EasterMonday .dates (self .start_date ,
93- self .end_date )
94- holidayList = [Timestamp ('2011-04-25 00:00:00' ),
95- Timestamp ('2012-04-09 00:00:00' ),
96- Timestamp ('2013-04-01 00:00:00' ),
97- Timestamp ('2014-04-21 00:00:00' ),
98- Timestamp ('2015-04-06 00:00:00' ),
99- Timestamp ('2016-03-28 00:00:00' ),
100- Timestamp ('2017-04-17 00:00:00' ),
101- Timestamp ('2018-04-02 00:00:00' ),
102- Timestamp ('2019-04-22 00:00:00' ),
103- Timestamp ('2020-04-13 00:00:00' )]
104-
105-
106- self .assertEqual (list (holidays ), holidayList )
107- holidays = GoodFriday .dates (self .start_date ,
108- self .end_date )
109- holidayList = [Timestamp ('2011-04-22 00:00:00' ),
110- Timestamp ('2012-04-06 00:00:00' ),
111- Timestamp ('2013-03-29 00:00:00' ),
112- Timestamp ('2014-04-18 00:00:00' ),
113- Timestamp ('2015-04-03 00:00:00' ),
114- Timestamp ('2016-03-25 00:00:00' ),
115- Timestamp ('2017-04-14 00:00:00' ),
116- Timestamp ('2018-03-30 00:00:00' ),
117- Timestamp ('2019-04-19 00:00:00' ),
118- Timestamp ('2020-04-10 00:00:00' )]
119- self .assertEqual (list (holidays ), holidayList )
120-
109+
110+ self .check_results (
111+ EasterMonday ,
112+ start = self .start_date ,
113+ end = self .end_date ,
114+ expected = [
115+ Timestamp ('2011-04-25 00:00:00' ),
116+ Timestamp ('2012-04-09 00:00:00' ),
117+ Timestamp ('2013-04-01 00:00:00' ),
118+ Timestamp ('2014-04-21 00:00:00' ),
119+ Timestamp ('2015-04-06 00:00:00' ),
120+ Timestamp ('2016-03-28 00:00:00' ),
121+ Timestamp ('2017-04-17 00:00:00' ),
122+ Timestamp ('2018-04-02 00:00:00' ),
123+ Timestamp ('2019-04-22 00:00:00' ),
124+ Timestamp ('2020-04-13 00:00:00' ),
125+ ],
126+ )
127+ self .check_results (
128+ GoodFriday ,
129+ start = self .start_date ,
130+ end = self .end_date ,
131+ expected = [
132+ Timestamp ('2011-04-22 00:00:00' ),
133+ Timestamp ('2012-04-06 00:00:00' ),
134+ Timestamp ('2013-03-29 00:00:00' ),
135+ Timestamp ('2014-04-18 00:00:00' ),
136+ Timestamp ('2015-04-03 00:00:00' ),
137+ Timestamp ('2016-03-25 00:00:00' ),
138+ Timestamp ('2017-04-14 00:00:00' ),
139+ Timestamp ('2018-03-30 00:00:00' ),
140+ Timestamp ('2019-04-19 00:00:00' ),
141+ Timestamp ('2020-04-10 00:00:00' ),
142+ ],
143+ )
121144
122145 def test_usthanksgivingday (self ):
123- holidays = USThanksgivingDay .dates (self .start_date ,
124- self .end_date )
125- holidayList = [
126- datetime (2011 , 11 , 24 ),
127- datetime (2012 , 11 , 22 ),
128- datetime (2013 , 11 , 28 ),
129- datetime (2014 , 11 , 27 ),
130- datetime (2015 , 11 , 26 ),
131- datetime (2016 , 11 , 24 ),
132- datetime (2017 , 11 , 23 ),
133- datetime (2018 , 11 , 22 ),
134- datetime (2019 , 11 , 28 ),
135- datetime (2020 , 11 , 26 ),
136- ]
137-
138- self .assertEqual (list (holidays ), holidayList )
146+
147+ self .check_results (
148+ USThanksgivingDay ,
149+ start = self .start_date ,
150+ end = self .end_date ,
151+ expected = [
152+ datetime (2011 , 11 , 24 ),
153+ datetime (2012 , 11 , 22 ),
154+ datetime (2013 , 11 , 28 ),
155+ datetime (2014 , 11 , 27 ),
156+ datetime (2015 , 11 , 26 ),
157+ datetime (2016 , 11 , 24 ),
158+ datetime (2017 , 11 , 23 ),
159+ datetime (2018 , 11 , 22 ),
160+ datetime (2019 , 11 , 28 ),
161+ datetime (2020 , 11 , 26 ),
162+ ],
163+ )
139164
140165 def test_argument_types (self ):
141166 holidays = USThanksgivingDay .dates (self .start_date ,
0 commit comments