Example #1
0
        public void ShouldSplitSevenPairWhenDealerHasTwoToSix()
        {
            var gamblerHand = new BlackJackHand(
                new Card(Rank.Seven, Suit.Diamonds),
                new Card(Rank.Seven, Suit.Hearts));

            Assert.AreEqual(BlackJackAction.Hit,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Ace, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Split,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Two, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Split,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Three, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Split,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Four, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Split,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Five, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Split,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Six, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Hit,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Seven, Suit.Spades), gamblerHand));
        }
Example #2
0
        public void ShouldDoubleDownWhenDealerHasLessThan7AndGamblerHas10Or11()
        {
            var gamblerHand10 = new BlackJackHand(
                new Card(Rank.Eight, Suit.Diamonds),
                new Card(Rank.Two, Suit.Hearts));

            var gamblerHand11 = new BlackJackHand(
                new Card(Rank.Eight, Suit.Diamonds),
                new Card(Rank.Three, Suit.Hearts));

            Assert.AreEqual(BlackJackAction.DoubleDown,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Six, Suit.Spades), gamblerHand10));

            Assert.AreEqual(BlackJackAction.DoubleDown,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Six, Suit.Spades), gamblerHand11));

            Assert.AreEqual(BlackJackAction.Hit,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Seven, Suit.Spades), gamblerHand10));

            Assert.AreEqual(BlackJackAction.Hit,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Seven, Suit.Spades), gamblerHand11));
        }
Example #3
0
        public void ShouldHoldWhenGamblerHasBlackJack()
        {
            var gamblerHand = new BlackJackHand(
                new Card(Rank.Ace, Suit.Diamonds),
                new Card(Rank.Jack, Suit.Hearts));

            Assert.AreEqual(BlackJackAction.Hold,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Ace, Suit.Spades), gamblerHand));
        }
Example #4
0
        public void ShouldAlwaysSplitEightPair()
        {
            var gamblerHand = new BlackJackHand(
                new Card(Rank.Eight, Suit.Diamonds),
                new Card(Rank.Eight, Suit.Hearts));

            Assert.AreEqual(BlackJackAction.Split,
                            BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Seven, Suit.Spades), gamblerHand));
        }
Example #5
0
        public void ShouldHitWhenGamblerHasLessThan17AndDealerHasMoreThan6()
        {
            var gamblerHand = new BlackJackHand(
                new Card(Rank.Ten, Suit.Diamonds),
                new Card(Rank.Six, Suit.Hearts));

            Assert.AreEqual(BlackJackAction.Hit, BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Seven, Suit.Spades), gamblerHand));

            Assert.AreEqual(BlackJackAction.Hold, BlackJackAdvisor.RecommendAction
                                (new Card(Rank.Six, Suit.Spades), gamblerHand));
        }