48 lines
1.5 KiB
Python
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()
|