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
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-24 00:33 -0600
1import pytest
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
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))
20 tokenized_maze: list[str] = solved_maze.as_tokens(tokenizer)
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 )