Files
Gymnasium/tests/vector/utils/utils.py
2024-06-10 17:07:47 +01:00

29 lines
1.1 KiB
Python

"""Utility functions for testing the vector utility functions."""
import numpy as np
def is_rng_equal(rng_1: np.random.Generator, rng_2: np.random.Generator):
"""Asserts that two random number generates are equivalent."""
return rng_1.bit_generator.state == rng_2.bit_generator.state
def type_equivalence(data_1, data_2):
"""Assert the type equivalences between two variables."""
if type(data_1) is type(data_2):
if isinstance(data_1, tuple):
# assert len(data_1) == len(data_2), f'{len(data_1)}, {len(data_2)}, {data_1}, {data_2}'
for o_1, o_2 in zip(data_1, data_2):
assert type_equivalence(
o_1, o_2
), f"{type(o_1)}, {type(o_2)}, {o_1}, {o_2}"
elif isinstance(data_1, dict):
for key in data_1:
assert type_equivalence(
data_1[key], data_2[key]
), f"{type(data_1[key])}, {type(data_2[key])}, {key}, {data_1[key]}, {data_2[key]}"
return True
assert False, f"{type(data_1)}, {type(data_2)}, {data_1}, {data_2}"