def test_contains(self): cl = CardList([Card(1), Card(15), Card(10), Card(15), Card(30)]) self.assertEqual(Card(1) in cl, True) self.assertEqual(1 in cl, True) self.assertEqual(CardList([Card(1), Card(15)]) in cl, True) self.assertEqual([1, 15] in cl, True) self.assertEqual([15, 15] in cl, True) self.assertEqual([15, 15, 15] in cl, False)
def test_count(self): cl = CardList([Card(1), Card(15), Card(10), Card(15), Card(30)]) self.assertEqual(cl.count(Card(1)), 1) self.assertEqual(cl.count(1), 1) self.assertEqual(cl.count(Card(15)), 2) self.assertEqual(cl.count(15), 2) self.assertEqual(cl.count(Card(20)), 0) self.assertEqual(cl.count(20), 0)
def test_count_getitem(self): cl = CardList([Card(1), Card(15), Card(10), Card(15), Card(30)]) self.assertEqual(cl[Card(1)], 1) self.assertEqual(cl[1], 1) self.assertEqual(cl[Card(15)], 2) self.assertEqual(cl[15], 2) self.assertEqual(cl[Card(20)], 0) self.assertEqual(cl[20], 0)
def create_shuffled_deck(self, exclude_jokers): self.deck = [] for rank in Rank: if rank == Rank.JOKER: continue for suit in Suit: color = Color.BLACK if suit == Suit.HEARTS or suit == Suit.DIAMONDS: color = Color.RED self.deck.append(Card(rank, suit, color)) if not exclude_jokers: self.deck.append(Card(Rank.JOKER, None, None)) shuffle(self.deck)
def test_init(self): self.assertIsNone(Card().ID) self.assertEqual(Card(13).ID, 13) with self.assertRaises(TypeError): Card(2.4) Card('A10') with self.assertRaises(ValueError): Card(54) Card(-1)
def Network_update(self, data): if not self.gb: self.gb = GraphicsBoard() b = data['boardstate'] # Reformat cards as Card objects if b['trump_card'] is not None: b['trump_card'] = Card(b['trump_card'][0], b['trump_card'][1]) if b['led_card'] is not None: b['led_card'] = Card(b['led_card'][0], b['led_card'][1]) for player in b['players']: b['players'][player]['cards_in_hand'] = [ Card(card[0], card[1]) for card in b['players'][player]['cards_in_hand'] ] self.gb.draw_board(b, self.name) if b['next_to_act'] != b['players'][self.name]['id']: # player is not the actor; just update screen return # Player is the actor. # Bring terminal to foreground. try: os.system( f"osascript {os.path.join(os.path.dirname(__file__), 'util/activate_window.scpt')}" ) except Exception as e: print(e) # Bid or play based on context. if b['activity'] == 'bid': self.gb.bid() elif b['activity'] == 'play': self.gb.play()
def test_init(self): self.assertListEqual(CardList().cardlist, []) self.assertListEqual( CardList([Card(13), Card(1), Card(2), Card(53)]).cardlist, CardList([Card(53), Card(13), Card(2), Card(1)]).cardlist) self.assertListEqual( CardList([Card(13), Card(13), Card(18), Card(8)]).cardlist, CardList([Card(18), Card(13), Card(13), Card(8)]).cardlist)
def test_insert_add(self): cl = CardList([Card(1), Card(15), Card(10)]) cl2 = cl + Card(12) self.assertListEqual(cl2.cardlist, [Card(15), Card(12), Card(10), Card(1)]) cl3 = cl2 + CardList([Card(10), Card(10), Card(8)]) self.assertListEqual(cl3.cardlist, [ Card(15), Card(12), Card(10), Card(10), Card(10), Card(8), Card(1) ]) self.assertListEqual(cl.cardlist, [Card(15), Card(10), Card(1)])
def test_insert(self): cl = CardList([Card(1), Card(15), Card(10)]) cl.insert(Card(12)) self.assertListEqual(cl.cardlist, [Card(15), Card(12), Card(10), Card(1)]) cl.insert(CardList([Card(10), Card(10), Card(8)])) self.assertListEqual(cl.cardlist, [ Card(15), Card(12), Card(10), Card(10), Card(10), Card(8), Card(1) ])
def test_isEmpty(self): self.assertEqual(CardList([]).isEmpty(), True) self.assertEqual(CardList([Card(3)]).isEmpty(), False)
def test_len(self): self.assertEqual(len(CardList()), 0) self.assertEqual( len(CardList([Card(13), Card(13), Card(18), Card(8)])), 4)
def test_size(self): self.assertEqual(CardList().size, 0) self.assertEqual( CardList([Card(13), Card(13), Card(18), Card(8)]).size, 4)
def test_suit(self): self.assertIsNone(Card().suit) self.assertEqual(Card(0).suit, CardSuit.Diamond) self.assertEqual(Card(12).suit, CardSuit.Diamond) self.assertEqual(Card(13).suit, CardSuit.Club) self.assertEqual(Card(25).suit, CardSuit.Club) self.assertEqual(Card(26).suit, CardSuit.Heart) self.assertEqual(Card(38).suit, CardSuit.Heart) self.assertEqual(Card(39).suit, CardSuit.Spade) self.assertEqual(Card(51).suit, CardSuit.Spade) self.assertEqual(Card(52).suit, CardSuit.Joker) self.assertEqual(Card(53).suit, CardSuit.Joker)
def test_rank(self): self.assertIsNone(Card().rank) self.assertEqual(Card(0).rank, 0) self.assertEqual(Card(30).rank, 4) self.assertEqual(Card(52).rank, 0) self.assertEqual(Card(53).rank, 1)
def test_remove_sub(self): cl = CardList([Card(1), Card(5), Card(10), Card(15)]) cl2 = cl - Card(10) self.assertListEqual(cl2.cardlist, [Card(15), Card(5), Card(1)]) with self.assertRaises(ValueError): cl2 - CardList([Card(1), Card(1)]) cl4 = cl2 - CardList([Card(1), Card(5)]) self.assertListEqual(cl4.cardlist, [Card(15)]) self.assertListEqual( cl.cardlist, [Card(15), Card(10), Card(5), Card(1)])
#!/usr/bin/env python3 import unittest, os from util.securechannel import SecureChannel, SecureError AID = "B00B5111FF01" APPLET = "toys.SecureApplet" CLASSDIR = "Secure" mode = os.environ.get('TEST_MODE', "simulator") if mode == "simulator": from util.simulator import Simulator, ISOException sim = Simulator(AID, APPLET, CLASSDIR) elif mode == "card": from util.card import Card, ISOException sim = Card(AID) else: raise RuntimeError("Not supported") def setUpModule(): sim.connect() def tearDownModule(): sim.disconnect() SELECT = b"\x00\xA4\x04\x00" GET_RANDOM = b"\xB0\xB1\x00\x00" GET_PUBKEY = b"\xB0\xB2\x00\x00"
def test_filter(self): cl = CardList([ Card(1), Card(15), Card(10), Card(15), Card(30), Card(48), Card(27) ]) self.assertListEqual( (cl.filter(CardSuit.filterSuit(CardSuit.Spade))).cardlist, [Card(48)]) self.assertListEqual((cl.filter( CardSuit.filterSuit(CardSuit.Diamond | CardSuit.Heart))).cardlist, [Card(30), Card(27), Card(10), Card(1)])