예제 #1
0
    def testInterrupted(self):
        sut = TheDominator()
        player = Player("foo")
        opponent = Player("bar")
        for i in range(0, 9):
            game = Game(player.name, 10, opponent.name, 0, i)
            game.skillChangeToBlue = -1
            player.game(game)
            opponent.game(game)
            result = sut.applies(player, game, opponent, None)
            self.assertFalse(result)

        baz = Player("baz")
        game = Game(player.name, 10, baz.name, 0, 9)
        game.skillChangeToBlue = -1
        player.game(game)
        result = sut.applies(player, game, baz, None)
        self.assertFalse(result)

        game = Game(player.name, 0, opponent.name, 10, 10)
        game.skillChangeToBlue = -1
        player.game(game)
        opponent.game(game)
        result = sut.applies(player, game, opponent, None)
        self.assertFalse(result)
        result = sut.applies(opponent, game, player, None)
        self.assertFalse(result)
예제 #2
0
 def _create(self):
     player = Player("foo")
     game0 = Game(player.name, 10, "bar", 0, 1)
     game0.skillChangeToBlue = 2
     player.games.append(game0)
     game1 = Game(player.name, 10, "bar", 0, 2)
     game1.skillChangeToBlue = -3
     player.games.append(game1)
     game2 = Game(player.name, 10, "bar", 0, 3)
     game2.skillChangeToBlue = 4
     player.games.append(game2)
     game3 = Game(player.name, 10, "bar", 0, 4)
     game3.skillChangeToBlue = -1
     player.games.append(game3)
     return player
예제 #3
0
 def _create(self):
     player = Player("foo")
     game0 = Game(player.name, 10, "bar", 0, 1)
     game0.skillChangeToBlue = 2
     player.games.append(game0)
     game1 = Game(player.name, 10, "bar", 0, 2)
     game1.skillChangeToBlue = -3
     player.games.append(game1)
     game2 = Game(player.name, 10, "bar", 0, 3)
     game2.skillChangeToBlue = 4
     player.games.append(game2)
     game3 = Game(player.name, 10, "bar", 0, 4)
     game3.skillChangeToBlue = -1
     player.games.append(game3)
     return player
예제 #4
0
파일: test_json.py 프로젝트: tredston/TNTFL
    def test(self):
        game = Game('red', 4, 'blue', 6, 1)
        game.skillChangeToBlue = 2
        game.redPosChange = -1
        game.redPosAfter = 2
        game.bluePosChange = 1
        game.bluePosAfter = 1

        actual = sut.gameToJson(game, '../')

        self.assertEqual(actual['red']['name'], 'red')
        self.assertEqual(actual['red']['href'], '../player/red/json')
        self.assertEqual(actual['red']['score'], 4)
        self.assertEqual(actual['red']['skillChange'], -2)
        self.assertEqual(actual['red']['rankChange'], -1)
        self.assertEqual(actual['red']['newRank'], 2)

        self.assertEqual(actual['blue']['name'], 'blue')
        self.assertEqual(actual['blue']['href'], '../player/blue/json')
        self.assertEqual(actual['blue']['score'], 6)
        self.assertEqual(actual['blue']['skillChange'], 2)
        self.assertEqual(actual['blue']['rankChange'], 1)
        self.assertEqual(actual['blue']['newRank'], 1)

        self.assertEqual(actual['positionSwap'], True)
        self.assertEqual(actual['date'], 1)
예제 #5
0
    def test(self):
        games = []
        game = Game('red', 6, 'blue', 4, 1)
        game.skillChangeToBlue = -2.5
        games.append(game)
        game = Game('red', 1, 'blue', 9, 1)
        game.skillChangeToBlue = 10.4
        games.append(game)

        games = rankTransform.do(games)

        self.assertEqual(1, games[0].redPosAfter)
        self.assertEqual(2, games[0].bluePosAfter)
        self.assertEqual(2, games[1].redPosAfter)
        self.assertEqual(-1, games[1].redPosChange)
        self.assertEqual(1, games[1].bluePosAfter)
        self.assertEqual(1, games[1].bluePosChange)
예제 #6
0
    def testInactive(self):
        games = []
        game = Game('red', 6, 'blue', 4, 1)
        game.skillChangeToBlue = -2.5
        games.append(game)
        game = Game('red', 5, 'green', 5, 6000000)
        game.skillChangeToBlue = 0
        games.append(game)

        games = rankTransform.do(games)

        self.assertEqual(1, games[0].redPosAfter)
        self.assertEqual(2, games[0].bluePosAfter)
        self.assertEqual(1, games[1].redPosAfter)
        self.assertEqual(0, games[1].redPosChange)
        self.assertEqual(2, games[1].bluePosAfter)
        self.assertEqual(0, games[1].bluePosChange)
예제 #7
0
 def testOver100(self):
     ach = AgainstAllOdds()
     player = Player("foo")
     player.elo = 0
     opponent = Player("bar")
     opponent.elo = 100
     game = Game(player.name, 10, opponent.name, 0, 0)
     game.skillChangeToBlue = -1
     player.game(game)
     opponent.game(game)
     result = ach.applies(player, game, opponent, None)
     self.assertTrue(result)
예제 #8
0
 def testOver50_2(self):
     ach = AgainstTheOdds()
     player = Player("foo")
     player.elo = 0
     opponent = Player("baz")
     opponent.elo = 50
     game = Game(opponent.name, 0, player.name, 10, 0)
     game.skillChangeToBlue = 10
     player.game(game)
     opponent.game(game)
     result = ach.applies(player, game, opponent, None)
     self.assertTrue(result)
예제 #9
0
 def testUnder50(self):
     ach = AgainstTheOdds()
     player = Player("foo")
     player.elo = 0
     opponent = Player("bar")
     opponent.elo = 49
     game = Game(player.name, 10, opponent.name, 0, 0)
     game.skillChangeToBlue = -50
     player.game(game)
     opponent.game(game)
     result = ach.applies(player, game, opponent, None)
     self.assertFalse(result)
예제 #10
0
    def test(self):
        sut = Unstable()
        player = Player("foo")
        opponent = Player("bar")

        game = Game(player.name, 5, opponent.name, 5, 0)
        game.skillChangeToBlue = -5
        player.game(game)
        opponent.game(game)
        result = sut.applies(player, game, opponent, None)
        self.assertFalse(result)
        result = sut.applies(opponent, game, player, None)
        self.assertFalse(result)

        game = Game(player.name, 10, opponent.name, 0, 0)
        game.skillChangeToBlue = -5
        player.game(game)
        opponent.game(game)
        result = sut.applies(player, game, opponent, None)
        self.assertFalse(result)
        result = sut.applies(opponent, game, player, None)
        self.assertFalse(result)

        game = Game(player.name, 0, "bar", 10, 1)
        game.skillChangeToBlue = 5
        player.game(game)
        opponent.game(game)
        result = sut.applies(player, game, opponent, None)
        self.assertTrue(result)
        result = sut.applies(opponent, game, player, None)
        self.assertTrue(result)

        game = Game(player.name, 0, "bar", 10, 1)
        game.skillChangeToBlue = 5
        player.game(game)
        opponent.game(game)
        result = sut.applies(player, game, opponent, None)
        self.assertFalse(result)
        result = sut.applies(opponent, game, player, None)
        self.assertFalse(result)
예제 #11
0
파일: test_json.py 프로젝트: tredston/TNTFL
    def test(self):
        player = Player('foo')
        game = Game('foo', 4, 'red', 6, 1)
        game.skillChangeToBlue = -2
        player.games.append(game)

        actual = sut.perPlayerStatsToJson(sut.getPerPlayerStats(player))

        self.assertEqual(len(actual), 1)
        self.assertEqual(actual[0]['opponent'], 'red')
        self.assertEqual(actual[0]['skillChange'], 2)
        self.assertEqual(actual[0]['for'], 4)
        self.assertEqual(actual[0]['against'], 6)
        self.assertEqual(actual[0]['games'], 1)
        self.assertEqual(actual[0]['wins'], 0)
        self.assertEqual(actual[0]['losses'], 1)
예제 #12
0
def addGame(red, redScore, blue, blueScore, time, skillChangeToBlue=0):
    game = Game(red.name, redScore, blue.name, blueScore, time)
    game.skillChangeToBlue = skillChangeToBlue
    red.game(game)
    blue.game(game)
    return game