Exemplo n.º 1
0
  def test_rendered_env(self):
    env = gym_utils.RenderedEnv(SimpleEnv(), resize_to=(64, 12))
    obs, _, _, _ = env.step(1)
    self.assertTrue(np.allclose(np.zeros([64, 12, 3], np.uint8), obs))

    env = gym_utils.RenderedEnv(SimpleEnv(), resize_to=(64, 12),
                                output_dtype=np.float32)
    obs, _, _, _ = env.step(1)
    self.assertTrue(np.allclose(np.zeros([64, 12, 3], np.float32), obs))
Exemplo n.º 2
0
    def test_rendered_env_continuous_2d(self):
        env = gym_utils.RenderedEnv(SimpleContinuousActionsEnv(dimensions=2),
                                    resize_to=(64, 12))
        obs, _, _, _ = env.step(0.5)
        self.assertTrue(np.allclose(np.zeros([64, 12, 3], np.uint8), obs))

        env = gym_utils.RenderedEnv(SimpleContinuousActionsEnv(dimensions=2),
                                    resize_to=(64, 12),
                                    output_dtype=np.float32)
        obs, _, _, _ = env.step(1)
        self.assertTrue(np.allclose(np.zeros([64, 12, 3], np.float32), obs))
Exemplo n.º 3
0
    def test_action_mapping_2d(self):
        num_actions = 8

        def expected_continuous_actions(discrete_action):
            if discrete_action == [0, 0]:
                return np.array([-1, -1])
            elif discrete_action == [0, 3]:
                return np.array([-1, -0.14285714])
            elif discrete_action == [4, 4]:
                return np.array([0.14285714, 0.14285714])
            elif discrete_action == [7, 7]:
                return np.array([1, 1])

        discrete_actions = [[0, 0], [0, 3], [4, 4], [7, 7]]

        with unittest.mock.patch.object(gym_utils.RenderedEnv,
                                        "step",
                                        autospec=True) as mock_step_method:
            env = gym_utils.RenderedEnv(
                SimpleContinuousActionsEnv(dimensions=2))

            env_discrete = gym_utils.ActionDiscretizeWrapper(env, num_actions)
            for discrete_action in discrete_actions:
                env_discrete.step(discrete_action)
                mock_args, _ = mock_step_method.call_args
                np.testing.assert_array_almost_equal(
                    mock_args[1], expected_continuous_actions(discrete_action))
Exemplo n.º 4
0
    def test_action_mapping_1d(self):
        """Testing discretization with a mock environment.

    In the mock call we get access to the argument of the
    SimpleContinuousActionsEnv.step method which we check against
    precomputed values of continuous actions.
    """
        num_actions = 4

        with unittest.mock.patch.object(gym_utils.RenderedEnv,
                                        "step",
                                        autospec=True) as mock_step_method:
            env = gym_utils.RenderedEnv(
                SimpleContinuousActionsEnv(dimensions=1))
            expected_continuous_actions = np.linspace(
                np.min(env.action_space.low),
                np.min(env.action_space.high),
                num=num_actions).flatten()

            env_discrete = gym_utils.ActionDiscretizeWrapper(env, num_actions)
            for discrete_action in range(num_actions):
                env_discrete.step([discrete_action])
                mock_step_method.assert_called_with(
                    unittest.mock.ANY,
                    expected_continuous_actions[discrete_action])
Exemplo n.º 5
0
    def test_correct_number_of_discrete_actions_2d(self):
        env_discrete = gym_utils.ActionDiscretizeWrapper(gym_utils.RenderedEnv(
            SimpleContinuousActionsEnv(dimensions=2)),
                                                         num_actions=4)

        expected_action_space = gym.spaces.MultiDiscrete([4, 4])
        self.assertEqual(env_discrete.action_space, expected_action_space)
Exemplo n.º 6
0
    def test_correct_number_of_discrete_actions_1d(self):
        """The env should become discrete whenever we pass num_action."""
        env_discrete = gym_utils.ActionDiscretizeWrapper(gym_utils.RenderedEnv(
            SimpleContinuousActionsEnv(dimensions=1)),
                                                         num_actions=4)

        expected_action_space = gym.spaces.MultiDiscrete([
            4,
        ])
        self.assertEqual(env_discrete.action_space, expected_action_space)
Exemplo n.º 7
0
 def test_rendered_env(self):
     env = gym_utils.RenderedEnv(SimpleEnv(), resize_to=(64, 64))
     obs, _, _, _ = env.step(1)
     self.assertTrue(np.allclose(np.zeros([64, 64, 3], np.uint8), obs))