예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
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)
예제 #4
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)
예제 #5
0
 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)
예제 #6
0
    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()
예제 #7
0
 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)
예제 #8
0
 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)])
예제 #9
0
 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)
     ])
예제 #10
0
 def test_isEmpty(self):
     self.assertEqual(CardList([]).isEmpty(), True)
     self.assertEqual(CardList([Card(3)]).isEmpty(), False)
예제 #11
0
 def test_len(self):
     self.assertEqual(len(CardList()), 0)
     self.assertEqual(
         len(CardList([Card(13), Card(13),
                       Card(18), Card(8)])), 4)
예제 #12
0
 def test_size(self):
     self.assertEqual(CardList().size, 0)
     self.assertEqual(
         CardList([Card(13), Card(13),
                   Card(18), Card(8)]).size, 4)
예제 #13
0
 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)
예제 #14
0
 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)
예제 #15
0
 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)])
예제 #16
0
#!/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"
예제 #17
0
 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)])