Module tests.moog.env_wrappers.test_gym_wrapper
Tests for moog/env_wrappers/gym_wrapper.py.
To run this test, navigate to this directory and run
$ pytest test_gym_wrapper.py --capture=tee-sys
Note: The –capture=tee-sys routes print statements to stdout, which is useful for debugging.
Alternatively, to run this test and any others, navigate to any parent directory and simply run
$ pytest --capture=tee-sys
This will run all test_* files in children directories.
Classes
class TestGymWrapper
-
Expand source code
class TestGymWrapper(): def testJoystickActions(self): def _state_initializer(): agent = sprite.Sprite(x=0.5, y=0.5, scale=0.1, c0=128) return collections.OrderedDict([('agent', [agent])]) max_episode_length = 5 task = tasks.Reset( lambda _: True, steps_after_condition=max_episode_length - 1) env = environment.Environment( state_initializer=_state_initializer, physics=physics_lib.Physics(), task=task, action_space=action_spaces.Joystick(), observers={'image': observers.PILRenderer(image_size=(64, 64))}, ) gym_env = gym_wrapper.GymWrapper(env) assert ( gym_env.observation_space == spaces.Dict({ 'image': spaces.Box(0, 255, shape=(64, 64, 3), dtype=np.uint8) }) ) assert ( gym_env.action_space == spaces.Box(-1., 1., shape=(2,), dtype=np.float32) ) for _ in range(3): gym_env.reset() for _ in range(max_episode_length - 1): action = gym_env.action_space.sample() obs, reward, done, _ = gym_env.step(action) assert (obs['image'].dtype == np.uint8) assert not done assert (reward == 0.) action = gym_env.action_space.sample() _, _, done, _ = gym_env.step(action) assert done _, _, done, _ = gym_env.step(action) assert not done def testGridActions(self): def _state_initializer(): agent = sprite.Sprite(x=0.5, y=0.5, scale=0.1, c0=128) return collections.OrderedDict([('agent', [agent])]) max_episode_length = 5 task = tasks.Reset( lambda _: True, steps_after_condition=max_episode_length - 1) env = environment.Environment( state_initializer=_state_initializer, physics=physics_lib.Physics(), task=task, action_space=action_spaces.Grid(), observers={'image': observers.PILRenderer(image_size=(64, 64))}) gym_env = gym_wrapper.GymWrapper(env) assert ( gym_env.observation_space == spaces.Dict({ 'image': spaces.Box(0, 255, shape=(64, 64, 3), dtype=np.uint8) }) ) assert (gym_env.action_space == spaces.Discrete(5)) for _ in range(3): gym_env.reset() for _ in range(max_episode_length - 1): action = gym_env.action_space.sample() obs, reward, done, _ = gym_env.step(action) assert (obs['image'].dtype == np.uint8) assert not done assert reward == 0. action = gym_env.action_space.sample() _, _, done, _ = gym_env.step(action) assert done _, _, done, _ = gym_env.step(action) assert not done
Methods
def testGridActions(self)
-
Expand source code
def testGridActions(self): def _state_initializer(): agent = sprite.Sprite(x=0.5, y=0.5, scale=0.1, c0=128) return collections.OrderedDict([('agent', [agent])]) max_episode_length = 5 task = tasks.Reset( lambda _: True, steps_after_condition=max_episode_length - 1) env = environment.Environment( state_initializer=_state_initializer, physics=physics_lib.Physics(), task=task, action_space=action_spaces.Grid(), observers={'image': observers.PILRenderer(image_size=(64, 64))}) gym_env = gym_wrapper.GymWrapper(env) assert ( gym_env.observation_space == spaces.Dict({ 'image': spaces.Box(0, 255, shape=(64, 64, 3), dtype=np.uint8) }) ) assert (gym_env.action_space == spaces.Discrete(5)) for _ in range(3): gym_env.reset() for _ in range(max_episode_length - 1): action = gym_env.action_space.sample() obs, reward, done, _ = gym_env.step(action) assert (obs['image'].dtype == np.uint8) assert not done assert reward == 0. action = gym_env.action_space.sample() _, _, done, _ = gym_env.step(action) assert done _, _, done, _ = gym_env.step(action) assert not done
def testJoystickActions(self)
-
Expand source code
def testJoystickActions(self): def _state_initializer(): agent = sprite.Sprite(x=0.5, y=0.5, scale=0.1, c0=128) return collections.OrderedDict([('agent', [agent])]) max_episode_length = 5 task = tasks.Reset( lambda _: True, steps_after_condition=max_episode_length - 1) env = environment.Environment( state_initializer=_state_initializer, physics=physics_lib.Physics(), task=task, action_space=action_spaces.Joystick(), observers={'image': observers.PILRenderer(image_size=(64, 64))}, ) gym_env = gym_wrapper.GymWrapper(env) assert ( gym_env.observation_space == spaces.Dict({ 'image': spaces.Box(0, 255, shape=(64, 64, 3), dtype=np.uint8) }) ) assert ( gym_env.action_space == spaces.Box(-1., 1., shape=(2,), dtype=np.float32) ) for _ in range(3): gym_env.reset() for _ in range(max_episode_length - 1): action = gym_env.action_space.sample() obs, reward, done, _ = gym_env.step(action) assert (obs['image'].dtype == np.uint8) assert not done assert (reward == 0.) action = gym_env.action_space.sample() _, _, done, _ = gym_env.step(action) assert done _, _, done, _ = gym_env.step(action) assert not done