예제 #1
0
def test_add_card():
    card1 = Card({"suit": "SPADES", "value": "A"})
    card2 = Card({"suit": "SPADES", "value": "Q"})
    player1 = Player([card1, card2], "nick")
    card3 = Card({"suit": "SPADES", "value": "J"})
    player1.add_card(card3)
    assert ["SA", "SQ", "SJ"] == player1.cards
예제 #2
0
def test_bob_bust():
    shuffled_deck = [
        {
            "suit": "SPADES",
            "value": "A"
        },
        {
            "suit": "SPADES",
            "value": "2"
        },
        {
            "suit": "CLUBS",
            "value": "6"
        },
        {
            "suit": "CLUBS",
            "value": "A"
        },
        {
            "suit": "DIAMONDS",
            "value": "2"
        },
        {
            "suit": "DIAMONDS",
            "value": "J"
        },
        {
            "suit": "CLUBS",
            "value": "8"
        },
        {
            "suit": "SPADES",
            "value": "K"
        },
    ]
    deck = Deck()
    deck.deck = shuffled_deck
    player1 = Player(name="player1",
                     hand=[deck.get_new_card(),
                           deck.get_new_card()])
    bob = Player(name="Bob", hand=[deck.get_new_card(), deck.get_new_card()])
    game = Game(deck, player1, bob)
    results = game.play_game()
    assert {
        "winner":
        "player1",
        "players": [
            {
                "name": "player1",
                "points": 18,
                "cards": ["SK", "C8"]
            },
            {
                "name": "Bob",
                "points": 23,
                "cards": ["DJ", "D2", "CA"]
            },
        ],
    } == results
예제 #3
0
def test_blackjack():
    card1 = Card({"suit": "SPADES", "value": "A"})
    card2 = Card({"suit": "SPADES", "value": "Q"})
    player1 = Player([card1, card2], "nick")
    assert ["SA", "SQ"] == player1.cards
    assert player1.blackjack
    card3 = Card({"suit": "SPADES", "value": "J"})
    card4 = Card({"suit": "SPADES", "value": "Q"})
    player2 = Player([card3, card4], "nick")
    assert player2.blackjack is False
    assert ["SJ", "SQ"] == player2.cards
예제 #4
0
def test_reached_bust():
    card1 = Card({"suit": "SPADES", "value": "A"})
    card2 = Card({"suit": "SPADES", "value": "Q"})
    card3 = Card({"suit": "SPADES", "value": "Q"})
    player1 = Player([card1, card2], "nick")
    player1.add_card(card3)
    assert player1.reached_bust()
    card4 = Card({"suit": "SPADES", "value": "2"})
    card5 = Card({"suit": "SPADES", "value": "Q"})
    card6 = Card({"suit": "SPADES", "value": "5"})
    player2 = Player([card4, card5], "nick")
    player2.add_card(card6)
    assert player2.reached_bust() is False
예제 #5
0
def test_both_blackjack():
    shuffled_deck = [
        {
            "suit": "SPADES",
            "value": "2"
        },
        {
            "suit": "SPADES",
            "value": "A"
        },
        {
            "suit": "SPADES",
            "value": "J"
        },
        {
            "suit": "DIAMONDS",
            "value": "A"
        },
        {
            "suit": "DIAMONDS",
            "value": "J"
        },
    ]
    deck = Deck()
    deck.deck = shuffled_deck
    player1 = Player(name="player1",
                     hand=[deck.get_new_card(),
                           deck.get_new_card()])
    bob = Player(name="Bob", hand=[deck.get_new_card(), deck.get_new_card()])
    game = Game(deck, player1, bob)
    results = game.play_game()
    print(results)
    assert {
        "winner":
        None,
        "players": [
            {
                "name": "player1",
                "points": 21,
                "cards": ["DJ", "DA"]
            },
            {
                "name": "Bob",
                "points": 21,
                "cards": ["SJ", "SA"]
            },
        ],
    } == results
예제 #6
0
def test_reached_limit():
    card1 = Card({"suit": "SPADES", "value": "A"})
    card2 = Card({"suit": "SPADES", "value": "2"})
    card3 = Card({"suit": "SPADES", "value": "Q"})
    player1 = Player([card1, card2], "nick")
    player1.add_card(card3)
    assert player1.reached_limit()
    card4 = Card({"suit": "SPADES", "value": "2"})
    card5 = Card({"suit": "SPADES", "value": "3"})
    card6 = Card({"suit": "SPADES", "value": "5"})
    player2 = Player([card4, card5], "nick")
    player2.add_card(card6)
    assert player2.reached_limit() is False
    card7 = Card({"suit": "SPADES", "value": "10"})
    card8 = Card({"suit": "SPADES", "value": "Q"})
    card9 = Card({"suit": "SPADES", "value": "J"})
    player3 = Player([card7, card8], "nick")
    player3.update_limit(40)
    player3.add_card(card9)
    assert player3.reached_limit() is False