def setUp(self): self.x = Node('x') self.y = Node('y') self.z = Node('z') self.route = [self.y, self.z] self.agentId = 1 self.agent = GroupMoveAgent(self.agentId, self.route) self.agent1 = GroupMoveAgent(self.agentId, self.route) self.agent2 = GroupMoveAgent(self.agentId, self.route) self.agents = [self.agent1, self.agent2] self.agent.setAgents(self.agents)
class TestGroupMoveAgent(TestCase): def setUp(self): self.x = Node('x') self.y = Node('y') self.z = Node('z') self.route = [self.y, self.z] self.agentId = 1 self.agent = GroupMoveAgent(self.agentId, self.route) self.agent1 = GroupMoveAgent(self.agentId, self.route) self.agent2 = GroupMoveAgent(self.agentId, self.route) self.agents = [self.agent1, self.agent2] self.agent.setAgents(self.agents) def test_init(self): agent = GroupMoveAgent(self.agentId, self.route) self.assertEqual(self.agentId, agent.id) self.assertEqual(self.route, agent.route) self.assertEqual(set(), agent.agents) self.assertEqual(set(), agent.waitingFor) def test_setAgents(self): self.assertEqual(self.agents, self.agent.agents) def test_tickWaitingForEmpty(self): messages, cmd = self.agent.tick([], self.x) self.checkMoveReturn(messages, cmd) def test_tickWaitingToMove(self): self.agent.tick([], self.x) messages, cmd = self.agent.tick([], self.x) self.checkMoveReturn(messages, cmd) def test_tickMoved(self): self.agent.tick([], self.x) messages, cmd = self.agent.tick([], self.y) self.checkBMovedWaitReturn(messages, cmd, self.y) def test_tickWaiting(self): self.agent.tick([], self.x) self.agent.tick([], self.y) messages, cmd = self.agent.tick([], self.y) self.assertEqual([], messages) self.checkWaitReturn(cmd) def test_tickFinishedRoute(self): self.agent.tick([], self.x) self.agent.tick([], self.y) messages, cmd = self.agent.tick([], self.z) self.checkBMovedWaitReturn(messages, cmd, self.z) messages, cmd = self.agent.tick([], self.z) self.assertEqual([], messages) self.assertIsInstance(cmd, Done) self.assertEqual(cmd.agent, self.agent) def checkMoveReturn(self, messages, cmd): self.assertListEqual([], messages) self.assertIsInstance(cmd, Move) self.assertEqual(cmd.agent, self.agent) self.assertEqual(cmd.to, self.y) def checkBMovedWaitReturn(self, messages, cmd, region): self.checkWaitReturn(cmd) bMoved = messages[0] self.assertIsInstance(bMoved, BroadcastMoved) self.assertEqual(bMoved.frmAgent, self.agent) self.assertEqual(bMoved.toRegion, region) def checkWaitReturn(self, cmd): self.assertIsInstance(cmd, Wait) self.assertEqual(cmd.agent, self.agent)