def testActivePlayers(self): ladder = TableFootballLadder( self.getLadder("test_active.txt"), transforms=PresetTransforms.no_transforms()) self.assertEqual(3, ladder.getNumActivePlayers(5000000003)) self.assertEqual(0, ladder.getNumActivePlayers(6000000002)) self.assertEqual(2, ladder.getNumActivePlayers(6000000004))
def testTwoLadders(self): a = TableFootballLadder(os.path.join(__location__, "testLadder.txt"), False) b = TableFootballLadder(os.path.join(__location__, "testLadder.txt"), False) self.assertEquals(5, len(a.games)) self.assertEquals(5, len(b.games))
def testLadder(self): l = TableFootballLadder(os.path.join(__location__, "testLadder.txt"), False) self.assertEqual(5, len(l.games)) self.assertEqual(4, len(l.players)) aaa = l.players['aaa'] self.assertAlmostEqual(-2.30014, aaa.elo, places=5) self.assertEqual(1, l.getPlayerRank('ccc')) self.assertEqual(-1, l.getPlayerRank('inactive'))
def testLadder(self): ladder = TableFootballLadder(self.getLadder("testLadder.txt")) ladder._theTime = 5000000004 self.assertEqual(5, len(ladder.games)) self.assertEqual(4, len(ladder.players)) aaa = ladder.players['aaa'] self.assertAlmostEqual(-2.30014, aaa.elo, places=5) self.assertEqual(1, ladder.getPlayerRank('ccc')) self.assertEqual(-1, ladder.getPlayerRank('inactive'))
def testLadder(self): l = TableFootballLadder(os.path.join(__location__, "testLadder.txt"), False) l._theTime = 5000000004 self.assertEqual(5, len(l.games)) self.assertEqual(4, len(l.players)) aaa = l.players['aaa'] self.assertAlmostEqual(-2.30014, aaa.elo, places=5) self.assertEqual(1, l.getPlayerRank('ccc')) self.assertEqual(-1, l.getPlayerRank('inactive'))
def testFirstGame(self): ladder = TableFootballLadder(os.path.join(__location__, "emptyLadder.txt"), False) player = Player("foo") opponent = Player("baz") game = Game(opponent.name, 0, player.name, 10, 0) ladder.addGame(game) sut = EarlyBird() result = sut.applies(player, game, opponent, ladder) self.assertTrue(result) result = sut.applies(opponent, game, player, ladder) self.assertFalse(result)
def testJrem(self): jl = TableFootballLadder(self.getLadder("jrem.ladder")) jrem = jl.players['jrem'] streaks = jrem.getStreaks() self.assertEquals(0, streaks['current'].count) self.assertEquals(12, streaks['win'].count) self.assertEquals(14, streaks['lose'].count)
def testJrem(self): jl = TableFootballLadder(os.path.join(__location__, "jrem.ladder"), False) jrem = jl.players['jrem'] streaks = jrem.getStreaks() self.assertEquals(0, streaks['current'].count) self.assertEquals(12, streaks['win'].count) self.assertEquals(14, streaks['lose'].count)
def testRankChange(self): ladder = TableFootballLadder(self.getLadder("test_rank.txt")) self.assertEqual(2, ladder.games[0].redPosAfter) self.assertEqual(1, ladder.games[0].bluePosAfter) self.assertEqual(1, ladder.games[1].redPosAfter) self.assertEqual(1, ladder.games[1].redPosChange) self.assertEqual(2, ladder.games[1].bluePosAfter) self.assertEqual(-1, ladder.games[1].bluePosChange)
def testRankChange(self): ladder = TableFootballLadder( os.path.join(__location__, "test_rank.txt"), False) self.assertEqual(2, ladder.games[0].redPosAfter) self.assertEqual(1, ladder.games[0].bluePosAfter) self.assertEqual(1, ladder.games[1].redPosAfter) self.assertEqual(1, ladder.games[1].redPosChange) self.assertEqual(2, ladder.games[1].bluePosAfter) self.assertEqual(-1, ladder.games[1].bluePosChange)
def ladderRange(games_from, games_to): base = "../../../" show_inactive = request.args.get('showInactive') include_players = request.args.get('players') time_range = (int(games_from), int(games_to)) this_tntfl = TableFootballLadder(config.ladderFilePath, timeRange=time_range, transforms=PresetTransforms.transforms_for_ladder()) return json.dumps(ladderToJson(this_tntfl, base, show_inactive, include_players))
def testPlayerStreak(self): ladder = TableFootballLadder(self.getLadder("testStreak.txt")) streaky = ladder.players['streak'] streaks = streaky.getStreaks() self.assertEquals(6, streaks['win'].count) self.assertEquals(2, streaks['lose'].count) self.assertEquals("(last game was a draw)", streaks['currentType'])
def getLadder(speculative_games): transforms = PresetTransforms.transforms_for_recent() games = Transformer.transform( lambda: GameStore(config.ladderFilePath).getGames(), transforms) if len(speculative_games) > 0: games += speculative_games games = Transformer.transform(lambda: games, transforms) return TableFootballLadder(None, games=games)
def testPlayerStreak(self): l = TableFootballLadder(os.path.join(__location__, "testStreak.txt"), False) streaky = l.players['streak'] streaks = streaky.getStreaks() self.assertEquals(4, streaks['win'].count) self.assertEquals(2, streaks['lose'].count) self.assertEquals("(last game was a draw)", streaks['currentType'])
def test(self): ladder = TableFootballLadder(os.path.join(__location__, "testLadder.txt"), False) player = Player("foo") opponent = Player("baz") game = addGame(opponent, 0, player, 10, 6000000003) ladder.games.append(game) sut = EarlyBird() result = sut.applies(player, game, opponent, ladder) self.assertTrue(result) result = sut.applies(opponent, game, player, ladder) self.assertFalse(result)
def testStreaks2nd(self): ladder = TableFootballLadder(self.getLadder("testStreak.txt")) streaky = ladder.players['streak'] bulkAppend(streaky, 6, Player('baz'), 4, 5000000012, 5) sut = Streaks() result = sut.getFact(streaky, streaky.games[-2], None) self.assertIsNone(result) result = sut.getFact(streaky, streaky.games[-1], None) self.assertEqual( result, "At 5 games, streak was on their 2nd longest winning streak.")
def testFirstGame(self): ladder = TableFootballLadder(self.getLadder("emptyLadder.txt")) player = Player("foo") opponent = Player("baz") game = addGame(opponent, 0, player, 10, 0) ladder.games.append(game) sut = EarlyBird() result = sut.applies(player, game, opponent, ladder) self.assertTrue(result) result = sut.applies(opponent, game, player, ladder) self.assertFalse(result)
def testStreaks2nd(self): l = TableFootballLadder(os.path.join(__location__, "testStreak.txt"), False) streaky = l.players['streak'] bulkAppend(streaky, 6, Player('baz'), 4, 5000000012, 3) sut = Streaks() result = sut.getFact(streaky, streaky.games[-2], None) self.assertIsNone(result) result = sut.getFact(streaky, streaky.games[-1], None) self.assertEqual( result, "At 3 games, streak was on their 2nd longest winning streak.")
def testStreaksAgainst(self): ladder = TableFootballLadder(self.getLadder("testStreak.txt")) streaky = ladder.players['streak'] test = ladder.players['test'] sut = StreaksAgainst() result = sut.getFact(streaky, streaky.games[5], test) self.assertEqual( result, "That was streak's 6th consecutive win against test.") result = sut.getFact(streaky, streaky.games[6], test) self.assertIsNone(result) result = sut.getFact(test, streaky.games[6], streaky) self.assertEqual( result, "test avoided losing to streak for the first time in 6 games.")
def testStreaksAgainst(self): l = TableFootballLadder(os.path.join(__location__, "testStreak.txt"), False) streaky = l.players['streak'] test = l.players['test'] sut = StreaksAgainst() result = sut.getFact(streaky, streaky.games[3], test) self.assertEqual( result, "That was streak's 4th consecutive win against test.") result = sut.getFact(streaky, streaky.games[4], test) self.assertIsNone(result) result = sut.getFact(test, streaky.games[4], streaky) self.assertEqual( result, "test avoided losing to streak for the first time in 4 games.")
def testStreaks(self): ladder = TableFootballLadder(self.getLadder("testStreak.txt")) streaky = ladder.players['streak'] sut = Streaks() result = sut.getFact(streaky, streaky.games[4], None) self.assertEqual( result, "At 5 games, streak was on their longest winning streak.") result = sut.getFact(streaky, streaky.games[5], None) self.assertEqual( result, "At 6 games, streak was on their longest winning streak.") result = sut.getFact(streaky, streaky.games[6], None) self.assertEqual(result, "streak broke their winning streak of 6 games.") result = sut.getFact(streaky, streaky.games[7], None) self.assertIsNone(result)
def testStreaks(self): l = TableFootballLadder(os.path.join(__location__, "testStreak.txt"), False) streaky = l.players['streak'] sut = Streaks() result = sut.getFact(streaky, streaky.games[2], None) self.assertEqual( result, "At 3 games, streak was on their longest winning streak.") result = sut.getFact(streaky, streaky.games[3], None) self.assertEqual( result, "At 4 games, streak was on their longest winning streak.") result = sut.getFact(streaky, streaky.games[4], None) self.assertEqual(result, "streak broke their winning streak of 4 games.") result = sut.getFact(streaky, streaky.games[5], None) self.assertIsNone(result)
def testGamesRange(self): l = TableFootballLadder(os.path.join(__location__, "testLadder.txt"), False, [5000000000, 5000000002]) self.assertEqual(3, len(l.games)) self.assertEqual(3, len(l.players))
def testGamesRange(self): ladder = TableFootballLadder(self.getLadder("testLadder.txt"), [5000000000, 5000000002]) self.assertEqual(3, len(ladder.games)) self.assertEqual(3, len(ladder.players))
def testLadder(): return TableFootballLadder('file://' + os.path.join(__location__, "testLadder.txt"))
def testTwoLadders(self): a = TableFootballLadder(self.getLadder("testLadder.txt")) b = TableFootballLadder(self.getLadder("testLadder.txt")) self.assertEquals(5, len(a.games)) self.assertEquals(5, len(b.games))
def get(self): if self._tntfl is None: self._tntfl = TableFootballLadder(config.ladderFilePath) return self._tntfl