def test_step_3(self):

        vo_mock = Mock()
        vo_mock.side_effect = [
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.17)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.23)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.02)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.11)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.90)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.14)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.10)),
            fill_step_mock(self.brain_name, np.full((10, 10, 1), 0.19))
        ]

        self.env_mock.step = vo_mock
        self.env_provider_mock.provide.return_value = self.env_mock

        cfg = Config('tests/config.json')
        cfg.set_config_value('OBS_SIZE', 10)
        cfg.set_config_value('FRAMES_SKIP', 0)
        cfg.set_config_value('FRAMES_LOOKBACK', 5)
        cfg.set_config_value('USE_DIFF', True)

        env = Environment(self.env_provider_mock, cfg)

        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [0, 0, 0, 0, 0], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [0, 0, 0, 0, 0.06], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [0, 0, 0, 6, -21], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [0, 0, 6, -21, 9], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [0, 6, -21, 9, -2], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [6, -21, 9, -2, 5], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [-21, 9, -2, 5, -4], True))
        res = env.step(1)
        self.assertTrue(
            frames_helper(
                res["stacked_observation"], [9, -2, 5, -4, 9], True))
 def test_step_1(self):
     self.env_mock.step.return_value = fill_step_mock(
         self.brain_name, np.random.rand(10, 10, 1))
     self.env_provider_mock.provide.return_value = self.env_mock
     cfg = Config('tests/config.json')
     cfg.set_config_value('OBS_SIZE', 10)
     cfg.set_config_value('FRAMES_SKIP', 4)
     cfg.set_config_value('FRAMES_LOOKBACK', 5)
     cfg.set_config_value('USE_DIFF', False)
     env = Environment(self.env_provider_mock, cfg)
     res = env.step(1)
     self.assertEqual(res["stacked_observation"].shape, (1, 10, 10, 5))