Пример #1
0
    def test_cards_can_be_compared_before_a_suit_is_led(self) -> None:
        players = [Player(), Player(), Player(), Player()]
        deal = Deal(players=players, bidder_index=0)
        trick = Trick(deal=deal, leading_player_index=0)

        # The queen should be consider higher, as we are assuming we are not
        # dealing with a trump suit, given that no trump suit was even specified yet.
        self.assertEqual(
            1,
            trick.compare_cards(Card(suit=Suit.HEARTS, rank=Rank.JACK),
                                Card(suit=Suit.HEARTS, rank=Rank.QUEEN)))

        # Unrelated cards cannot be compared properly without a trump suit or a led suit.
        self.assertEqual(
            0,
            trick.compare_cards(
                Card(suit=Suit.HEARTS, rank=Rank.JACK),
                Card(suit=Suit.SPADES, rank=Rank.ACE),
            ))

        deal.trump_suit = Suit.HEARTS

        # Now that we have a trump suit defined, the higher trump should rank higher.
        self.assertEqual(
            -1,
            trick.compare_cards(Card(suit=Suit.HEARTS, rank=Rank.JACK),
                                Card(suit=Suit.HEARTS, rank=Rank.QUEEN)))