2019-06-08 01:01:35 +02:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
import gym
|
|
|
|
from gym.wrappers import ResizeObservation
|
2021-07-29 02:26:34 +02:00
|
|
|
|
2019-06-08 01:01:35 +02:00
|
|
|
try:
|
2021-09-11 11:04:41 -06:00
|
|
|
import ale_py
|
2019-06-08 01:01:35 +02:00
|
|
|
except ImportError:
|
2021-09-11 11:04:41 -06:00
|
|
|
ale_py = None
|
2019-06-08 01:01:35 +02:00
|
|
|
|
|
|
|
|
2021-07-29 15:39:42 -04:00
|
|
|
@pytest.mark.skipif(
|
2021-09-11 11:04:41 -06:00
|
|
|
ale_py is None, reason="Only run this test when ale_py is installed"
|
2021-07-29 15:39:42 -04:00
|
|
|
)
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"env_id", ["PongNoFrameskip-v0", "SpaceInvadersNoFrameskip-v0"]
|
|
|
|
)
|
2021-07-29 02:26:34 +02:00
|
|
|
@pytest.mark.parametrize("shape", [16, 32, (8, 5), [10, 7]])
|
2019-06-08 01:01:35 +02:00
|
|
|
def test_resize_observation(env_id, shape):
|
|
|
|
env = gym.make(env_id)
|
|
|
|
env = ResizeObservation(env, shape)
|
|
|
|
|
|
|
|
assert env.observation_space.shape[-1] == 3
|
|
|
|
obs = env.reset()
|
|
|
|
if isinstance(shape, int):
|
|
|
|
assert env.observation_space.shape[:2] == (shape, shape)
|
|
|
|
assert obs.shape == (shape, shape, 3)
|
|
|
|
else:
|
2019-07-13 06:10:11 +08:00
|
|
|
assert env.observation_space.shape[:2] == tuple(shape)
|
|
|
|
assert obs.shape == tuple(shape) + (3,)
|