Files
wordle/test_wordle.py
T
2023-04-18 05:58:41 -05:00

58 lines
2.1 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(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_count_limit(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'))
def test_move(self):
constraints = wordle.Constraints()
constraints.update_graded('abcde', [LetterResult.MOVE, LetterResult.INCORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT, LetterResult.INCORRECT])
self.assertTrue(constraints.matches('zzzza'))
self.assertTrue(constraints.matches('zzzaa'))
self.assertTrue(constraints.matches('zaaaa'))
self.assertFalse(constraints.matches('azzzz'))
self.assertFalse(constraints.matches('zzzzz'))
self.assertFalse(constraints.matches('zzzba'))
if __name__ == '__main__':
unittest.main()