""" A unit test for module blackjack Run this test script to make sure everything is working properly. Authors: L. Lee (LJL2), S. Marschner (SRM2), and W. White (WMW2) Date: October 20, 2017 (Python 3 Version) """ import cornell import lab09 import card def test_init(): """ Tests the __init__ method for Blackjack objects """ c1 = card.Card(0, 12) c2 = card.Card(1, 10) c3 = card.Card(2, 9) c4 = card.Card(0, 1) # Initialize deck and start game. deck = [c1, c2, c3, c4] game = lab09.Blackjack(deck) cornell.assert_equals([c1, c2], game.playerHand) cornell.assert_equals([c3], game.dealerHand) cornell.assert_equals([c4], deck) # check that cards were removed deck = card.full_deck() # non-shuffled deck game = lab09.Blackjack(deck) c1 = card.Card(0, 1) c2 = card.Card(0, 2) c3 = card.Card(0, 3) c4 = card.Card(0, 4) cornell.assert_equals([c1, c2], game.playerHand) cornell.assert_equals([c3], game.dealerHand) # check that right cards were removed cornell.assert_equals(card.full_deck()[3:], deck) print('The __init__ tests passed') def test_str(): """ Tests the __str__ function for Blackjack objects """ deck = [card.Card(0, 12), card.Card(1, 10), card.Card(2, 9)] game = lab09.Blackjack(deck) cornell.assert_equals('player: 20; dealer: 9', str(game)) game.playerHand=[] cornell.assert_equals('player: 0; dealer: 9', str(game)) game.dealerHand.append(card.Card(2,1)) cornell.assert_equals('player: 0; dealer: 20', str(game)) game.dealerHand.append(card.Card(2,5)) cornell.assert_equals('player: 0; dealer: 25', str(game)) print('The __str__ tests passed') def test_score(): """ Tests the _score method (which is hidden, but we access anyway) """ # need a dummy game object to call its _score function (and test it) deck = [card.Card(0, 12), card.Card(1, 10), card.Card(2, 9)] game = lab09.Blackjack(deck) cornell.assert_equals(13, game._score([card.Card(2, 2), card.Card(3, 1)])) cornell.assert_equals(13, game._score([card.Card(1, 13), card.Card(0, 3)])) cornell.assert_equals(22, game._score([card.Card(1, 1), card.Card(0, 1)])) cornell.assert_equals(9, game._score([card.Card(1, 2), card.Card(0, 3), card.Card(3, 4)])) cornell.assert_equals(0, game._score([])) print('The _score tests passed') def test_dealerScore(): """ Tests the dealerScore method for Blackjack objects """ deck = [card.Card(0, 12), card.Card(1, 10), card.Card(2, 9)] game = lab09.Blackjack(deck) cornell.assert_equals(9, game.dealerScore()) game.dealerHand = [card.Card(2, 2), card.Card(3, 1)] game.playerHand = [card.Card(1, 13), card.Card(0, 3)] cornell.assert_equals(13, game.dealerScore()) print('The dealerScore tests passed') def test_playerScore(): """ Tests the playerScore method for Blackjack objects """ """Test playerScore function""" deck = [card.Card(0, 12), card.Card(1, 10), card.Card(2, 9)] game = lab09.Blackjack(deck) cornell.assert_equals(20, game.playerScore()) game.playerHand = [card.Card(2, 2), card.Card(3, 1)] game.dealerHand = [card.Card(1, 13), card.Card(0, 3)] cornell.assert_equals(13, game.playerScore()) print('The playerScore tests passed') def test_playerBust(): """ Tests the playerBust method for Blackjack objects """ # get dummy deck deck = [card.Card(0, 12), card.Card(1, 10), card.Card(2, 9)] game = lab09.Blackjack(deck) cornell.assert_true(not game.playerBust()) game.playerHand = [card.Card(0, 1), card.Card(1, 10)] cornell.assert_true(not game.playerBust()) game.playerHand = [card.Card(0, 1), card.Card(1, 10), card.Card(0, 2)] cornell.assert_true(game.playerBust()) game.playerHand = [card.Card(0, 10), card.Card(1, 10), card.Card(0, 1)] cornell.assert_true(game.playerBust()) game.playerHand = [card.Card(0, 11), card.Card(1, 10), card.Card(0, 1)] cornell.assert_true(game.playerBust()) game.playerHand = [card.Card(0, 11), card.Card(1, 10), card.Card(0, 1), card.Card(1,1)] cornell.assert_true(game.playerBust()) print('The playerBust tests passed') def test_dealerBust(): """ Tests the dealerBust method for Blackjack objects """ # get dummy deck deck = [card.Card(0, 12), card.Card(2, 9), card.Card(1, 10),] game = lab09.Blackjack(deck) cornell.assert_true(not game.dealerBust()) game.dealerHand = [card.Card(0, 1), card.Card(1, 10)] cornell.assert_true(not game.dealerBust()) game.dealerHand = [card.Card(0, 1), card.Card(1, 10), card.Card(0, 2)] cornell.assert_true(game.dealerBust()) game.dealerHand = [card.Card(0, 10), card.Card(1, 10), card.Card(0, 1)] cornell.assert_true(game.dealerBust()) game.dealerHand = [card.Card(0, 11), card.Card(1, 10), card.Card(0, 1)] cornell.assert_true(game.dealerBust()) game.playerHand = [card.Card(0, 11), card.Card(1, 10), card.Card(0, 1), card.Card(1,1)] cornell.assert_true(game.playerBust()) print('The dealerBust tests passed') # Script code if __name__ == '__main__': test_init() test_score() test_dealerScore() test_playerScore() test_dealerBust() test_playerBust() test_str() print('All tests for lab 9 passed')