From ad73bb47ac2cb3bdcfa1170248e45d2fcacd7267 Mon Sep 17 00:00:00 2001 From: Matt McKnett Date: Thu, 30 Mar 2023 17:20:48 -0700 Subject: [PATCH 1/2] Tie-breaking highest word Students might tie-break by picking the shortest overall word, not the shortest highest-scoring word. --- tests/test_wave_04.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_wave_04.py b/tests/test_wave_04.py index e586621c..6e311adf 100644 --- a/tests/test_wave_04.py +++ b/tests/test_wave_04.py @@ -110,7 +110,7 @@ def test_get_highest_word_many_ties_pick_shortest(): def test_get_highest_word_does_not_return_early_after_first_tiebreaker(): # Arrange - words = ["WWW", "MMMM", "BBBBBB", "AAAAAAAAD", "JQ", "KFHK"] + words = ["WWW", "MMMM", "BBBBBB", "AAAAAAAAD", "JQ", "KFHK", "A"] # Act best_word = get_highest_word_score(words) From 6ab26c78f2da1f68e362fc58e0dadd96851d1649 Mon Sep 17 00:00:00 2001 From: Matt McKnett Date: Thu, 30 Mar 2023 17:21:32 -0700 Subject: [PATCH 2/2] draw_letters should be able to draw duplicates Students might satisfy the letter-in-hand frequency rules by only ever drawing a letter once. --- tests/test_wave_01.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/test_wave_01.py b/tests/test_wave_01.py index ef48e03b..09e360cb 100644 --- a/tests/test_wave_01.py +++ b/tests/test_wave_01.py @@ -73,4 +73,19 @@ def test_draw_letters_returns_different_hands(): hand3 = draw_letters() # Assert - assert hand1 != hand2 or hand2 != hand3 \ No newline at end of file + assert hand1 != hand2 or hand2 != hand3 + +def test_ever_draws_duplicate_letters(): + # Arrange + def has_dupes(letter_bank): + unique_letters = set(letter_bank) + return len(unique_letters) != len(letter_bank) + + # Act + saw_a_duplicate = False + for i in range(1000): + letters = draw_letters() + saw_a_duplicate = saw_a_duplicate or has_dupes(letters) + + # Assert + assert saw_a_duplicate