def test_remember(self): """ remember should pass by default. """ agent = Agent() agent.remember( 'observation', 'action', 'reward', 'done', next_observation='next_observation', info={'info': 'info'}, )
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)]
def test_learn(self): """ learn should return an empty dictionary by default. """ agent = Agent() logs = agent.learn() check.equal(logs, {})
def test_act(self): """ act should raise NotImplementedError. """ agent = Agent() with pytest.raises(NotImplementedError): agent.act('obs')
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'])
def setup_playground(self): """Setup of used fixtures""" self.n_agents = 5 self.agents = [Agent() for _ in range(self.n_agents)]
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)
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])