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