Files
wordle/test_wordle.py
T
dongar b09adf488f Fix constraints bug.
Add constraints unittests.
Update invalid words.
2023-04-18 05:22:35 -05:00

48 lines
1.5 KiB
Python

#!/usr/bin/python
import wordle
from wordle import LetterResult
import unittest
class TestConstraints(unittest.TestCase):
def test_empty(self):
constraints = wordle.Constraints()
self.assertTrue(constraints.matches('abcde'))
self.assertTrue(constraints.matches('bcdef'))
def test_correct_single(self):
constraints = wordle.Constraints()
constraints.update_graded('abcde', [LetterResult.CORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT])
self.assertTrue(constraints.matches('amnop'))
self.assertTrue(constraints.matches('aaaaa'))
self.assertFalse(constraints.matches('abcde'))
self.assertFalse(constraints.matches('lmnop'))
self.assertFalse(constraints.matches('aedcb'))
self.assertFalse(constraints.matches('amnob'))
def test_correct_duplicate_letter(self):
constraints = wordle.Constraints()
constraints.update_graded('aazzz', [LetterResult.CORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT])
self.assertTrue(constraints.matches('abcde'))
self.assertTrue(constraints.matches('abbbb'))
self.assertFalse(constraints.matches('aabbb'))
self.assertFalse(constraints.matches('abbba'))
self.assertFalse(constraints.matches('bbbbb'))
self.assertFalse(constraints.matches('bbbba'))
self.assertFalse(constraints.matches('babbb'))
if __name__ == '__main__':
unittest.main()