• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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