|
import pytest |
|
import numpy as np |
|
from easydict import EasyDict |
|
from zoo.box2d.lunarlander.envs import LunarLanderEnv |
|
|
|
|
|
@pytest.mark.envtest |
|
@pytest.mark.parametrize( |
|
'cfg', [ |
|
EasyDict({ |
|
'env_name': 'LunarLander-v2', |
|
'act_scale': False, |
|
'replay_path': None, |
|
'replay_path_gif': None, |
|
'save_replay_gif': False, |
|
}), |
|
EasyDict({ |
|
'env_name': 'LunarLanderContinuous-v2', |
|
'act_scale': True, |
|
'replay_path': None, |
|
'replay_path_gif': None, |
|
'save_replay_gif': False, |
|
}) |
|
] |
|
) |
|
class TestLunarLanderEnvEnv: |
|
""" |
|
Overview: |
|
The env created for testing the LunarLander environment. |
|
It is used to check information such as observation space, action space and reward space. |
|
""" |
|
|
|
def test_naive(self, cfg): |
|
env = LunarLanderEnv(cfg) |
|
env.seed(314) |
|
assert env._seed == 314 |
|
obs = env.reset() |
|
assert obs['observation'].shape == (8, ) |
|
for i in range(10): |
|
random_action = env.random_action() |
|
timestep = env.step(random_action) |
|
print(timestep) |
|
assert isinstance(timestep.obs['observation'], np.ndarray) |
|
assert isinstance(timestep.done, bool) |
|
assert timestep.obs['observation'].shape == (8, ) |
|
assert timestep.reward.shape == (1, ) |
|
assert timestep.reward >= env.reward_space.low |
|
assert timestep.reward <= env.reward_space.high |
|
print(env.observation_space, env.action_space, env.reward_space) |
|
env.close() |
|
|