The source code and dockerfile for the GSW2024 AI Lab.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 

45 lines
1.3 KiB

"""Finds all the specs that we can test with"""
from __future__ import annotations
import gymnasium as gym
import numpy as np
all_testing_env_specs = [
env_spec
for env_spec in gym.envs.registry.values()
if (
isinstance(env_spec.entry_point, str)
and env_spec.entry_point.startswith("minigrid.envs")
)
]
minigrid_testing_env_specs = [
env_spec
for env_spec in all_testing_env_specs
if not env_spec.entry_point.startswith("minigrid.envs.babyai")
]
def assert_equals(a, b, prefix=None):
"""Assert equality of data structures `a` and `b`.
Args:
a: first data structure
b: second data structure
prefix: prefix for failed assertion message for types and dicts
"""
assert type(a) == type(b), f"{prefix}Differing types: {a} and {b}"
if isinstance(a, dict):
assert list(a.keys()) == list(b.keys()), f"{prefix}Key sets differ: {a} and {b}"
for k in a.keys():
v_a = a[k]
v_b = b[k]
assert_equals(v_a, v_b)
elif isinstance(a, np.ndarray):
np.testing.assert_array_equal(a, b)
elif isinstance(a, tuple):
for elem_from_a, elem_from_b in zip(a, b):
assert_equals(elem_from_a, elem_from_b)
else:
assert a == b