Exemplo n.º 1
0
 def test_remember(self):
     """ remember should pass by default. """
     agent = Agent()
     agent.remember(
         'observation',
         'action',
         'reward',
         'done',
         next_observation='next_observation',
         info={'info': 'info'},
     )
Exemplo n.º 2
0
    def setup_playground(self, mocker):
        """Setup of used fixtures"""

        self.observation = 'observation'
        self.next_observation = 'next_observation'
        self.reward = 1.2
        self.handled_reward = 1.7
        self.done = False
        self.info = {'env_info': 'env_info'}

        mocker.patch('gym.Env.render')
        mocker.patch('gym.Env.step',
                     return_value=(self.next_observation, self.reward,
                                   self.done, self.info))
        self.env = Env()

        mocker.patch('learnrl.agent.Agent.remember')
        mocker.patch('learnrl.agent.Agent.learn')
        self.action = 3
        mocker.patch('learnrl.agent.Agent.act', return_value=self.action)
        self.n_agents = 5
        self.agents = [Agent() for _ in range(self.n_agents)]

        self.agent_id = 0
        mocker.patch('learnrl.playground.Playground._get_next_agent',
                     return_value=(self.agents[self.agent_id], self.agent_id))

        def handler_mocker(cls, reward, done, experience, reward_handler,
                           done_handler, logs):
            experience['reward'] = self.handled_reward
            logs['handled_reward'] = self.handled_reward

        mocker.patch('learnrl.playground.Playground._call_handlers',
                     handler_mocker)
        self.playground = Playground(self.env, self.agents)

        self.previous = [{
            'observation': None,
            'action': None,
            'reward': None,
            'done': None,
            'info': None
        } for _ in range(self.n_agents)]
Exemplo n.º 3
0
 def test_learn(self):
     """ learn should return an empty dictionary by default. """
     agent = Agent()
     logs = agent.learn()
     check.equal(logs, {})
Exemplo n.º 4
0
 def test_act(self):
     """ act should raise NotImplementedError. """
     agent = Agent()
     with pytest.raises(NotImplementedError):
         agent.act('obs')
Exemplo n.º 5
0
 def test_agent_typeerror(self):
     " should raise a TypeError if any agent isn't a subclass of learnrl.Agent. "
     with pytest.raises(TypeError, match=r"agent.*learnrl.Agent"):
         Playground(self.env, [Agent(), 'agent'])
Exemplo n.º 6
0
 def setup_playground(self):
     """Setup of used fixtures"""
     self.n_agents = 5
     self.agents = [Agent() for _ in range(self.n_agents)]
Exemplo n.º 7
0
 def setup_playground(self):
     """Setup of used fixtures"""
     self.env = Env()
     self.n_agents = 5
     self.agents = [Agent() for _ in range(self.n_agents)]
     self.playground = Playground(self.env, self.agents)
Exemplo n.º 8
0
 def test_single_agent_argument(self):
     " should transform a single agent in a list containing itself. "
     single_agent = Agent()
     playground = Playground(self.env, single_agent)
     check.equal(playground.agents, [single_agent])