Esempio n. 1
0
 def test_win(self):
     figgie = Figgie()
     figgie.goal_suit = Suit.SPADES
     figgie.cards = np.array([[12, 0, 0, 0], [0, 10, 0, 0], [0, 0, 8, 0],
                              [0, 0, 0, 10]])
     results = figgie.get_utility()
     self.assertEqual([200, 200, 200, 400], results.tolist())
Esempio n. 2
0
    def test_bid(self):
        figgie = Figgie()
        for suit in SUITS:
            figgie.cards = np.full((4, 4), 2, dtype=int)

            player = figgie.active_player
            market = figgie.markets[suit.value]

            can, _ = market.can_bid(player, 7)
            self.assertTrue(can)

            figgie.preform(('bid', suit, 7))
            self.assertEqual(
                7, market.buying_price,
                'Buying price not set properly with bid operation')
            self.assertEqual(1, market.operations)
            figgie.reset()
Esempio n. 3
0
    def test_buy(self):
        figgie = Figgie()
        for suit in SUITS:
            figgie.cards = np.full((4, 4), 2, dtype=int)

            player = figgie.active_player
            market = figgie.markets[suit.value]

            can, _ = market.can_ask(0, 7)
            self.assertTrue(can)
            asking_player = player
            figgie.preform(('ask', suit, 7))
            self.assertEqual(
                7, market.selling_price,
                'Selling price not set properly with ask operation')
            self.assertEqual(1, market.operations)

            if figgie.active_player == asking_player:
                figgie.preform(('pass', ))

            player = figgie.active_player

            figgie.preform(('buy', suit))
            for s in SUITS:
                self.assertEqual(figgie.markets[s.value].buying_price, None,
                                 'Market not reset after buy')
                self.assertEqual(figgie.markets[s.value].selling_price, None,
                                 'Market not reset after buy')
            self.assertEqual(STARTING_CHIPS - 7, figgie.chips[player],
                             'Chips not properly subtracted')
            self.assertEqual(STARTING_CHIPS + 7, figgie.chips[asking_player],
                             'Chips not properly added')
            self.assertEqual(3, figgie.cards[player][suit.value],
                             'card not properly added')
            self.assertEqual(1, figgie.cards[asking_player][suit.value],
                             'card not properly subtracted')
            self.assertEqual(1, market.transactions)
            self.assertEqual(7, market.last_price)
            self.assertEqual(2, market.operations)

            figgie.reset()
Esempio n. 4
0
    def test_ask(self):
        figgie = Figgie()
        for suit in SUITS:
            figgie.cards = np.full((4, 4), 2, dtype=int)

            player = figgie.active_player
            hand = figgie.cards[player]
            market = figgie.markets[suit.value]

            hand[suit.value] = 0
            can, _ = market.can_ask(player, 7)
            self.assertFalse(can)

            hand[suit.value] = 2
            can, _ = market.can_ask(player, 7)
            self.assertTrue(can)

            figgie.preform(('ask', suit, 7))
            self.assertEqual(
                7, market.selling_price,
                'Selling price not set properly with ask operation')
            self.assertEqual(1, market.operations)
            figgie.reset()