#!/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()