# Path: labmaze/fixed_maze.py
# _EMPTY_CELL = ' '
# class FixedMazeWithRandomGoals(base.BaseMaze):
#   def __init__(self, entity_layer, variations_layer=None,
#                num_spawns=None,
#                spawn_token=defaults.SPAWN_TOKEN,
#                num_objects=None,
#                object_token=defaults.OBJECT_TOKEN,
#                random_state=None):
#   def regenerate(self):
#   def entity_layer(self):
#   def variations_layer(self):
#   def height(self):
#   def width(self):
#   def max_variations(self):
#   def max_rooms(self):
#   def objects_per_room(self):
#   def spawn_token(self):
#   def object_token(self):


from absl.testing import absltest
from absl.testing import parameterized
from labmaze import fixed_maze
import numpy as np
    objects_found = 0
    for y in range(maze.height):
      for x in range(maze.width):
        if y % 2 == x % 2:
          self.assertEqual(maze.entity_layer[y, x], _WALL)
        else:
          self.assertIn(maze.entity_layer[y, x],
                        (_EMPTY_CELL, _SPAWN_TOKEN, _OBJECT_TOKEN))
          if maze.entity_layer[y, x] == _SPAWN_TOKEN:
            spawns_found += 1
            if num_spawns < len(required_spawns):
              self.assertIn((y, x), required_spawns)
          elif maze.entity_layer[y, x] == _OBJECT_TOKEN:
            objects_found += 1
            if num_objects < len(required_objects):
              self.assertIn((y, x), required_objects)

    if num_spawns >= len(required_spawns):
      for required_spawn in required_spawns:
        self.assertEqual(maze.entity_layer[required_spawn], _SPAWN_TOKEN)
    if num_objects >= len(required_objects):
      for required_object in required_objects:
        self.assertEqual(maze.entity_layer[required_object], _OBJECT_TOKEN)

    self.assertEqual(spawns_found, num_spawns)
    self.assertEqual(objects_found, num_objects)

  def testConsistentMazeUnconstrained(self):
    num_spawns = 2
    num_objects = 3

# Path: labmaze/fixed_maze.py
# _EMPTY_CELL = ' '
# class FixedMazeWithRandomGoals(base.BaseMaze):
#   def __init__(self, entity_layer, variations_layer=None,
#                num_spawns=None,
#                spawn_token=defaults.SPAWN_TOKEN,
#                num_objects=None,
#                object_token=defaults.OBJECT_TOKEN,
#                random_state=None):
#   def regenerate(self):
#   def entity_layer(self):
#   def variations_layer(self):
#   def height(self):
#   def width(self):
#   def max_variations(self):
#   def max_rooms(self):
#   def objects_per_room(self):
#   def spawn_token(self):
#   def object_token(self):


# Path: labmaze/fixed_maze_test.py
from absl.testing import absltest
from absl.testing import parameterized
from labmaze import fixed_maze
import numpy as np

    objects_found = 0
    for y in range(maze.height):
      for x in range(maze.width):
        if y % 2 == x % 2:
          self.assertEqual(maze.entity_layer[y, x], _WALL)
        else:
          self.assertIn(maze.entity_layer[y, x],
                        (_EMPTY_CELL, _SPAWN_TOKEN, _OBJECT_TOKEN))
          if maze.entity_layer[y, x] == _SPAWN_TOKEN:
            spawns_found += 1
            if num_spawns < len(required_spawns):
              self.assertIn((y, x), required_spawns)
          elif maze.entity_layer[y, x] == _OBJECT_TOKEN:
            objects_found += 1
            if num_objects < len(required_objects):
              self.assertIn((y, x), required_objects)

    if num_spawns >= len(required_spawns):
      for required_spawn in required_spawns:
        self.assertEqual(maze.entity_layer[required_spawn], _SPAWN_TOKEN)
    if num_objects >= len(required_objects):
      for required_object in required_objects:
        self.assertEqual(maze.entity_layer[required_object], _OBJECT_TOKEN)

    self.assertEqual(spawns_found, num_spawns)
    self.assertEqual(objects_found, num_objects)

  def testConsistentMazeUnconstrained(self):
    num_spawns = 2
    num_objects = 3

    maze = fixed_maze.FixedMazeWithRandomGoals(