Add call, get_attr and set_attr methods to VectorEnv (#1600)

* Add call, get_attr and set_attr methods

* Use f-strings and remove assert

* Allow tuples in set_attr and move docstrings

* Replace CubeCrash by CartPole in tests
This commit is contained in:
Tristan Deleu
2022-01-29 12:32:35 -05:00
committed by GitHub
parent b9e8b6c587
commit 081c5c1e80
5 changed files with 279 additions and 8 deletions

View File

@@ -67,6 +67,39 @@ def test_step_sync_vector_env(use_single_action_space):
assert dones.size == 8
def test_call_sync_vector_env():
env_fns = [make_env("CartPole-v1", i) for i in range(4)]
try:
env = SyncVectorEnv(env_fns)
_ = env.reset()
images = env.call("render", mode="rgb_array")
gravity = env.call("gravity")
finally:
env.close()
assert isinstance(images, tuple)
assert len(images) == 4
for i in range(4):
assert isinstance(images[i], np.ndarray)
assert isinstance(gravity, tuple)
assert len(gravity) == 4
for i in range(4):
assert isinstance(gravity[i], float)
assert gravity[i] == 9.8
def test_set_attr_sync_vector_env():
env_fns = [make_env("CartPole-v1", i) for i in range(4)]
try:
env = SyncVectorEnv(env_fns)
env.set_attr("gravity", [9.81, 3.72, 8.87, 1.62])
gravity = env.get_attr("gravity")
assert gravity == (9.81, 3.72, 8.87, 1.62)
finally:
env.close()
def test_check_spaces_sync_vector_env():
# CartPole-v1 - observation_space: Box(4,), action_space: Discrete(2)
env_fns = [make_env("CartPole-v1", i) for i in range(8)]