mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-08-26 00:07:41 +00:00
* Fix RandomNumberGenerator pickling * Add test for RNG pickling fix * Fix Python 3.7 compatibility about tuple unpacking See: https://bugs.python.org/issue32117 * Fix formatting issue * Add test for space pickling
31 lines
721 B
Python
31 lines
721 B
Python
import pickle
|
|
|
|
from gym import error
|
|
from gym.utils import seeding
|
|
|
|
|
|
def test_invalid_seeds():
|
|
for seed in [-1, "test"]:
|
|
try:
|
|
seeding.np_random(seed)
|
|
except error.Error:
|
|
pass
|
|
else:
|
|
assert False, f"Invalid seed {seed} passed validation"
|
|
|
|
|
|
def test_valid_seeds():
|
|
for seed in [0, 1]:
|
|
random, seed1 = seeding.np_random(seed)
|
|
assert seed == seed1
|
|
|
|
|
|
def test_rng_pickle():
|
|
rng, _ = seeding.np_random(seed=0)
|
|
pickled = pickle.dumps(rng)
|
|
rng2 = pickle.loads(pickled)
|
|
assert isinstance(
|
|
rng2, seeding.RandomNumberGenerator
|
|
), "Unpickled object is not a RandomNumberGenerator"
|
|
assert rng.random() == rng2.random()
|