public void RunManyMaxAverageDecisions()
        {
            var decision = new MaxAverageDecision();
            var deck = new Deck();

            foreach (var index in Enumerable.Range(0, 1000))
            {
                deck.Shuffle();
                decision.DetermineCardsToThrow(deck.Take(6));
            }
        }
        public void MaxAverageDecisionTest_FiveCards()
        {
            var hand = new List<Card>
                           {
                               new Card(Rank.Five, Suit.Clubs),
                               new Card(Rank.Queen, Suit.Clubs),
                               new Card(Rank.Jack, Suit.Clubs),
                               new Card(Rank.King, Suit.Clubs),
                               new Card(Rank.Nine, Suit.Hearts),
                           };
            var decisionStrategy = new MaxAverageDecision();

            var cardsToThrow = decisionStrategy.DetermineCardsToThrow(hand).ToList();

            Assert.AreEqual(1, cardsToThrow.Count);
            Assert.IsTrue(cardsToThrow.Contains(new Card(Rank.Nine, Suit.Hearts)));
        }
        public void MaxAverageDecisionTest_Test_Six_With_Prior_Failure()
        {
            var hand = new List<Card>
                           {
                               new Card(Rank.Six, Suit.Spades),
                               new Card(Rank.King, Suit.Clubs),
                               new Card(Rank.King, Suit.Spades),
                               new Card(Rank.Seven, Suit.Spades),
                               new Card(Rank.Eight, Suit.Clubs),
                               new Card(Rank.Eight, Suit.Spades),
                           };
            var decisionStrategy = new MaxAverageDecision();

            var cardsToThrow = decisionStrategy.DetermineCardsToThrow(hand).ToList();

            Assert.AreEqual(2, cardsToThrow.Count);
            Assert.IsTrue(cardsToThrow.Contains(new Card(Rank.King, Suit.Clubs)));
            Assert.IsTrue(cardsToThrow.Contains(new Card(Rank.King, Suit.Spades)));
        }