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