def test_player_events(self):
     detector = PlayerEventDetector()
     gtp = GameTickPacket()
     gtp.game_info.seconds_elapsed = 14.
     gtp.num_cars = 2
     gtp.game_cars[1].score_info.goals = 3
     self.assertListEqual(detector.detect_events(gtp), [])
     self.assertListEqual(detector.detect_events(gtp), [])
     gtp = GameTickPacket()
     gtp.game_info.seconds_elapsed = 15.
     gtp.num_cars = 2
     gtp.game_cars[1].score_info.goals = 5
     self.assertListEqual(detector.detect_events(gtp), [
         PlayerEvent(
             type=PlayerEventType.GOALS,
             player=gtp.game_cars[1],
             seconds_elapsed=15.,
         )
     ])
     self.assertListEqual(detector.detect_events(gtp), [])
def main():
    """Testing for errors and performance"""

    agent = SkeletonAgentTest("test_agent", 0, 0)
    agent.initialize_agent()
    game_tick_packet = GameTickPacket()

    game_tick_packet.num_cars = MAX_PLAYERS
    game_tick_packet.num_boost = MAX_BOOSTS
    game_tick_packet.num_goals = MAX_GOALS

    def test_function():
        return agent.get_output(game_tick_packet)

    fps = 120
    n_times = 1000
    time_taken = timeit(test_function, number=n_times)
    percentage = round(time_taken * fps / n_times * 100, 5)

    print(f"Took {time_taken} seconds to run {n_times} times.")
    print(f"That's {percentage} % of our time budget.")