summaryrefslogtreecommitdiff
path: root/test_wordle.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_wordle.py')
-rw-r--r--test_wordle.py88
1 files changed, 88 insertions, 0 deletions
diff --git a/test_wordle.py b/test_wordle.py
new file mode 100644
index 0000000..9ce5f2c
--- /dev/null
+++ b/test_wordle.py
@@ -0,0 +1,88 @@
+import unittest
+import wordle
+
+
+class TestWordle(unittest.TestCase):
+ def test_exact_match(self):
+ answer = 'aaaaa'
+ guess = 'aaaaa'
+
+ expected_score = [wordle.full_match_character for i in range(
+ len(answer))]
+
+ actual_score = wordle.compare_guess_to_answer(guess, answer)
+ self.assertEqual(actual_score, expected_score)
+
+ def test_no_letters_match(self):
+ answer = 'aaaaa'
+ guess = 'bbbbb'
+
+ expected_score = [wordle.no_match_character for i in range(
+ len(answer))]
+
+ actual_score = wordle.compare_guess_to_answer(guess, answer)
+ self.assertEqual(actual_score, expected_score)
+
+ def test_only_one_letter_full_match(self):
+ answer = 'aaaaa'
+ guess = 'abbbb'
+
+ expected_score = [
+ wordle.full_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character
+ ]
+
+ actual_score = wordle.compare_guess_to_answer(guess, answer)
+ self.assertEqual(actual_score, expected_score)
+
+ def test_only_one_letter_partial_match(self):
+ answer = 'abaaa'
+ guess = 'bcccc'
+
+ expected_score = [
+ wordle.partial_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character
+ ]
+
+ actual_score = wordle.compare_guess_to_answer(guess, answer)
+ self.assertEqual(actual_score, expected_score)
+
+ def test_multiple_letters_partial_match(self):
+ answer = 'ababa'
+ guess = 'bcbcc'
+
+ expected_score = [
+ wordle.partial_match_character,
+ wordle.no_match_character,
+ wordle.partial_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character
+ ]
+
+ actual_score = wordle.compare_guess_to_answer(guess, answer)
+ self.assertEqual(actual_score, expected_score)
+
+ def test_multiple_letters_in_guess_match_one_letter_in_answer(self):
+ answer = 'aab'
+ guess = 'bbc'
+
+ expected_score = [
+ wordle.partial_match_character,
+ wordle.no_match_character,
+ wordle.no_match_character,
+ # wordle.no_match_character,
+ # wordle.no_match_character
+ ]
+
+ actual_score = wordle.compare_guess_to_answer(guess, answer)
+ self.assertEqual(actual_score, expected_score)
+
+
+if __name__ == '__main__':
+ unittest.main()