2022-03-02 23:38:26 +08:00
|
|
|
import pickle
|
|
|
|
|
2022-09-08 10:10:07 +01:00
|
|
|
from gymnasium import error
|
|
|
|
from gymnasium.utils import seeding
|
2016-05-29 09:07:09 -07:00
|
|
|
|
2021-07-29 02:26:34 +02:00
|
|
|
|
2016-05-29 09:07:09 -07:00
|
|
|
def test_invalid_seeds():
|
2021-07-29 02:26:34 +02:00
|
|
|
for seed in [-1, "test"]:
|
2016-05-29 09:07:09 -07:00
|
|
|
try:
|
|
|
|
seeding.np_random(seed)
|
|
|
|
except error.Error:
|
|
|
|
pass
|
|
|
|
else:
|
2022-01-11 18:12:05 +01:00
|
|
|
assert False, f"Invalid seed {seed} passed validation"
|
2021-07-29 02:26:34 +02:00
|
|
|
|
2016-05-29 09:07:09 -07:00
|
|
|
|
|
|
|
def test_valid_seeds():
|
|
|
|
for seed in [0, 1]:
|
|
|
|
random, seed1 = seeding.np_random(seed)
|
|
|
|
assert seed == seed1
|
2022-03-02 23:38:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
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()
|