Example #1
0
    def test_reset(self):
        hand = bj.Hand()
        hand.add_card(bj.create_card(8))
        hand.add_card(bj.create_card(8))
        hand.reset()

        self.assertEqual(len(hand.cards), 0)
Example #2
0
    def test_process_state_hard_17(self):
        dealer = bj.DealerActor()
        dealer.add_card(bj.create_card(10))
        dealer.add_card(bj.create_card(7))

        a = dealer.process_state({})
        self.assertEqual(a, bj.Action.STAND)
Example #3
0
    def test_process_state_hit(self):
        dealer = bj.DealerActor()
        dealer.add_card(bj.create_card(5))
        dealer.add_card(bj.create_card(4))

        a = dealer.process_state({})
        self.assertEqual(a, bj.Action.HIT)
Example #4
0
    def test_drawn_cards(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(3))
        actor.add_card(bj.create_card(2))
        actor.add_card(bj.create_card(5))
        actor.add_card(bj.create_card(6))
        actor.add_card(bj.create_card(3))

        self.assertEqual(actor.drawn_cards(), 3)
Example #5
0
    def test_basic_hand(self):
        hand = bj.Hand()
        hand.add_card(bj.create_card(10))
        hand.add_card(bj.create_card(8))

        self.assertEqual(hand.count(), 18)
        self.assertFalse(hand.is_blackjack())
        self.assertTrue(hand.can_double_down())
        self.assertFalse(hand.can_split())
        self.assertFalse(hand.is_soft_hand())
Example #6
0
    def test_is_blackjack(self):
        hand = bj.Hand()
        hand.add_card(bj.create_card(10))
        hand.add_card(bj.create_ace())

        self.assertTrue(hand.is_blackjack())

        hand.add_card(bj.create_card(10))
        self.assertEqual(hand.count(), 21)
        self.assertFalse(hand.is_blackjack())
Example #7
0
    def test_string_multiple_hands(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(3))
        actor.add_card(bj.create_card(5))

        actor.hands.append(bj.Hand())
        actor.add_card(bj.create_card(6), 1)
        actor.add_card(bj.create_card(5), 1)

        self.assertEqual(str(actor), '(0) 3 5 - 8\n(1) 6 5 - 11\n')
Example #8
0
    def test_aces(self):
        hand = bj.Hand()
        hand.add_card(bj.create_ace())
        hand.add_card(bj.create_card(8))

        self.assertTrue(hand.is_soft_hand())

        hand.add_card(bj.create_ace())
        self.assertEqual(hand.count(), 20)

        hand.add_card(bj.create_card(10))
        self.assertEqual(hand.count(), 20)
Example #9
0
    def test_count_multiple_hands(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(10))
        actor.add_card(bj.create_card(8))

        # Add a new hand.
        actor.hands.append(bj.Hand())
        actor.add_card(bj.create_card(6), 1)
        actor.add_card(bj.create_card(5), 1)

        self.assertEqual(actor.count(), 18)
        self.assertEqual(actor.count(1), 11)
Example #10
0
    def test_obfuscate_count(self):
        dealer = bj.DealerActor()
        dealer.add_card(bj.create_card(10))
        dealer.add_card(bj.create_card(8))

        self.assertEqual(dealer.count(), 10)
        self.assertEqual(str(dealer), '10 X - 10')

        dealer.show_hand = True

        self.assertEqual(dealer.count(), 18)
        self.assertEqual(str(dealer), '10 8 - 18')
Example #11
0
    def test_count_append(self):
        hand = bj.Hand()
        hand.add_card(bj.create_ace())
        hand.add_card(bj.create_card(5))
        self.assertEqual(hand.count(), 16)

        hand.add_card(bj.create_card(4))
        self.assertEqual(hand.count(), 20)

        hand.add_card(bj.create_card(8))
        self.assertEqual(hand.count(), 18)

        hand.add_card(bj.create_card(5))
        self.assertEqual(hand.count(), 23)
Example #12
0
    def test_split_single_hand(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(5))
        actor.add_card(bj.create_card(5))

        actor.split_hand()

        self.assertEqual(len(actor.hands), 2)
        self.assertEqual(actor.count(), 5)
        self.assertEqual(actor.hands[0].cards[0].min_val, 5)
        self.assertTrue(actor.hands[0].is_split)

        self.assertEqual(actor.count(1), 5)
        self.assertEqual(actor.hands[1].cards[0].min_val, 5)
        self.assertTrue(actor.hands[1].is_split)
Example #13
0
    def test_process_state_soft_18(self):
        dealer = bj.DealerActor()
        dealer.add_card(bj.create_ace())
        dealer.add_card(bj.create_card(8))

        a = dealer.process_state({})
        self.assertEqual(a, bj.Action.STAND)
Example #14
0
    def test_split_multiple_hands(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(5))
        actor.add_card(bj.create_card(5))

        actor.hands.append(bj.Hand())
        actor.add_card(bj.create_card(8), 1)
        actor.add_card(bj.create_card(7), 1)

        actor.split_hand()

        self.assertEqual(len(actor.hands), 3)
        self.assertEqual(actor.count(), 5)
        self.assertEqual(actor.hands[0].cards[0].min_val, 5)
        self.assertTrue(actor.hands[0].is_split)

        self.assertEqual(actor.count(1), 5)
        self.assertEqual(actor.hands[1].cards[0].min_val, 5)
        self.assertTrue(actor.hands[1].is_split)

        self.assertEqual(actor.hands[2].cards[0].min_val, 8)
Example #15
0
    def test_drawn_cards_multiple_hands(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(3))
        actor.add_card(bj.create_card(5))

        actor.hands.append(bj.Hand())
        actor.add_card(bj.create_card(6), 1)
        actor.add_card(bj.create_card(5), 1)
        actor.add_card(bj.create_card(6), 1)

        actor.hands.append(bj.Hand())
        actor.add_card(bj.create_card(3), 2)
        actor.add_card(bj.create_card(8), 2)
        actor.add_card(bj.create_card(5), 2)

        self.assertEqual(actor.drawn_cards(), 2)
Example #16
0
 def test_count(self):
     actor = bj.Actor()
     actor.add_card(bj.create_card(10))
     actor.add_card(bj.create_card(8))
     self.assertEqual(actor.count(), 18)
Example #17
0
    def test_split(self):
        hand = bj.Hand()
        hand.add_card(bj.create_card(8))
        hand.add_card(bj.create_card(8))

        self.assertTrue(hand.can_split())
Example #18
0
    def test_string(self):
        actor = bj.Actor()
        actor.add_card(bj.create_card(10))
        actor.add_card(bj.create_card(6))

        self.assertEqual(str(actor), '10 6 - 16')