File size: 936 Bytes
4f625d4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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):
# 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() |