def _update_availability_player(self, player: Player): player_is_playing = self.available_players.get(player.id, None) if not player.check_if_on_field(): if player_is_playing: del (self.available_players[player.id]) else: if player_is_playing is None: self.available_players[player.id] = player
def init_field(): print("Déplacement robot au centre") for idx in range(6): blue_team.players[idx] = Player(blue_team, idx) yellow_team.players[idx] = Player(yellow_team, idx) out_fields_cmd = [] for player in yellow_team.players.values(): cmd = command.MoveTo( player, Position(random.random() * 3, random.random() * 3 + 5)) out_fields_cmd.append(cmd) for player in blue_team.players.values(): cmd = command.MoveTo( player, Position(random.random() * 3, random.random() * 3 + 5)) out_fields_cmd.append(cmd) for cmd in out_fields_cmd: gr_sim_debug_sender.send_command(cmd)
class TestPlayer(unittest.TestCase): def setUp(self): self.team = Team(TeamColor.BLUE) self.player1 = Player(self.team, 1) self.player2 = Player(self.team, 2) def test_init_normal(self): random_player_id = 0 p = Player(self.team, random_player_id) self.assertIsNotNone(p) self.assertIsNotNone(p.id) self.assertEqual(random_player_id, p.id) self.assertIsNotNone(p.team) self.assertIsNotNone(p.pose) self.assertEqual(p.pose, Pose()) self.assertIsNotNone(p.velocity) self.assertEqual(p.velocity, Pose()) self.assertIsNotNone(p.kf) self.assertTrue(isinstance(p.kf, EnemyKalmanFilter)) self.assertIsNotNone(p.update) def test_has_id(self): player_id = 0 p = Player(self.team, player_id) self.assertTrue(p.has_id(0)) for i in range(1, 13): self.assertFalse(p.has_id(i)) def test_check_if_on_field(self): # needs to fails since the pose is the default one self.assertFalse(self.player1.check_if_on_field()) self.player1.pose = Pose(Position(200, 200), 1) self.assertTrue(self.player1.check_if_on_field()) def test__update(self): self.player1._update(Pose(Position(200, 200), 1)) self.assertEqual(self.player1.pose, Pose(Position(200, 200), 1)) self.assertNotEqual(self.player1.pose, Pose()) def test__kalman_update(self): self.assertEqual(self.player1.pose, Pose()) # one kalman update and the kalman filter will put the pose of the player to Pose(9999, 9999, 0) or something self.player1._kalman_update([None], 0.5) self.assertNotEqual(self.player1.pose, Pose()) self.assertNotEqual(self.player1.pose, Pose(200, 200, 1)) # send enough image where the robot has no position for the kalman to say the robot # isnt on the field with Pose() for i in range(21): self.player1._kalman_update([None], 0.5) self.assertEqual(self.player1.pose, Pose())
def test_init_normal(self): random_player_id = 0 p = Player(self.team, random_player_id) self.assertIsNotNone(p) self.assertIsNotNone(p.id) self.assertEqual(random_player_id, p.id) self.assertIsNotNone(p.team) self.assertIsNotNone(p.pose) self.assertEqual(p.pose, Pose()) self.assertIsNotNone(p.velocity) self.assertEqual(p.velocity, Pose()) self.assertIsNotNone(p.kf) self.assertTrue(isinstance(p.kf, EnemyKalmanFilter)) self.assertIsNotNone(p.update)
def __init__(self, team_color: TeamColor): assert isinstance(team_color, TeamColor) self.players = {} self.available_players = {} for player_id in range(PLAYER_PER_TEAM): self.players[player_id] = Player(self, player_id) if player_id < 6: self.players[player_id].in_play = True self.available_players[player_id] = self.players[player_id] self.team_color = team_color self.score = 0 self.update_player = self._update_player if ConfigService().config_dict["IMAGE"]["kalman"] == "true": self.update_player = self._kalman_update
def test_has_id(self): player_id = 0 p = Player(self.team, player_id) self.assertTrue(p.has_id(0)) for i in range(1, 13): self.assertFalse(p.has_id(i))
def setUp(self): self.team = Team(TeamColor.BLUE) self.player1 = Player(self.team, 1) self.player2 = Player(self.team, 2)
def setUp(self): self.team = Team(TeamColor.YELLOW) self.team_blue = Team(TeamColor.BLUE) self.first_player = self.team.players[0] self.second_player = self.team.players[1] self.no_player = Player(self.team, 0)