1# ------- YOUR CODE -------------# 2from dateutil import rrule 3from datetime import datetime 4 5MLK_DAY = rrule.rrule( 6 dtstart=datetime(1986, 1, 20), # First celebration 7 freq=rrule.YEARLY, # Occurs once per year 8 bymonth=1, # In January 9 byweekday=rrule.MO(+3), # On the 3rd Monday 10) 11 12# -------------------------------# 13 14from datetime import datetime 15 16MLK_TEST_CASES = [ 17 ((datetime(1970, 1, 1), datetime(1980, 1, 1)), 18 []), 19 ((datetime(1980, 1, 1), datetime(1989, 1, 1)), 20 [datetime(1986, 1, 20), 21 datetime(1987, 1, 19), 22 datetime(1988, 1, 18)]), 23 ((datetime(2017, 2, 1), datetime(2022, 2, 1)), 24 [datetime(2018, 1, 15, 0, 0), 25 datetime(2019, 1, 21, 0, 0), 26 datetime(2020, 1, 20, 0, 0), 27 datetime(2021, 1, 18, 0, 0), 28 datetime(2022, 1, 17, 0, 0)] 29 ), 30] 31 32 33def test_mlk_day(): 34 for (between_args, expected) in MLK_TEST_CASES: 35 assert MLK_DAY.between(*between_args) == expected 36 37 38if __name__ == "__main__": 39 test_mlk_day() 40 print('Success!') 41