wrdler / tests /test_generator.py
Surn's picture
Initial Commit v0.0.1
4f625d4
raw
history blame contribute delete
936 Bytes
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()