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'])
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)
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)
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')
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)
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)
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)