def test_givenOnePlayerInOtherTeamFarFromGoal_thenLineOfSightClearanceIsDistanceToTarget( self): player1 = self._build_mock_player(Position(100, 100), 1) player2 = self._build_mock_player(Position(1500, 1500), 2) self.goal.x, self.goal.y = (200, 200) self._create_mock_teams({player1.id: player1}, {2: player2}) distance_to_target = np.linalg.norm(player1.pose.position - self.goal) assert line_of_sight_clearance(player1, self.goal) == distance_to_target
def test_givenOnePlayerInMyTeamNearFromGoal_thenLineOfSightClearanceIsDistanceToTargetTimesPathScore( self): player1 = self._build_mock_player(Position(100, 100), 1) player2 = self._build_mock_player(Position(130, 130), 2) self.goal.x, self.goal.y = (200, 200) self._create_mock_teams({player1.id: player1, player2.id: player2}, {}) distance_to_target = np.linalg.norm(player1.pose.position - self.goal) path_score = trajectory_score(player1.pose.position, self.goal, player2.pose.position) assert line_of_sight_clearance( player1, self.goal) == distance_to_target * path_score
def test_givenTwoPlayerInOtherTeamNearGoal_thenLineOfSightClearanceIsDistanceToTargetTimesBothPathScores( self): player1 = self._build_mock_player(Position(100, 100), 1) player2 = self._build_mock_player(Position(130, 130), 2) player3 = self._build_mock_player(Position(160, 170), 3) self.goal.x, self.goal.y = (200, 200) self._create_mock_teams({player1.id: player1}, { player2.id: player2, player3.id: player3 }) distance_to_target = np.linalg.norm(player1.pose.position - self.goal) path_score_to_p2 = trajectory_score(player1.pose.position, self.goal, player2.pose.position) path_score_to_p3 = trajectory_score(player1.pose.position, self.goal, player3.pose.position) assert line_of_sight_clearance( player1, self.goal ) == distance_to_target * path_score_to_p2 * path_score_to_p3