Martin Luther King Day: Solution
Presented here is a solution to the Martin Luther King Day exercises.
# ------- YOUR CODE -------------#
from dateutil import rrule
from datetime import datetime
MLK_DAY = rrule.rrule(
dtstart=datetime(1986, 1, 20), # First celebration
freq=rrule.YEARLY, # Occurs once per year
bymonth=1, # In January
byweekday=rrule.MO(+3), # On the 3rd Monday
)
# -------------------------------#
from datetime import datetime
MLK_TEST_CASES = [
((datetime(1970, 1, 1), datetime(1980, 1, 1)),
[]),
((datetime(1980, 1, 1), datetime(1989, 1, 1)),
[datetime(1986, 1, 20),
datetime(1987, 1, 19),
datetime(1988, 1, 18)]),
((datetime(2017, 2, 1), datetime(2022, 2, 1)),
[datetime(2018, 1, 15, 0, 0),
datetime(2019, 1, 21, 0, 0),
datetime(2020, 1, 20, 0, 0),
datetime(2021, 1, 18, 0, 0),
datetime(2022, 1, 17, 0, 0)]
),
]
def test_mlk_day():
for (between_args, expected) in MLK_TEST_CASES:
assert MLK_DAY.between(*between_args) == expected
if __name__ == "__main__":
test_mlk_day()
print('Success!')