Пример #1
0
 def test_solve_two_players(self):
     trials = 1000
     outcomes = bradley_terry.GenerateRandomGameOutcomes([1, 2], trials)
     report = 'bradley-terry-solve-two-players.csv'
     p = bradley_terry.EstimateSkillRatingsFromGameOutcomes(outcomes, report)
     self.assertLess(p[0], 0.5)
     self.assertGreater(p[1], 0.5)
Пример #2
0
 def test_solve_hundred_players_sparse(self):
     trials = 500
     skills = [(i + 1) for i in range(100)]
     outcomes = bradley_terry.GenerateRandomGameOutcomes(skills, trials)
     report = 'bradley-terry-solve-hundred-players-sparse.csv'
     p = bradley_terry.EstimateSkillRatingsFromGameOutcomes(outcomes, report)
     self.assertGreaterEqual(p[0], 0)
     self.assertLessEqual(p[99], 1)
     self.assertLess(sum(p[:50]), sum(p[50:]))
Пример #3
0
 def test_solve_three_players(self):
     trials = 1000
     outcomes = bradley_terry.GenerateRandomGameOutcomes([1, 2, 3], trials)
     report = 'bradley-terry-solve-three-players.csv'
     p = bradley_terry.EstimateSkillRatingsFromGameOutcomes(outcomes, report)
     # Test that the skill ratings come out in the right order.
     self.assertGreater(p[0], 0)
     self.assertGreater(p[1], p[0])
     self.assertGreater(p[2], p[1])
     self.assertLess(p[2], 1)
Пример #4
0
 def test_solve_ten_players(self):
     trials = 1000
     skills = [(i + 1) for i in range(10)]
     outcomes = bradley_terry.GenerateRandomGameOutcomes(skills, trials)
     report = 'bradley-terry-solve-ten-players.csv'
     p = bradley_terry.EstimateSkillRatingsFromGameOutcomes(outcomes, report)
     self.assertGreater(p[0], 0)
     self.assertLess(p[9], 1)
     # Top players should at least be ahead of the player ranked 5 behind.
     for i in range(5, 10):
         self.assertGreater(p[i], p[i - 5])
Пример #5
0
 def test_generate_random_game_outcomes(self):
     trials = 1000
     skills = [1, 1, 2]
     outcomes = bradley_terry.GenerateRandomGameOutcomes(skills, trials)
     # Sanity check that winner != loser.
     self.assertNotEqual(outcomes[0][0], outcomes[0][1])
     # Count the number of wins by player.
     wins = [0, 0, 0]
     for winner, loser in outcomes:
         wins[winner] += 1
     # Each player should win some games.
     self.assertGreater(wins[0], 0)
     self.assertGreater(wins[1], 0)
     self.assertGreater(wins[2], 0)
     # Player 2 should win more games due to higher skill.
     self.assertGreater(wins[2], trials / 3)
     # The wins should add up to the total number of games played.
     self.assertEqual(sum(wins), trials)