Spaces:
Running
Running
| import unittest | |
| from battlewords.generator import generate_puzzle, validate_puzzle | |
| from battlewords.models import Coord | |
| class TestGenerator(unittest.TestCase): | |
| def test_generate_valid_puzzle(self): | |
| # Provide a minimal word pool for deterministic testing | |
| 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) | |
| # Ensure 6 words and 6 radar pulses | |
| self.assertEqual(len(p.words), 6) | |
| self.assertEqual(len(p.radar), 6) | |
| # Ensure no overlaps | |
| 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() |