Files
Gymnasium/tests/utils/test_seeding.py
JYX 15b5c6c29f Fix RandomNumberGenerator pickling (#2639)
* 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
2022-03-02 10:38:26 -05:00

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()