| | 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() |