Refactor constraints into it's own file.

This commit is contained in:
dongar committed 2023-05-23 12:29:31 -05:00
1 parent 7cf685b507
commit 36c26dcf9f
4 files changed
+153 -150

No files matched your search

+81
View File
@@ -0,0 +1,81 @@
#!/usr/bin/python
import unittest
import constraints
from wordle import LetterResult
class TestConstraints(unittest.TestCase):
def test_empty(self):
consts = constraints.Constraints()
self.assertTrue(consts.matches("abcde"))
self.assertTrue(consts.matches("bcdef"))
def test_correct(self):
consts = constraints.Constraints()
consts.update_graded(
"abcde",
[
LetterResult.CORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
],
)
self.assertTrue(consts.matches("amnop"))
self.assertTrue(consts.matches("aaaaa"))
self.assertFalse(consts.matches("abcde"))
self.assertFalse(consts.matches("lmnop"))
self.assertFalse(consts.matches("aedcb"))
self.assertFalse(consts.matches("amnob"))
def test_correct_count_limit(self):
consts = constraints.Constraints()
consts.update_graded(
"aazzz",
[
LetterResult.CORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
],
)
self.assertTrue(consts.matches("abcde"))
self.assertTrue(consts.matches("abbbb"))
self.assertFalse(consts.matches("aabbb"))
self.assertFalse(consts.matches("abbba"))
self.assertFalse(consts.matches("bbbbb"))
self.assertFalse(consts.matches("bbbba"))
self.assertFalse(consts.matches("babbb"))
def test_move(self):
consts = constraints.Constraints()
consts.update_graded(
"abcde",
[
LetterResult.MOVE,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
LetterResult.INCORRECT,
],
)
self.assertTrue(consts.matches("zzzza"))
self.assertTrue(consts.matches("zzzaa"))
self.assertTrue(consts.matches("zaaaa"))
self.assertFalse(consts.matches("azzzz"))
self.assertFalse(consts.matches("zzzzz"))
self.assertFalse(consts.matches("zzzba"))
if __name__ == "__main__":
unittest.main()