Ejemplo n.º 1
0
    def test_buy_stock(self):

        board = Board._board_in_play([(S, ['5G', '6G']), (F, ['1A', '2A'])])
        players = [GameStatePlayer._test_gsplayer("foo", 200, dict([('American', 3), ('Festival', 5)]), set())]

        player = OrderedPlayer('foo')
        buys = player._buy_stock(GameState._game_state_in_progress(players, board))
        self.assertEquals(buys, ['American'])
Ejemplo n.º 2
0
    def test_get_sellbacks_merge(self):
        player1 = GameStatePlayer._test_gsplayer("joe", 6000, {A:5}, [t5A])
        player2 = GameStatePlayer._test_gsplayer("obama", 6000, {S:4}, [])
        player3 = GameStatePlayer._test_gsplayer("kerry", 6000, {W:4}, [])
        player4 = GameStatePlayer._test_gsplayer("romney", 6000, {W:4}, [])
        player5 = GameStatePlayer._test_gsplayer("ryan", 6000, {W:4}, [])
        player6 = GameStatePlayer._test_gsplayer("mumblesmenino", 6000, {W:4}, [])
        board = Board._board_in_play([(A, [t4A, t3A]), (S, [t6A, t7A]), (W, [t5B, t5C])])
        gt = GameTree(GameState._game_state_in_progress([player1, player2, player3, player4, player5, player6], board))

        self.assertEqual(len(list(gt.get_sellbacks(t5A, A))), (2**2)**6)
Ejemplo n.º 3
0
    def test_keeps(self):

        board = Board._board_in_play([(S, ['5G', '6G']), (F, ['1A', '2A'])])
        players = [GameStatePlayer._test_gsplayer("foo", 200, dict([('American', 3), ('Festival', 5)]), set())]

        player = RandomPlayer('foo')
        keeps = player.keep(GameState._game_state_in_progress(players, board), [A])
        self.assertEquals(len(keeps), 1)

        keeps = player.keep(GameState._game_state_in_progress(players, board), [A, F])
        self.assertEquals(len(keeps), 2)
Ejemplo n.º 4
0
    def test_buy_stock(self):

        board = Board._board_in_play([(S, ['5G', '6G'])])
        players = [GameStatePlayer._test_gsplayer("foo", 6000, dict([('Sackson', 3)]), set(['2B']))]

        player = RandomPlayer('foo')
        buys = player._buy_stock(GameState._game_state_in_progress(players, board))

        self.assertTrue(len(buys)<=2)
        if len(buys)!=0:
            self.assertTrue(buys[0]!='Worldwide')
Ejemplo n.º 5
0
    def test_tile_placement(self):
        board_singleton = Board._board_in_play(dict([]))
        players_singleton = [GameStatePlayer._test_gsplayer("foo", 6000, dict([]), set(['2B', '1A', '3D']))]
        player = OrderedPlayer('foo')

        tile, hotel, movetype = player._place_tile(GameState._game_state_in_progress(players_singleton, board_singleton))

        self.assertEquals(tile, '1A')
        self.assertEquals(hotel, None)
        self.assertEquals(movetype, SINGLETON)


        test_board = [(C, ['3E', '4E']), (I, ['5G', '3G', '4G'])]
        board_merge = Board._board_in_play(test_board)
        players_merge = [GameStatePlayer._test_gsplayer("foo", 6000, dict([]), set(['3F', '6G', '3H']))]

        tile, hotel, movetype = player._place_tile(GameState._game_state_in_progress(players_merge, board_merge))

        self.assertEquals(tile, '3F')
        self.assertEquals(hotel, "Imperial")
        self.assertEquals(movetype, MERGE)
Ejemplo n.º 6
0
    def test_merge_payout_single_majority_multiple_minority(self):
        gs = self.gs
        gs.board = Board._board_in_play([(A,['2A', '3A', '4A', '5A']), (S,['1B', '1C', '2C'])])
        gs.players[0].shares_map[A] = 3
        gs.players[1].shares_map[A] = 2
        gs.players[2].shares_map[A] = 2
        initial_gs = deepcopy(gs)

        # pretend there are 4 american hotels on the board
        gs.merge_payout('1A', 'Sackson', initial_gs)

        self.assertEquals(gs.players[0].money, 13000)
        self.assertEquals(gs.players[1].money, 9250)
        self.assertEquals(gs.players[2].money, 9250)
Ejemplo n.º 7
0
 def test_bad_found_place_a_tile_full_board(self):
     gs = self.gs
     gs.board = Board._board_in_play([(A, ["1C", "2C"]), (S, ["4D", "4C"]), (W, ["6C", "7C"]),
         (C, ["1I", "2I"]), (A, ["1F", "2F"]), (A, ["10C", "11C"]), (A, ["10E", "11E"])])
     self.assertRaises(GameStateError, gs.place_a_tile, '1A', C)