| import unittest |
|
|
| from wrdler.generator import generate_puzzle, validate_puzzle |
| from wrdler.models import Coord |
|
|
|
|
| class TestGenerator(unittest.TestCase): |
| def test_generate_valid_puzzle(self): |
| |
| words_by_len = { |
| 4: ["TREE", "BOAT"], |
| 5: ["APPLE", "RIVER"], |
| 6: ["ORANGE", "PYTHON"], |
| } |
| p = generate_puzzle(grid_size=12, words_by_len=words_by_len, seed=1234) |
| validate_puzzle(p, grid_size=12) |
| |
| self.assertEqual(len(p.words), 6) |
| self.assertEqual(len(p.radar), 6) |
| |
| seen = set() |
| for w in p.words: |
| for c in w.cells: |
| self.assertNotIn(c, seen) |
| seen.add(c) |
| self.assertTrue(0 <= c.x < 12 and 0 <= c.y < 12) |
|
|
| if __name__ == "__main__": |
| unittest.main() |