BattleWords / tests /test_generator.py
Surn's picture
0.2.29
1b1b6cc
raw
history blame contribute delete
946 Bytes
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()