Coverage for tests/unit/generation/test_solved_maze.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-24 00:33 -0600

1import pytest 

2 

3from maze_dataset import SolvedMaze 

4from maze_dataset.generation.generators import get_maze_with_solution 

5from maze_dataset.testing_utils import LEGACY_AND_EQUIVALENT_TOKENIZERS 

6from maze_dataset.tokenization import MazeTokenizer, MazeTokenizerModular 

7 

8 

9@pytest.mark.parametrize( 

10 "tokenizer", 

11 [ 

12 pytest.param(tokenizer, id=tokenizer.name) 

13 for tokenizer in LEGACY_AND_EQUIVALENT_TOKENIZERS 

14 ], 

15) 

16def test_from_tokens(tokenizer: MazeTokenizer | MazeTokenizerModular): 

17 maze_size: int = 2 

18 solved_maze: SolvedMaze = get_maze_with_solution("gen_dfs", (maze_size, maze_size)) 

19 

20 tokenized_maze: list[str] = solved_maze.as_tokens(tokenizer) 

21 

22 solved_maze_rt: SolvedMaze = SolvedMaze.from_tokens(tokenized_maze, tokenizer) # type: ignore[assignment] 

23 assert solved_maze == solved_maze_rt, ( 

24 f"solved_maze: {solved_maze}, solved_maze_rt: {solved_maze_rt}" 

25 ) 

26 assert (solved_maze.connection_list == solved_maze_rt.connection_list).all(), ( 

27 f"solved_maze.connection_list: {solved_maze.connection_list}, solved_maze_rt.connection_list: {solved_maze_rt.connection_list}" 

28 ) 

29 assert (solved_maze.solution == solved_maze_rt.solution).all(), ( 

30 f"solved_maze.solution: {solved_maze.solution}, solved_maze_rt.solution: {solved_maze_rt.solution}" 

31 )