maze_dataset.testing_utils
Shared utilities for tests only.
Do not import into any module outside of the tests directory
1"""Shared utilities for tests only. 2 3Do not import into any module outside of the tests directory 4""" 5 6import itertools 7from typing import Final, NamedTuple, Sequence 8 9import frozendict 10import numpy as np 11 12from maze_dataset import ( 13 CoordArray, 14 LatticeMaze, 15 LatticeMazeGenerators, 16 MazeDataset, 17 MazeDatasetConfig, 18 SolvedMaze, 19 TargetedLatticeMaze, 20) 21from maze_dataset.tokenization import ( 22 MazeTokenizer, 23 MazeTokenizerModular, 24 TokenizationMode, 25) 26 27GRID_N: Final[int] = 5 28N_MAZES: Final[int] = 5 29CFG: Final[MazeDatasetConfig] = MazeDatasetConfig( 30 name="test", 31 grid_n=GRID_N, 32 n_mazes=N_MAZES, 33 maze_ctor=LatticeMazeGenerators.gen_dfs, 34) 35MAZE_DATASET: Final[MazeDataset] = MazeDataset.from_config( 36 CFG, 37 do_download=False, 38 load_local=False, 39 do_generate=True, 40 save_local=False, 41 verbose=True, 42 gen_parallel=False, 43) 44LATTICE_MAZES: Final[tuple[LatticeMaze, ...]] = tuple( 45 LatticeMazeGenerators.gen_dfs(np.array([GRID_N, GRID_N])) for _ in range(N_MAZES) 46) 47_PATHS = tuple(maze.generate_random_path() for maze in LATTICE_MAZES) 48TARGETED_MAZES: Final[tuple[TargetedLatticeMaze, ...]] = tuple( 49 TargetedLatticeMaze.from_lattice_maze(maze, path[0], path[-1]) 50 for maze, path in zip(LATTICE_MAZES, _PATHS, strict=False) 51) 52# MIXED_MAZES alternates the maze types, so you can slice a contiguous subset and still get all types 53MIXED_MAZES: Final[tuple[LatticeMaze | TargetedLatticeMaze | SolvedMaze, ...]] = tuple( 54 x 55 for x in itertools.chain.from_iterable( 56 itertools.zip_longest(MAZE_DATASET.mazes, TARGETED_MAZES, LATTICE_MAZES), 57 ) 58) 59 60 61class MANUAL_MAZE(NamedTuple): # noqa: N801 62 """A named tuple for manual maze definitions""" 63 64 tokens: str 65 ascii: Sequence[str] 66 straightaway_footprints: CoordArray 67 68 69ASCII_MAZES: Final[frozendict.frozendict[str, MANUAL_MAZE]] = frozendict.frozendict( 70 small_3x3=MANUAL_MAZE( 71 tokens="<ADJLIST_START> (2,0) <--> (2,1) ; (0,0) <--> (0,1) ; (0,0) <--> (1,0) ; (0,2) <--> (1,2) ; (1,0) <--> (2,0) ; (0,2) <--> (0,1) ; (2,2) <--> (2,1) ; (1,1) <--> (2,1) ; <ADJLIST_END> <ORIGIN_START> (0,0) <ORIGIN_END> <TARGET_START> (2,1) <TARGET_END> <PATH_START> (0,0) (1,0) (2,0) (2,1) <PATH_END>", 72 ascii=( 73 "#######", 74 "#S #", 75 "#X### #", 76 "#X# # #", 77 "#X# ###", 78 "#XXE #", 79 "#######", 80 ), 81 straightaway_footprints=np.array( 82 [ 83 [0, 0], 84 [2, 0], 85 [2, 1], 86 ], 87 ), 88 ), 89 big_10x10=MANUAL_MAZE( 90 tokens="<ADJLIST_START> (8,2) <--> (8,3) ; (3,7) <--> (3,6) ; (6,7) <--> (6,8) ; (4,6) <--> (5,6) ; (9,5) <--> (9,4) ; (3,3) <--> (3,4) ; (5,1) <--> (4,1) ; (2,6) <--> (2,7) ; (8,5) <--> (8,4) ; (1,9) <--> (2,9) ; (4,1) <--> (4,2) ; (0,8) <--> (0,7) ; (5,4) <--> (5,3) ; (6,3) <--> (6,4) ; (5,0) <--> (4,0) ; (5,3) <--> (5,2) ; (3,1) <--> (2,1) ; (9,1) <--> (9,0) ; (3,5) <--> (3,6) ; (5,5) <--> (6,5) ; (7,1) <--> (7,2) ; (0,1) <--> (1,1) ; (7,8) <--> (8,8) ; (3,9) <--> (4,9) ; (4,6) <--> (4,7) ; (0,6) <--> (0,7) ; (3,4) <--> (3,5) ; (6,0) <--> (5,0) ; (7,7) <--> (7,6) ; (1,6) <--> (0,6) ; (6,1) <--> (6,0) ; (8,6) <--> (8,7) ; (9,9) <--> (9,8) ; (1,8) <--> (1,9) ; (2,1) <--> (2,2) ; (9,2) <--> (9,3) ; (5,9) <--> (6,9) ; (3,2) <--> (2,2) ; (0,8) <--> (0,9) ; (5,6) <--> (5,7) ; (2,3) <--> (2,4) ; (4,5) <--> (4,4) ; (8,9) <--> (8,8) ; (9,6) <--> (8,6) ; (3,7) <--> (3,8) ; (8,0) <--> (7,0) ; (6,1) <--> (6,2) ; (0,1) <--> (0,0) ; (7,3) <--> (7,4) ; (9,4) <--> (9,3) ; (9,6) <--> (9,5) ; (8,7) <--> (7,7) ; (5,2) <--> (5,1) ; (0,0) <--> (1,0) ; (7,2) <--> (7,3) ; (2,5) <--> (2,6) ; (4,9) <--> (5,9) ; (5,5) <--> (5,4) ; (5,6) <--> (6,6) ; (7,8) <--> (7,9) ; (1,7) <--> (2,7) ; (4,6) <--> (4,5) ; (1,1) <--> (1,2) ; (3,1) <--> (3,0) ; (1,5) <--> (1,6) ; (8,3) <--> (8,4) ; (9,9) <--> (8,9) ; (8,5) <--> (7,5) ; (1,4) <--> (2,4) ; (3,0) <--> (4,0) ; (3,3) <--> (4,3) ; (6,9) <--> (6,8) ; (1,0) <--> (2,0) ; (6,0) <--> (7,0) ; (8,0) <--> (9,0) ; (2,3) <--> (2,2) ; (2,8) <--> (3,8) ; (5,7) <--> (6,7) ; (1,3) <--> (0,3) ; (9,7) <--> (9,8) ; (7,5) <--> (7,4) ; (1,8) <--> (2,8) ; (6,5) <--> (6,4) ; (0,2) <--> (1,2) ; (0,7) <--> (1,7) ; (0,3) <--> (0,2) ; (4,3) <--> (4,2) ; (5,8) <--> (4,8) ; (9,1) <--> (8,1) ; (9,2) <--> (8,2) ; (1,3) <--> (1,4) ; (2,9) <--> (3,9) ; (4,8) <--> (4,7) ; (0,5) <--> (0,4) ; (8,1) <--> (7,1) ; (0,3) <--> (0,4) ; (9,7) <--> (9,6) ; (7,6) <--> (6,6) ; (1,5) <--> (0,5) ; <ADJLIST_END> <ORIGIN_START> (6,2) <ORIGIN_END> <TARGET_START> (2,1) <TARGET_END> <PATH_START> (6,2) (6,1) (6,0) (5,0) (4,0) (3,0) (3,1) (2,1) <PATH_END>", 91 ascii=( 92 "#####################", 93 "# # # #", 94 "# # # # ### # # #####", 95 "# # # # # # #", 96 "# ####### ##### # # #", 97 "# #E # # # #", 98 "###X# ########### # #", 99 "#XXX# # # #", 100 "#X##### ########### #", 101 "#X# # # #", 102 "#X# ######### ### # #", 103 "#X# # # # #", 104 "#X######### # # ### #", 105 "#XXXXS# # # #", 106 "# ########### #######", 107 "# # # # #", 108 "# # ####### ### # ###", 109 "# # # # # #", 110 "# # # ####### ##### #", 111 "# # #", 112 "#####################", 113 ), 114 straightaway_footprints=np.array( 115 [ 116 [6, 2], 117 [6, 0], 118 [3, 0], 119 [3, 1], 120 [2, 1], 121 ], 122 ), 123 ), 124 longer_10x10=MANUAL_MAZE( 125 tokens="<ADJLIST_START> (8,2) <--> (8,3) ; (3,7) <--> (3,6) ; (6,7) <--> (6,8) ; (4,6) <--> (5,6) ; (9,5) <--> (9,4) ; (3,3) <--> (3,4) ; (5,1) <--> (4,1) ; (2,6) <--> (2,7) ; (8,5) <--> (8,4) ; (1,9) <--> (2,9) ; (4,1) <--> (4,2) ; (0,8) <--> (0,7) ; (5,4) <--> (5,3) ; (6,3) <--> (6,4) ; (5,0) <--> (4,0) ; (5,3) <--> (5,2) ; (3,1) <--> (2,1) ; (9,1) <--> (9,0) ; (3,5) <--> (3,6) ; (5,5) <--> (6,5) ; (7,1) <--> (7,2) ; (0,1) <--> (1,1) ; (7,8) <--> (8,8) ; (3,9) <--> (4,9) ; (4,6) <--> (4,7) ; (0,6) <--> (0,7) ; (3,4) <--> (3,5) ; (6,0) <--> (5,0) ; (7,7) <--> (7,6) ; (1,6) <--> (0,6) ; (6,1) <--> (6,0) ; (8,6) <--> (8,7) ; (9,9) <--> (9,8) ; (1,8) <--> (1,9) ; (2,1) <--> (2,2) ; (9,2) <--> (9,3) ; (5,9) <--> (6,9) ; (3,2) <--> (2,2) ; (0,8) <--> (0,9) ; (5,6) <--> (5,7) ; (2,3) <--> (2,4) ; (4,5) <--> (4,4) ; (8,9) <--> (8,8) ; (9,6) <--> (8,6) ; (3,7) <--> (3,8) ; (8,0) <--> (7,0) ; (6,1) <--> (6,2) ; (0,1) <--> (0,0) ; (7,3) <--> (7,4) ; (9,4) <--> (9,3) ; (9,6) <--> (9,5) ; (8,7) <--> (7,7) ; (5,2) <--> (5,1) ; (0,0) <--> (1,0) ; (7,2) <--> (7,3) ; (2,5) <--> (2,6) ; (4,9) <--> (5,9) ; (5,5) <--> (5,4) ; (5,6) <--> (6,6) ; (7,8) <--> (7,9) ; (1,7) <--> (2,7) ; (4,6) <--> (4,5) ; (1,1) <--> (1,2) ; (3,1) <--> (3,0) ; (1,5) <--> (1,6) ; (8,3) <--> (8,4) ; (9,9) <--> (8,9) ; (8,5) <--> (7,5) ; (1,4) <--> (2,4) ; (3,0) <--> (4,0) ; (3,3) <--> (4,3) ; (6,9) <--> (6,8) ; (1,0) <--> (2,0) ; (6,0) <--> (7,0) ; (8,0) <--> (9,0) ; (2,3) <--> (2,2) ; (2,8) <--> (3,8) ; (5,7) <--> (6,7) ; (1,3) <--> (0,3) ; (9,7) <--> (9,8) ; (7,5) <--> (7,4) ; (1,8) <--> (2,8) ; (6,5) <--> (6,4) ; (0,2) <--> (1,2) ; (0,7) <--> (1,7) ; (0,3) <--> (0,2) ; (4,3) <--> (4,2) ; (5,8) <--> (4,8) ; (9,1) <--> (8,1) ; (9,2) <--> (8,2) ; (1,3) <--> (1,4) ; (2,9) <--> (3,9) ; (4,8) <--> (4,7) ; (0,5) <--> (0,4) ; (8,1) <--> (7,1) ; (0,3) <--> (0,4) ; (9,7) <--> (9,6) ; (7,6) <--> (6,6) ; (1,5) <--> (0,5) ; <ADJLIST_END> <ORIGIN_START> (6,2) <ORIGIN_END> <TARGET_START> (2,1) <TARGET_END> <PATH_START> (6,2) (6,1) (6,0) (5,0) (4,0) (3,0) (3,1) (2,1) (2,2) (2,3) (2,4) (1,4) (1,3) (0,3) (0,4) (0,5) (1,5) (1,6) (0,6) (0,7) (0,8) <PATH_END>", 126 ascii=( 127 "#####################", 128 "# # XXXXX#XXXXE #", 129 "# # # #X###X#X# #####", 130 "# # #XXX#XXX# # #", 131 "# #######X##### # # #", 132 "# #XXXXXXX# # # #", 133 "###X# ########### # #", 134 "#XXX# # # #", 135 "#X##### ########### #", 136 "#X# # # #", 137 "#X# ######### ### # #", 138 "#X# # # # #", 139 "#X######### # # ### #", 140 "#XXXXS# # # #", 141 "# ########### #######", 142 "# # # # #", 143 "# # ####### ### # ###", 144 "# # # # # #", 145 "# # # ####### ##### #", 146 "# # #", 147 "#####################", 148 ), 149 straightaway_footprints=np.array( 150 [ 151 [6, 2], 152 [6, 0], 153 [3, 0], 154 [3, 1], 155 [2, 1], 156 [2, 4], 157 [1, 4], 158 [1, 3], 159 [0, 3], 160 [0, 5], 161 [1, 5], 162 [1, 6], 163 [0, 6], 164 [0, 8], 165 ], 166 ), 167 ), 168) 169 170# A list of legacy `MazeTokenizer`s and their `MazeTokenizerModular` equivalents. 171# Used for unit tests where both versions are supported 172LEGACY_AND_EQUIVALENT_TOKENIZERS: list[MazeTokenizer | MazeTokenizerModular] = [ 173 *[ 174 MazeTokenizer(tokenization_mode=tok_mode, max_grid_size=20) 175 for tok_mode in TokenizationMode 176 ], 177 *[MazeTokenizerModular.from_legacy(tok_mode) for tok_mode in TokenizationMode], 178]
GRID_N: Final[int] =
5
N_MAZES: Final[int] =
5
CFG: Final[maze_dataset.MazeDatasetConfig] =
MazeDatasetConfig(name='test', seq_len_min=1, seq_len_max=512, seed=42, applied_filters=[], grid_n=5, n_mazes=5, maze_ctor=<function LatticeMazeGenerators.gen_dfs>, maze_ctor_kwargs={}, endpoint_kwargs={}, _fname_loaded=None)
LATTICE_MAZES: Final[tuple[maze_dataset.LatticeMaze, ...]] =
(LatticeMaze(connection_list=array([[[ True, True, True, True, False],
[ True, False, True, False, True],
[ True, False, False, True, True],
[False, False, True, True, True],
[False, False, False, False, False]],
[[ True, False, True, True, False],
[False, False, False, True, False],
[ True, True, False, False, False],
[ True, True, False, False, False],
[ True, True, False, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), LatticeMaze(connection_list=array([[[ True, False, False, True, True],
[ True, False, True, True, True],
[False, True, True, False, True],
[ True, False, True, True, False],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[ True, True, False, False, False],
[ True, False, False, True, False],
[ True, False, False, True, False],
[ True, False, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 2]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), LatticeMaze(connection_list=array([[[False, False, True, True, True],
[ True, False, False, False, True],
[False, False, False, False, True],
[ True, True, True, False, False],
[False, False, False, False, False]],
[[ True, True, True, False, False],
[ True, True, False, True, False],
[ True, True, True, False, False],
[ True, False, True, True, False],
[False, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), LatticeMaze(connection_list=array([[[False, True, True, True, True],
[ True, True, True, False, True],
[ True, False, False, True, True],
[False, False, False, False, True],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[False, False, False, True, False],
[ True, False, True, False, False],
[ True, True, True, False, False],
[ True, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 0]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), LatticeMaze(connection_list=array([[[ True, False, False, False, True],
[False, True, True, True, False],
[ True, False, True, False, True],
[ True, True, False, True, True],
[False, False, False, False, False]],
[[ True, True, True, True, False],
[ True, False, False, True, False],
[False, False, True, False, False],
[False, True, False, True, False],
[ True, True, True, False, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 1]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}))
TARGETED_MAZES: Final[tuple[maze_dataset.TargetedLatticeMaze, ...]] =
(TargetedLatticeMaze(connection_list=array([[[ True, True, True, True, False],
[ True, False, True, False, True],
[ True, False, False, True, True],
[False, False, True, True, True],
[False, False, False, False, False]],
[[ True, False, True, True, False],
[False, False, False, True, False],
[ True, True, False, False, False],
[ True, True, False, False, False],
[ True, True, False, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([2, 4]), end_pos=array([3, 0])), TargetedLatticeMaze(connection_list=array([[[ True, False, False, True, True],
[ True, False, True, True, True],
[False, True, True, False, True],
[ True, False, True, True, False],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[ True, True, False, False, False],
[ True, False, False, True, False],
[ True, False, False, True, False],
[ True, False, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 2]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 0]), end_pos=array([1, 0])), TargetedLatticeMaze(connection_list=array([[[False, False, True, True, True],
[ True, False, False, False, True],
[False, False, False, False, True],
[ True, True, True, False, False],
[False, False, False, False, False]],
[[ True, True, True, False, False],
[ True, True, False, True, False],
[ True, True, True, False, False],
[ True, False, True, True, False],
[False, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 0]), end_pos=array([4, 0])), TargetedLatticeMaze(connection_list=array([[[False, True, True, True, True],
[ True, True, True, False, True],
[ True, False, False, True, True],
[False, False, False, False, True],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[False, False, False, True, False],
[ True, False, True, False, False],
[ True, True, True, False, False],
[ True, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 0]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([3, 2]), end_pos=array([3, 4])), TargetedLatticeMaze(connection_list=array([[[ True, False, False, False, True],
[False, True, True, True, False],
[ True, False, True, False, True],
[ True, True, False, True, True],
[False, False, False, False, False]],
[[ True, True, True, True, False],
[ True, False, False, True, False],
[False, False, True, False, False],
[False, True, False, True, False],
[ True, True, True, False, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 1]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 3]), end_pos=array([2, 3])))
MIXED_MAZES: Final[tuple[maze_dataset.LatticeMaze | maze_dataset.TargetedLatticeMaze | maze_dataset.SolvedMaze, ...]] =
(SolvedMaze(connection_list=array([[[ True, False, True, True, True],
[False, False, True, False, False],
[ True, False, True, False, True],
[ True, False, False, False, True],
[False, False, False, False, False]],
[[ True, True, True, False, False],
[ True, False, False, True, False],
[ True, True, False, True, False],
[False, True, True, False, False],
[ True, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([1, 3]), end_pos=array([2, 3]), solution=array([[1, 3],
[0, 3],
[0, 2],
[1, 2],
[2, 2],
[2, 1],
[2, 0],
[3, 0],
[4, 0],
[4, 1],
[4, 2],
[4, 3],
[4, 4],
[3, 4],
[2, 4],
[2, 3]])), TargetedLatticeMaze(connection_list=array([[[ True, True, True, True, False],
[ True, False, True, False, True],
[ True, False, False, True, True],
[False, False, True, True, True],
[False, False, False, False, False]],
[[ True, False, True, True, False],
[False, False, False, True, False],
[ True, True, False, False, False],
[ True, True, False, False, False],
[ True, True, False, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([2, 4]), end_pos=array([3, 0])), LatticeMaze(connection_list=array([[[ True, True, True, True, False],
[ True, False, True, False, True],
[ True, False, False, True, True],
[False, False, True, True, True],
[False, False, False, False, False]],
[[ True, False, True, True, False],
[False, False, False, True, False],
[ True, True, False, False, False],
[ True, True, False, False, False],
[ True, True, False, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), SolvedMaze(connection_list=array([[[ True, True, True, False, True],
[ True, False, False, False, True],
[ True, True, True, True, False],
[ True, True, False, False, True],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[False, False, True, True, False],
[ True, True, False, True, False],
[False, False, False, True, False],
[False, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([3, 4]), end_pos=array([2, 0]), solution=array([[3, 4],
[4, 4],
[4, 3],
[4, 2],
[4, 1],
[3, 1],
[2, 1],
[2, 0]])), TargetedLatticeMaze(connection_list=array([[[ True, False, False, True, True],
[ True, False, True, True, True],
[False, True, True, False, True],
[ True, False, True, True, False],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[ True, True, False, False, False],
[ True, False, False, True, False],
[ True, False, False, True, False],
[ True, False, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 2]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 0]), end_pos=array([1, 0])), LatticeMaze(connection_list=array([[[ True, False, False, True, True],
[ True, False, True, True, True],
[False, True, True, False, True],
[ True, False, True, True, False],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[ True, True, False, False, False],
[ True, False, False, True, False],
[ True, False, False, True, False],
[ True, False, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 2]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), SolvedMaze(connection_list=array([[[ True, False, False, True, True],
[False, False, True, False, True],
[ True, True, False, True, True],
[ True, True, False, True, True],
[False, False, False, False, False]],
[[ True, False, True, True, False],
[ True, True, False, False, False],
[False, True, False, True, False],
[False, False, True, False, False],
[ True, True, True, False, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 1]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 0]), end_pos=array([3, 3]), solution=array([[0, 0],
[1, 0],
[1, 1],
[1, 2],
[2, 2],
[2, 1],
[3, 1],
[4, 1],
[4, 2],
[4, 3],
[3, 3]])), TargetedLatticeMaze(connection_list=array([[[False, False, True, True, True],
[ True, False, False, False, True],
[False, False, False, False, True],
[ True, True, True, False, False],
[False, False, False, False, False]],
[[ True, True, True, False, False],
[ True, True, False, True, False],
[ True, True, True, False, False],
[ True, False, True, True, False],
[False, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 0]), end_pos=array([4, 0])), LatticeMaze(connection_list=array([[[False, False, True, True, True],
[ True, False, False, False, True],
[False, False, False, False, True],
[ True, True, True, False, False],
[False, False, False, False, False]],
[[ True, True, True, False, False],
[ True, True, False, True, False],
[ True, True, True, False, False],
[ True, False, True, True, False],
[False, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), SolvedMaze(connection_list=array([[[ True, False, True, False, False],
[ True, True, True, False, True],
[ True, True, False, True, False],
[ True, True, True, False, True],
[False, False, False, False, False]],
[[ True, True, True, True, False],
[ True, False, False, True, False],
[False, False, False, True, False],
[False, False, True, False, False],
[False, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([1, 3]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 1]), end_pos=array([1, 0]), solution=array([[0, 1],
[0, 0],
[1, 0]])), TargetedLatticeMaze(connection_list=array([[[False, True, True, True, True],
[ True, True, True, False, True],
[ True, False, False, True, True],
[False, False, False, False, True],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[False, False, False, True, False],
[ True, False, True, False, False],
[ True, True, True, False, False],
[ True, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 0]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([3, 2]), end_pos=array([3, 4])), LatticeMaze(connection_list=array([[[False, True, True, True, True],
[ True, True, True, False, True],
[ True, False, False, True, True],
[False, False, False, False, True],
[False, False, False, False, False]],
[[ True, False, True, False, False],
[False, False, False, True, False],
[ True, False, True, False, False],
[ True, True, True, False, False],
[ True, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([0, 0]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}), SolvedMaze(connection_list=array([[[ True, False, False, False, True],
[ True, True, True, False, True],
[False, True, True, True, False],
[ True, True, False, False, True],
[False, False, False, False, False]],
[[ True, True, True, True, False],
[False, True, True, False, False],
[False, False, False, True, False],
[False, False, True, False, False],
[ True, True, True, True, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 0]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([2, 2]), end_pos=array([1, 0]), solution=array([[2, 2],
[3, 2],
[3, 3],
[2, 3],
[2, 4],
[1, 4],
[0, 4],
[0, 3],
[0, 2],
[0, 1],
[0, 0],
[1, 0]])), TargetedLatticeMaze(connection_list=array([[[ True, False, False, False, True],
[False, True, True, True, False],
[ True, False, True, False, True],
[ True, True, False, True, True],
[False, False, False, False, False]],
[[ True, True, True, True, False],
[ True, False, False, True, False],
[False, False, True, False, False],
[False, True, False, True, False],
[ True, True, True, False, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 1]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}, start_pos=array([0, 3]), end_pos=array([2, 3])), LatticeMaze(connection_list=array([[[ True, False, False, False, True],
[False, True, True, True, False],
[ True, False, True, False, True],
[ True, True, False, True, True],
[False, False, False, False, False]],
[[ True, True, True, True, False],
[ True, False, False, True, False],
[False, False, True, False, False],
[False, True, False, True, False],
[ True, True, True, False, False]]]), generation_meta={'func_name': 'gen_dfs', 'grid_shape': array([5, 5]), 'start_coord': array([2, 1]), 'n_accessible_cells': 25, 'max_tree_depth': 50, 'fully_connected': True, 'visited_cells': {(4, 0), (3, 4), (4, 3), (3, 1), (0, 2), (2, 2), (1, 0), (1, 3), (4, 2), (3, 0), (3, 3), (0, 1), (2, 4), (1, 2), (0, 4), (2, 1), (3, 2), (4, 1), (4, 4), (0, 0), (1, 1), (0, 3), (2, 0), (1, 4), (2, 3)}}))
class
MANUAL_MAZE(typing.NamedTuple):
62class MANUAL_MAZE(NamedTuple): # noqa: N801 63 """A named tuple for manual maze definitions""" 64 65 tokens: str 66 ascii: Sequence[str] 67 straightaway_footprints: CoordArray
A named tuple for manual maze definitions
MANUAL_MAZE( tokens: str, ascii: Sequence[str], straightaway_footprints: jaxtyping.Int8[ndarray, 'coord row_col=2'])
Create new instance of MANUAL_MAZE(tokens, ascii, straightaway_footprints)
Inherited Members
- builtins.tuple
- index
- count
ASCII_MAZES: Final[frozendict.frozendict[str, MANUAL_MAZE]] =
frozendict.frozendict({'small_3x3': MANUAL_MAZE(tokens='<ADJLIST_START> (2,0) <--> (2,1) ; (0,0) <--> (0,1) ; (0,0) <--> (1,0) ; (0,2) <--> (1,2) ; (1,0) <--> (2,0) ; (0,2) <--> (0,1) ; (2,2) <--> (2,1) ; (1,1) <--> (2,1) ; <ADJLIST_END> <ORIGIN_START> (0,0) <ORIGIN_END> <TARGET_START> (2,1) <TARGET_END> <PATH_START> (0,0) (1,0) (2,0) (2,1) <PATH_END>', ascii=('#######', '#S #', '#X### #', '#X# # #', '#X# ###', '#XXE #', '#######'), straightaway_footprints=array([[0, 0],
[2, 0],
[2, 1]])), 'big_10x10': MANUAL_MAZE(tokens='<ADJLIST_START> (8,2) <--> (8,3) ; (3,7) <--> (3,6) ; (6,7) <--> (6,8) ; (4,6) <--> (5,6) ; (9,5) <--> (9,4) ; (3,3) <--> (3,4) ; (5,1) <--> (4,1) ; (2,6) <--> (2,7) ; (8,5) <--> (8,4) ; (1,9) <--> (2,9) ; (4,1) <--> (4,2) ; (0,8) <--> (0,7) ; (5,4) <--> (5,3) ; (6,3) <--> (6,4) ; (5,0) <--> (4,0) ; (5,3) <--> (5,2) ; (3,1) <--> (2,1) ; (9,1) <--> (9,0) ; (3,5) <--> (3,6) ; (5,5) <--> (6,5) ; (7,1) <--> (7,2) ; (0,1) <--> (1,1) ; (7,8) <--> (8,8) ; (3,9) <--> (4,9) ; (4,6) <--> (4,7) ; (0,6) <--> (0,7) ; (3,4) <--> (3,5) ; (6,0) <--> (5,0) ; (7,7) <--> (7,6) ; (1,6) <--> (0,6) ; (6,1) <--> (6,0) ; (8,6) <--> (8,7) ; (9,9) <--> (9,8) ; (1,8) <--> (1,9) ; (2,1) <--> (2,2) ; (9,2) <--> (9,3) ; (5,9) <--> (6,9) ; (3,2) <--> (2,2) ; (0,8) <--> (0,9) ; (5,6) <--> (5,7) ; (2,3) <--> (2,4) ; (4,5) <--> (4,4) ; (8,9) <--> (8,8) ; (9,6) <--> (8,6) ; (3,7) <--> (3,8) ; (8,0) <--> (7,0) ; (6,1) <--> (6,2) ; (0,1) <--> (0,0) ; (7,3) <--> (7,4) ; (9,4) <--> (9,3) ; (9,6) <--> (9,5) ; (8,7) <--> (7,7) ; (5,2) <--> (5,1) ; (0,0) <--> (1,0) ; (7,2) <--> (7,3) ; (2,5) <--> (2,6) ; (4,9) <--> (5,9) ; (5,5) <--> (5,4) ; (5,6) <--> (6,6) ; (7,8) <--> (7,9) ; (1,7) <--> (2,7) ; (4,6) <--> (4,5) ; (1,1) <--> (1,2) ; (3,1) <--> (3,0) ; (1,5) <--> (1,6) ; (8,3) <--> (8,4) ; (9,9) <--> (8,9) ; (8,5) <--> (7,5) ; (1,4) <--> (2,4) ; (3,0) <--> (4,0) ; (3,3) <--> (4,3) ; (6,9) <--> (6,8) ; (1,0) <--> (2,0) ; (6,0) <--> (7,0) ; (8,0) <--> (9,0) ; (2,3) <--> (2,2) ; (2,8) <--> (3,8) ; (5,7) <--> (6,7) ; (1,3) <--> (0,3) ; (9,7) <--> (9,8) ; (7,5) <--> (7,4) ; (1,8) <--> (2,8) ; (6,5) <--> (6,4) ; (0,2) <--> (1,2) ; (0,7) <--> (1,7) ; (0,3) <--> (0,2) ; (4,3) <--> (4,2) ; (5,8) <--> (4,8) ; (9,1) <--> (8,1) ; (9,2) <--> (8,2) ; (1,3) <--> (1,4) ; (2,9) <--> (3,9) ; (4,8) <--> (4,7) ; (0,5) <--> (0,4) ; (8,1) <--> (7,1) ; (0,3) <--> (0,4) ; (9,7) <--> (9,6) ; (7,6) <--> (6,6) ; (1,5) <--> (0,5) ; <ADJLIST_END> <ORIGIN_START> (6,2) <ORIGIN_END> <TARGET_START> (2,1) <TARGET_END> <PATH_START> (6,2) (6,1) (6,0) (5,0) (4,0) (3,0) (3,1) (2,1) <PATH_END>', ascii=('#####################', '# # # #', '# # # # ### # # #####', '# # # # # # #', '# ####### ##### # # #', '# #E # # # #', '###X# ########### # #', '#XXX# # # #', '#X##### ########### #', '#X# # # #', '#X# ######### ### # #', '#X# # # # #', '#X######### # # ### #', '#XXXXS# # # #', '# ########### #######', '# # # # #', '# # ####### ### # ###', '# # # # # #', '# # # ####### ##### #', '# # #', '#####################'), straightaway_footprints=array([[6, 2],
[6, 0],
[3, 0],
[3, 1],
[2, 1]])), 'longer_10x10': MANUAL_MAZE(tokens='<ADJLIST_START> (8,2) <--> (8,3) ; (3,7) <--> (3,6) ; (6,7) <--> (6,8) ; (4,6) <--> (5,6) ; (9,5) <--> (9,4) ; (3,3) <--> (3,4) ; (5,1) <--> (4,1) ; (2,6) <--> (2,7) ; (8,5) <--> (8,4) ; (1,9) <--> (2,9) ; (4,1) <--> (4,2) ; (0,8) <--> (0,7) ; (5,4) <--> (5,3) ; (6,3) <--> (6,4) ; (5,0) <--> (4,0) ; (5,3) <--> (5,2) ; (3,1) <--> (2,1) ; (9,1) <--> (9,0) ; (3,5) <--> (3,6) ; (5,5) <--> (6,5) ; (7,1) <--> (7,2) ; (0,1) <--> (1,1) ; (7,8) <--> (8,8) ; (3,9) <--> (4,9) ; (4,6) <--> (4,7) ; (0,6) <--> (0,7) ; (3,4) <--> (3,5) ; (6,0) <--> (5,0) ; (7,7) <--> (7,6) ; (1,6) <--> (0,6) ; (6,1) <--> (6,0) ; (8,6) <--> (8,7) ; (9,9) <--> (9,8) ; (1,8) <--> (1,9) ; (2,1) <--> (2,2) ; (9,2) <--> (9,3) ; (5,9) <--> (6,9) ; (3,2) <--> (2,2) ; (0,8) <--> (0,9) ; (5,6) <--> (5,7) ; (2,3) <--> (2,4) ; (4,5) <--> (4,4) ; (8,9) <--> (8,8) ; (9,6) <--> (8,6) ; (3,7) <--> (3,8) ; (8,0) <--> (7,0) ; (6,1) <--> (6,2) ; (0,1) <--> (0,0) ; (7,3) <--> (7,4) ; (9,4) <--> (9,3) ; (9,6) <--> (9,5) ; (8,7) <--> (7,7) ; (5,2) <--> (5,1) ; (0,0) <--> (1,0) ; (7,2) <--> (7,3) ; (2,5) <--> (2,6) ; (4,9) <--> (5,9) ; (5,5) <--> (5,4) ; (5,6) <--> (6,6) ; (7,8) <--> (7,9) ; (1,7) <--> (2,7) ; (4,6) <--> (4,5) ; (1,1) <--> (1,2) ; (3,1) <--> (3,0) ; (1,5) <--> (1,6) ; (8,3) <--> (8,4) ; (9,9) <--> (8,9) ; (8,5) <--> (7,5) ; (1,4) <--> (2,4) ; (3,0) <--> (4,0) ; (3,3) <--> (4,3) ; (6,9) <--> (6,8) ; (1,0) <--> (2,0) ; (6,0) <--> (7,0) ; (8,0) <--> (9,0) ; (2,3) <--> (2,2) ; (2,8) <--> (3,8) ; (5,7) <--> (6,7) ; (1,3) <--> (0,3) ; (9,7) <--> (9,8) ; (7,5) <--> (7,4) ; (1,8) <--> (2,8) ; (6,5) <--> (6,4) ; (0,2) <--> (1,2) ; (0,7) <--> (1,7) ; (0,3) <--> (0,2) ; (4,3) <--> (4,2) ; (5,8) <--> (4,8) ; (9,1) <--> (8,1) ; (9,2) <--> (8,2) ; (1,3) <--> (1,4) ; (2,9) <--> (3,9) ; (4,8) <--> (4,7) ; (0,5) <--> (0,4) ; (8,1) <--> (7,1) ; (0,3) <--> (0,4) ; (9,7) <--> (9,6) ; (7,6) <--> (6,6) ; (1,5) <--> (0,5) ; <ADJLIST_END> <ORIGIN_START> (6,2) <ORIGIN_END> <TARGET_START> (2,1) <TARGET_END> <PATH_START> (6,2) (6,1) (6,0) (5,0) (4,0) (3,0) (3,1) (2,1) (2,2) (2,3) (2,4) (1,4) (1,3) (0,3) (0,4) (0,5) (1,5) (1,6) (0,6) (0,7) (0,8) <PATH_END>', ascii=('#####################', '# # XXXXX#XXXXE #', '# # # #X###X#X# #####', '# # #XXX#XXX# # #', '# #######X##### # # #', '# #XXXXXXX# # # #', '###X# ########### # #', '#XXX# # # #', '#X##### ########### #', '#X# # # #', '#X# ######### ### # #', '#X# # # # #', '#X######### # # ### #', '#XXXXS# # # #', '# ########### #######', '# # # # #', '# # ####### ### # ###', '# # # # # #', '# # # ####### ##### #', '# # #', '#####################'), straightaway_footprints=array([[6, 2],
[6, 0],
[3, 0],
[3, 1],
[2, 1],
[2, 4],
[1, 4],
[1, 3],
[0, 3],
[0, 5],
[1, 5],
[1, 6],
[0, 6],
[0, 8]]))})
LEGACY_AND_EQUIVALENT_TOKENIZERS: list[maze_dataset.tokenization.MazeTokenizer | maze_dataset.tokenization.MazeTokenizerModular] =
[MazeTokenizer(tokenization_mode=<TokenizationMode.AOTP_UT_rasterized: 'AOTP_UT_rasterized'>, max_grid_size=20), MazeTokenizer(tokenization_mode=<TokenizationMode.AOTP_UT_uniform: 'AOTP_UT_uniform'>, max_grid_size=20), MazeTokenizer(tokenization_mode=<TokenizationMode.AOTP_CTT_indexed: 'AOTP_CTT_indexed'>, max_grid_size=20), MazeTokenizerModular(prompt_sequencer=PromptSequencers.AOTP(coord_tokenizer=CoordTokenizers.UT(), adj_list_tokenizer=AdjListTokenizers.AdjListCoord(pre=False, post=True, shuffle_d0=True, edge_grouping=EdgeGroupings.Ungrouped(connection_token_ordinal=1), edge_subset=EdgeSubsets.ConnectionEdges(walls=False), edge_permuter=EdgePermuters.RandomCoords()), target_tokenizer=TargetTokenizers.Unlabeled(post=False), path_tokenizer=PathTokenizers.StepSequence(step_size=StepSizes.Singles(), step_tokenizers=(StepTokenizers.Coord(),), pre=False, intra=False, post=False))), MazeTokenizerModular(prompt_sequencer=PromptSequencers.AOTP(coord_tokenizer=CoordTokenizers.UT(), adj_list_tokenizer=AdjListTokenizers.AdjListCoord(pre=False, post=True, shuffle_d0=True, edge_grouping=EdgeGroupings.Ungrouped(connection_token_ordinal=1), edge_subset=EdgeSubsets.ConnectionEdges(walls=False), edge_permuter=EdgePermuters.RandomCoords()), target_tokenizer=TargetTokenizers.Unlabeled(post=False), path_tokenizer=PathTokenizers.StepSequence(step_size=StepSizes.Singles(), step_tokenizers=(StepTokenizers.Coord(),), pre=False, intra=False, post=False))), MazeTokenizerModular(prompt_sequencer=PromptSequencers.AOTP(coord_tokenizer=CoordTokenizers.CTT(pre=True, intra=True, post=True), adj_list_tokenizer=AdjListTokenizers.AdjListCoord(pre=False, post=True, shuffle_d0=True, edge_grouping=EdgeGroupings.Ungrouped(connection_token_ordinal=1), edge_subset=EdgeSubsets.ConnectionEdges(walls=False), edge_permuter=EdgePermuters.RandomCoords()), target_tokenizer=TargetTokenizers.Unlabeled(post=False), path_tokenizer=PathTokenizers.StepSequence(step_size=StepSizes.Singles(), step_tokenizers=(StepTokenizers.Coord(),), pre=False, intra=False, post=False)))]