Skip to content

Commit 2a3dda0

Browse files
ErnieWhiteBethanyG
ErnieWhite
authored andcommitted
Changed exercise to use ordinal names instead of abbreviations
1 parent 0c7bad8 commit 2a3dda0

File tree

4 files changed

+72
-74
lines changed

4 files changed

+72
-74
lines changed

exercises/practice/meetup/.meta/additional_tests.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"input": {
77
"year": 2015,
88
"month": 3,
9-
"week": "5th",
9+
"week": "fifth",
1010
"dayofweek": "Monday"
1111
},
1212
"expected": "2015-03-30"
@@ -17,7 +17,7 @@
1717
"input": {
1818
"year": 2024,
1919
"month": 2,
20-
"week": "5th",
20+
"week": "fifth",
2121
"dayofweek": "Thursday"
2222
},
2323
"expected": "2024-02-29"
@@ -28,7 +28,7 @@
2828
"input": {
2929
"year": 2020,
3030
"month": 2,
31-
"week": "5th",
31+
"week": "fifth",
3232
"dayofweek": "Saturday"
3333
},
3434
"expected": "2020-02-29"
@@ -61,7 +61,7 @@
6161
"input": {
6262
"year": 2022,
6363
"month": 2,
64-
"week": "5th",
64+
"week": "fifth",
6565
"dayofweek": "Monday"
6666
},
6767
"expected": {"error": "That day does not exist."}
@@ -72,7 +72,7 @@
7272
"input": {
7373
"year": 2022,
7474
"month": 8,
75-
"week": "5th",
75+
"week": "fifth",
7676
"dayofweek": "Friday"
7777
},
7878
"expected": {"error": "That day does not exist."}
@@ -83,10 +83,10 @@
8383
"input": {
8484
"year": 2023,
8585
"month": 5,
86-
"week": "5th",
86+
"week": "fifth",
8787
"dayofweek": "Thursday"
8888
},
8989
"expected": {"error": "That day does not exist."}
9090
}
9191
]
92-
}
92+
}

exercises/practice/meetup/.meta/example.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ def _choice(week):
1414
return lambda dates: next(date for date in dates if
1515
13 <= date.day <= 19)
1616

17-
day = -1 if (week == 'last') else (int(week[0]) - 1)
17+
ordinals = {'first', 'second', 'third', 'fourth', 'fifth', 'sixth'}
18+
day = -1 if (week == 'last') else (ordinals.index(week))
1819

1920
def _func(dates):
2021
if day < len(dates):

exercises/practice/meetup/.meta/template.j2

-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
{%- set input.month = case["input"]["month"] %}
77
{%- set input.week = case["input"]["week"] %}
88
{%- set input.dayofweek = case["input"]["dayofweek"] %}
9-
{%- for (k, v) in {"first":"1st", "second":"2nd", "third":"3rd", "fourth":"4th", "fifth":"5th", "sixth":"6th"}.items() %}
10-
{%- set input.week = input.week.replace(k, v) %}
11-
{%- endfor %}
129
{%- if case is error_case %}
1310
with self.assertRaises(MeetupDayException) as err:
1411
{{ case["property"] }}({{ input.year }}, {{ input.month }}, "{{ input.week }}", "{{ input.dayofweek }}")

exercises/practice/meetup/meetup_test.py

+63-63
Original file line numberDiff line numberDiff line change
@@ -74,172 +74,172 @@ def test_when_teenth_sunday_is_the_13th_the_first_day_of_the_teenth_week(self):
7474
self.assertEqual(meetup(2013, 10, "teenth", "Sunday"), date(2013, 10, 13))
7575

7676
def test_when_first_monday_is_some_day_in_the_middle_of_the_first_week(self):
77-
self.assertEqual(meetup(2013, 3, "1st", "Monday"), date(2013, 3, 4))
77+
self.assertEqual(meetup(2013, 3, "first", "Monday"), date(2013, 3, 4))
7878

7979
def test_when_first_monday_is_the_1st_the_first_day_of_the_first_week(self):
80-
self.assertEqual(meetup(2013, 4, "1st", "Monday"), date(2013, 4, 1))
80+
self.assertEqual(meetup(2013, 4, "first", "Monday"), date(2013, 4, 1))
8181

8282
def test_when_first_tuesday_is_the_7th_the_last_day_of_the_first_week(self):
83-
self.assertEqual(meetup(2013, 5, "1st", "Tuesday"), date(2013, 5, 7))
83+
self.assertEqual(meetup(2013, 5, "first", "Tuesday"), date(2013, 5, 7))
8484

8585
def test_when_first_tuesday_is_some_day_in_the_middle_of_the_first_week(self):
86-
self.assertEqual(meetup(2013, 6, "1st", "Tuesday"), date(2013, 6, 4))
86+
self.assertEqual(meetup(2013, 6, "first", "Tuesday"), date(2013, 6, 4))
8787

8888
def test_when_first_wednesday_is_some_day_in_the_middle_of_the_first_week(self):
89-
self.assertEqual(meetup(2013, 7, "1st", "Wednesday"), date(2013, 7, 3))
89+
self.assertEqual(meetup(2013, 7, "first", "Wednesday"), date(2013, 7, 3))
9090

9191
def test_when_first_wednesday_is_the_7th_the_last_day_of_the_first_week(self):
92-
self.assertEqual(meetup(2013, 8, "1st", "Wednesday"), date(2013, 8, 7))
92+
self.assertEqual(meetup(2013, 8, "first", "Wednesday"), date(2013, 8, 7))
9393

9494
def test_when_first_thursday_is_some_day_in_the_middle_of_the_first_week(self):
95-
self.assertEqual(meetup(2013, 9, "1st", "Thursday"), date(2013, 9, 5))
95+
self.assertEqual(meetup(2013, 9, "first", "Thursday"), date(2013, 9, 5))
9696

9797
def test_when_first_thursday_is_another_day_in_the_middle_of_the_first_week(self):
98-
self.assertEqual(meetup(2013, 10, "1st", "Thursday"), date(2013, 10, 3))
98+
self.assertEqual(meetup(2013, 10, "first", "Thursday"), date(2013, 10, 3))
9999

100100
def test_when_first_friday_is_the_1st_the_first_day_of_the_first_week(self):
101-
self.assertEqual(meetup(2013, 11, "1st", "Friday"), date(2013, 11, 1))
101+
self.assertEqual(meetup(2013, 11, "first", "Friday"), date(2013, 11, 1))
102102

103103
def test_when_first_friday_is_some_day_in_the_middle_of_the_first_week(self):
104-
self.assertEqual(meetup(2013, 12, "1st", "Friday"), date(2013, 12, 6))
104+
self.assertEqual(meetup(2013, 12, "first", "Friday"), date(2013, 12, 6))
105105

106106
def test_when_first_saturday_is_some_day_in_the_middle_of_the_first_week(self):
107-
self.assertEqual(meetup(2013, 1, "1st", "Saturday"), date(2013, 1, 5))
107+
self.assertEqual(meetup(2013, 1, "first", "Saturday"), date(2013, 1, 5))
108108

109109
def test_when_first_saturday_is_another_day_in_the_middle_of_the_first_week(self):
110-
self.assertEqual(meetup(2013, 2, "1st", "Saturday"), date(2013, 2, 2))
110+
self.assertEqual(meetup(2013, 2, "first", "Saturday"), date(2013, 2, 2))
111111

112112
def test_when_first_sunday_is_some_day_in_the_middle_of_the_first_week(self):
113-
self.assertEqual(meetup(2013, 3, "1st", "Sunday"), date(2013, 3, 3))
113+
self.assertEqual(meetup(2013, 3, "first", "Sunday"), date(2013, 3, 3))
114114

115115
def test_when_first_sunday_is_the_7th_the_last_day_of_the_first_week(self):
116-
self.assertEqual(meetup(2013, 4, "1st", "Sunday"), date(2013, 4, 7))
116+
self.assertEqual(meetup(2013, 4, "first", "Sunday"), date(2013, 4, 7))
117117

118118
def test_when_second_monday_is_some_day_in_the_middle_of_the_second_week(self):
119-
self.assertEqual(meetup(2013, 3, "2nd", "Monday"), date(2013, 3, 11))
119+
self.assertEqual(meetup(2013, 3, "second", "Monday"), date(2013, 3, 11))
120120

121121
def test_when_second_monday_is_the_8th_the_first_day_of_the_second_week(self):
122-
self.assertEqual(meetup(2013, 4, "2nd", "Monday"), date(2013, 4, 8))
122+
self.assertEqual(meetup(2013, 4, "second", "Monday"), date(2013, 4, 8))
123123

124124
def test_when_second_tuesday_is_the_14th_the_last_day_of_the_second_week(self):
125-
self.assertEqual(meetup(2013, 5, "2nd", "Tuesday"), date(2013, 5, 14))
125+
self.assertEqual(meetup(2013, 5, "second", "Tuesday"), date(2013, 5, 14))
126126

127127
def test_when_second_tuesday_is_some_day_in_the_middle_of_the_second_week(self):
128-
self.assertEqual(meetup(2013, 6, "2nd", "Tuesday"), date(2013, 6, 11))
128+
self.assertEqual(meetup(2013, 6, "second", "Tuesday"), date(2013, 6, 11))
129129

130130
def test_when_second_wednesday_is_some_day_in_the_middle_of_the_second_week(self):
131-
self.assertEqual(meetup(2013, 7, "2nd", "Wednesday"), date(2013, 7, 10))
131+
self.assertEqual(meetup(2013, 7, "second", "Wednesday"), date(2013, 7, 10))
132132

133133
def test_when_second_wednesday_is_the_14th_the_last_day_of_the_second_week(self):
134-
self.assertEqual(meetup(2013, 8, "2nd", "Wednesday"), date(2013, 8, 14))
134+
self.assertEqual(meetup(2013, 8, "second", "Wednesday"), date(2013, 8, 14))
135135

136136
def test_when_second_thursday_is_some_day_in_the_middle_of_the_second_week(self):
137-
self.assertEqual(meetup(2013, 9, "2nd", "Thursday"), date(2013, 9, 12))
137+
self.assertEqual(meetup(2013, 9, "second", "Thursday"), date(2013, 9, 12))
138138

139139
def test_when_second_thursday_is_another_day_in_the_middle_of_the_second_week(self):
140-
self.assertEqual(meetup(2013, 10, "2nd", "Thursday"), date(2013, 10, 10))
140+
self.assertEqual(meetup(2013, 10, "second", "Thursday"), date(2013, 10, 10))
141141

142142
def test_when_second_friday_is_the_8th_the_first_day_of_the_second_week(self):
143-
self.assertEqual(meetup(2013, 11, "2nd", "Friday"), date(2013, 11, 8))
143+
self.assertEqual(meetup(2013, 11, "second", "Friday"), date(2013, 11, 8))
144144

145145
def test_when_second_friday_is_some_day_in_the_middle_of_the_second_week(self):
146-
self.assertEqual(meetup(2013, 12, "2nd", "Friday"), date(2013, 12, 13))
146+
self.assertEqual(meetup(2013, 12, "second", "Friday"), date(2013, 12, 13))
147147

148148
def test_when_second_saturday_is_some_day_in_the_middle_of_the_second_week(self):
149-
self.assertEqual(meetup(2013, 1, "2nd", "Saturday"), date(2013, 1, 12))
149+
self.assertEqual(meetup(2013, 1, "second", "Saturday"), date(2013, 1, 12))
150150

151151
def test_when_second_saturday_is_another_day_in_the_middle_of_the_second_week(self):
152-
self.assertEqual(meetup(2013, 2, "2nd", "Saturday"), date(2013, 2, 9))
152+
self.assertEqual(meetup(2013, 2, "second", "Saturday"), date(2013, 2, 9))
153153

154154
def test_when_second_sunday_is_some_day_in_the_middle_of_the_second_week(self):
155-
self.assertEqual(meetup(2013, 3, "2nd", "Sunday"), date(2013, 3, 10))
155+
self.assertEqual(meetup(2013, 3, "second", "Sunday"), date(2013, 3, 10))
156156

157157
def test_when_second_sunday_is_the_14th_the_last_day_of_the_second_week(self):
158-
self.assertEqual(meetup(2013, 4, "2nd", "Sunday"), date(2013, 4, 14))
158+
self.assertEqual(meetup(2013, 4, "second", "Sunday"), date(2013, 4, 14))
159159

160160
def test_when_third_monday_is_some_day_in_the_middle_of_the_third_week(self):
161-
self.assertEqual(meetup(2013, 3, "3rd", "Monday"), date(2013, 3, 18))
161+
self.assertEqual(meetup(2013, 3, "third", "Monday"), date(2013, 3, 18))
162162

163163
def test_when_third_monday_is_the_15th_the_first_day_of_the_third_week(self):
164-
self.assertEqual(meetup(2013, 4, "3rd", "Monday"), date(2013, 4, 15))
164+
self.assertEqual(meetup(2013, 4, "third", "Monday"), date(2013, 4, 15))
165165

166166
def test_when_third_tuesday_is_the_21st_the_last_day_of_the_third_week(self):
167-
self.assertEqual(meetup(2013, 5, "3rd", "Tuesday"), date(2013, 5, 21))
167+
self.assertEqual(meetup(2013, 5, "third", "Tuesday"), date(2013, 5, 21))
168168

169169
def test_when_third_tuesday_is_some_day_in_the_middle_of_the_third_week(self):
170-
self.assertEqual(meetup(2013, 6, "3rd", "Tuesday"), date(2013, 6, 18))
170+
self.assertEqual(meetup(2013, 6, "third", "Tuesday"), date(2013, 6, 18))
171171

172172
def test_when_third_wednesday_is_some_day_in_the_middle_of_the_third_week(self):
173-
self.assertEqual(meetup(2013, 7, "3rd", "Wednesday"), date(2013, 7, 17))
173+
self.assertEqual(meetup(2013, 7, "third", "Wednesday"), date(2013, 7, 17))
174174

175175
def test_when_third_wednesday_is_the_21st_the_last_day_of_the_third_week(self):
176-
self.assertEqual(meetup(2013, 8, "3rd", "Wednesday"), date(2013, 8, 21))
176+
self.assertEqual(meetup(2013, 8, "third", "Wednesday"), date(2013, 8, 21))
177177

178178
def test_when_third_thursday_is_some_day_in_the_middle_of_the_third_week(self):
179-
self.assertEqual(meetup(2013, 9, "3rd", "Thursday"), date(2013, 9, 19))
179+
self.assertEqual(meetup(2013, 9, "third", "Thursday"), date(2013, 9, 19))
180180

181181
def test_when_third_thursday_is_another_day_in_the_middle_of_the_third_week(self):
182-
self.assertEqual(meetup(2013, 10, "3rd", "Thursday"), date(2013, 10, 17))
182+
self.assertEqual(meetup(2013, 10, "third", "Thursday"), date(2013, 10, 17))
183183

184184
def test_when_third_friday_is_the_15th_the_first_day_of_the_third_week(self):
185-
self.assertEqual(meetup(2013, 11, "3rd", "Friday"), date(2013, 11, 15))
185+
self.assertEqual(meetup(2013, 11, "third", "Friday"), date(2013, 11, 15))
186186

187187
def test_when_third_friday_is_some_day_in_the_middle_of_the_third_week(self):
188-
self.assertEqual(meetup(2013, 12, "3rd", "Friday"), date(2013, 12, 20))
188+
self.assertEqual(meetup(2013, 12, "third", "Friday"), date(2013, 12, 20))
189189

190190
def test_when_third_saturday_is_some_day_in_the_middle_of_the_third_week(self):
191-
self.assertEqual(meetup(2013, 1, "3rd", "Saturday"), date(2013, 1, 19))
191+
self.assertEqual(meetup(2013, 1, "third", "Saturday"), date(2013, 1, 19))
192192

193193
def test_when_third_saturday_is_another_day_in_the_middle_of_the_third_week(self):
194-
self.assertEqual(meetup(2013, 2, "3rd", "Saturday"), date(2013, 2, 16))
194+
self.assertEqual(meetup(2013, 2, "third", "Saturday"), date(2013, 2, 16))
195195

196196
def test_when_third_sunday_is_some_day_in_the_middle_of_the_third_week(self):
197-
self.assertEqual(meetup(2013, 3, "3rd", "Sunday"), date(2013, 3, 17))
197+
self.assertEqual(meetup(2013, 3, "third", "Sunday"), date(2013, 3, 17))
198198

199199
def test_when_third_sunday_is_the_21st_the_last_day_of_the_third_week(self):
200-
self.assertEqual(meetup(2013, 4, "3rd", "Sunday"), date(2013, 4, 21))
200+
self.assertEqual(meetup(2013, 4, "third", "Sunday"), date(2013, 4, 21))
201201

202202
def test_when_fourth_monday_is_some_day_in_the_middle_of_the_fourth_week(self):
203-
self.assertEqual(meetup(2013, 3, "4th", "Monday"), date(2013, 3, 25))
203+
self.assertEqual(meetup(2013, 3, "fourth", "Monday"), date(2013, 3, 25))
204204

205205
def test_when_fourth_monday_is_the_22nd_the_first_day_of_the_fourth_week(self):
206-
self.assertEqual(meetup(2013, 4, "4th", "Monday"), date(2013, 4, 22))
206+
self.assertEqual(meetup(2013, 4, "fourth", "Monday"), date(2013, 4, 22))
207207

208208
def test_when_fourth_tuesday_is_the_28th_the_last_day_of_the_fourth_week(self):
209-
self.assertEqual(meetup(2013, 5, "4th", "Tuesday"), date(2013, 5, 28))
209+
self.assertEqual(meetup(2013, 5, "fourth", "Tuesday"), date(2013, 5, 28))
210210

211211
def test_when_fourth_tuesday_is_some_day_in_the_middle_of_the_fourth_week(self):
212-
self.assertEqual(meetup(2013, 6, "4th", "Tuesday"), date(2013, 6, 25))
212+
self.assertEqual(meetup(2013, 6, "fourth", "Tuesday"), date(2013, 6, 25))
213213

214214
def test_when_fourth_wednesday_is_some_day_in_the_middle_of_the_fourth_week(self):
215-
self.assertEqual(meetup(2013, 7, "4th", "Wednesday"), date(2013, 7, 24))
215+
self.assertEqual(meetup(2013, 7, "fourth", "Wednesday"), date(2013, 7, 24))
216216

217217
def test_when_fourth_wednesday_is_the_28th_the_last_day_of_the_fourth_week(self):
218-
self.assertEqual(meetup(2013, 8, "4th", "Wednesday"), date(2013, 8, 28))
218+
self.assertEqual(meetup(2013, 8, "fourth", "Wednesday"), date(2013, 8, 28))
219219

220220
def test_when_fourth_thursday_is_some_day_in_the_middle_of_the_fourth_week(self):
221-
self.assertEqual(meetup(2013, 9, "4th", "Thursday"), date(2013, 9, 26))
221+
self.assertEqual(meetup(2013, 9, "fourth", "Thursday"), date(2013, 9, 26))
222222

223223
def test_when_fourth_thursday_is_another_day_in_the_middle_of_the_fourth_week(self):
224-
self.assertEqual(meetup(2013, 10, "4th", "Thursday"), date(2013, 10, 24))
224+
self.assertEqual(meetup(2013, 10, "fourth", "Thursday"), date(2013, 10, 24))
225225

226226
def test_when_fourth_friday_is_the_22nd_the_first_day_of_the_fourth_week(self):
227-
self.assertEqual(meetup(2013, 11, "4th", "Friday"), date(2013, 11, 22))
227+
self.assertEqual(meetup(2013, 11, "fourth", "Friday"), date(2013, 11, 22))
228228

229229
def test_when_fourth_friday_is_some_day_in_the_middle_of_the_fourth_week(self):
230-
self.assertEqual(meetup(2013, 12, "4th", "Friday"), date(2013, 12, 27))
230+
self.assertEqual(meetup(2013, 12, "fourth", "Friday"), date(2013, 12, 27))
231231

232232
def test_when_fourth_saturday_is_some_day_in_the_middle_of_the_fourth_week(self):
233-
self.assertEqual(meetup(2013, 1, "4th", "Saturday"), date(2013, 1, 26))
233+
self.assertEqual(meetup(2013, 1, "fourth", "Saturday"), date(2013, 1, 26))
234234

235235
def test_when_fourth_saturday_is_another_day_in_the_middle_of_the_fourth_week(self):
236-
self.assertEqual(meetup(2013, 2, "4th", "Saturday"), date(2013, 2, 23))
236+
self.assertEqual(meetup(2013, 2, "fourth", "Saturday"), date(2013, 2, 23))
237237

238238
def test_when_fourth_sunday_is_some_day_in_the_middle_of_the_fourth_week(self):
239-
self.assertEqual(meetup(2013, 3, "4th", "Sunday"), date(2013, 3, 24))
239+
self.assertEqual(meetup(2013, 3, "fourth", "Sunday"), date(2013, 3, 24))
240240

241241
def test_when_fourth_sunday_is_the_28th_the_last_day_of_the_fourth_week(self):
242-
self.assertEqual(meetup(2013, 4, "4th", "Sunday"), date(2013, 4, 28))
242+
self.assertEqual(meetup(2013, 4, "fourth", "Sunday"), date(2013, 4, 28))
243243

244244
def test_last_monday_in_a_month_with_four_mondays(self):
245245
self.assertEqual(meetup(2013, 3, "last", "Monday"), date(2013, 3, 25))
@@ -293,18 +293,18 @@ def test_when_last_sunday_in_february_in_a_non_leap_year_is_not_the_29th(self):
293293
self.assertEqual(meetup(2015, 2, "last", "Sunday"), date(2015, 2, 22))
294294

295295
def test_when_first_friday_is_the_7th_the_last_day_of_the_first_week(self):
296-
self.assertEqual(meetup(2012, 12, "1st", "Friday"), date(2012, 12, 7))
296+
self.assertEqual(meetup(2012, 12, "first", "Friday"), date(2012, 12, 7))
297297

298298
# Additional tests for this track
299299

300300
def test_fifth_monday_of_march_2015(self):
301-
self.assertEqual(meetup(2015, 3, "5th", "Monday"), date(2015, 3, 30))
301+
self.assertEqual(meetup(2015, 3, "fifth", "Monday"), date(2015, 3, 30))
302302

303303
def test_fifth_thursday_of_february_2024(self):
304-
self.assertEqual(meetup(2024, 2, "5th", "Thursday"), date(2024, 2, 29))
304+
self.assertEqual(meetup(2024, 2, "fifth", "Thursday"), date(2024, 2, 29))
305305

306306
def test_fifth_saturday_of_february_2020(self):
307-
self.assertEqual(meetup(2020, 2, "5th", "Saturday"), date(2020, 2, 29))
307+
self.assertEqual(meetup(2020, 2, "fifth", "Saturday"), date(2020, 2, 29))
308308

309309
def test_last_sunday_of_june_2024(self):
310310
self.assertEqual(meetup(2024, 6, "last", "Sunday"), date(2024, 6, 30))
@@ -314,18 +314,18 @@ def test_teenth_friday_of_may_2022(self):
314314

315315
def test_nonexistent_fifth_monday_of_february_2022(self):
316316
with self.assertRaises(MeetupDayException) as err:
317-
meetup(2022, 2, "5th", "Monday")
317+
meetup(2022, 2, "fifth", "Monday")
318318
self.assertEqual(type(err.exception), MeetupDayException)
319319
self.assertEqual(err.exception.args[0], "That day does not exist.")
320320

321321
def test_nonexistent_fifth_friday_of_august_2022(self):
322322
with self.assertRaises(MeetupDayException) as err:
323-
meetup(2022, 8, "5th", "Friday")
323+
meetup(2022, 8, "fifth", "Friday")
324324
self.assertEqual(type(err.exception), MeetupDayException)
325325
self.assertEqual(err.exception.args[0], "That day does not exist.")
326326

327327
def test_nonexistent_fifth_thursday_of_may_2023(self):
328328
with self.assertRaises(MeetupDayException) as err:
329-
meetup(2023, 5, "5th", "Thursday")
329+
meetup(2023, 5, "fifth", "Thursday")
330330
self.assertEqual(type(err.exception), MeetupDayException)
331331
self.assertEqual(err.exception.args[0], "That day does not exist.")

0 commit comments

Comments
 (0)