コード例 #1
0
 IsFourOfAKindShouldReturnTrueOnValidHand()
 {
     foreach (var hand in validHands)
     {
         Assert.IsTrue(pokerHandsChecker.IsFourOfAKind(hand), hand.ToString());
     }
 }
コード例 #2
0
        public void PokerHandsShouldReturnFalseIfIsInvalidInput_FourOfAKind()
        {
            PokerHandsChecker pokerChecker = new PokerHandsChecker();

            pokerChecker.IsFourOfAKind(InvalidHandWithEqualCards);
            pokerChecker.IsFourOfAKind(InvalidHandWithSixCards);
            pokerChecker.IsFourOfAKind(InvalidHandWithFourCards);
        }
コード例 #3
0
        public void TestIsFourOfaKindInvalidHandShouldReturnFalse()
        {
            Card         firstCard  = new Card(CardFace.Ace, CardSuit.Clubs);
            Card         secondCard = new Card(CardFace.Ace, CardSuit.Hearts);
            Card         thirdCard  = new Card(CardFace.Queen, CardSuit.Clubs);
            Card         fourthCard = new Card(CardFace.Jack, CardSuit.Clubs);
            Card         fifthCard  = new Card(CardFace.Ace, CardSuit.Clubs);
            List <ICard> Cards      = new List <ICard>(new ICard[] { firstCard, secondCard, thirdCard, fourthCard, fifthCard });
            Hand         myHand     = new Hand(Cards);

            Assert.AreEqual(false, handTester.IsFourOfAKind(myHand));
        }
コード例 #4
0
        public void PokerHandsChecker_IsFourOfAKind_MustBeTrue()
        {
            IList <ICard> cards = new List <ICard>
            {
                new Card(CardFace.Ace, CardSuit.Spades),
                new Card(CardFace.Ace, CardSuit.Clubs),
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Ace, CardSuit.Diamonds),
                new Card(CardFace.Ten, CardSuit.Diamonds)
            };

            Hand hand = new Hand(cards);

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #5
0
        public void IsFourOfAKindShouldReturnFalseIfLessThanFourOfTheCardsHasSameFace()
        {
            // Arrange
            var firstCard  = new Card(CardFace.Ace, CardSuit.Clubs);
            var secondCard = new Card(CardFace.Jack, CardSuit.Hearts);
            var thirdCard  = new Card(CardFace.King, CardSuit.Clubs);
            var fourthCard = new Card(CardFace.Ace, CardSuit.Clubs);
            var fifthCard  = new Card(CardFace.Ace, CardSuit.Clubs);

            var cards = new List <ICard>()
            {
                firstCard,
                secondCard,
                thirdCard,
                fourthCard,
                fifthCard
            };

            var hand        = new Hand(cards);
            var handChecker = new PokerHandsChecker();

            // Act
            var result = handChecker.IsFourOfAKind(hand);

            // Assert
            Assert.IsFalse(result);
        }
コード例 #6
0
        public void IsFourOfAKindShouldThrowAnExceptionWhenAHandWithNullCardsIsPassed()
        {
            List<ICard> cards = null;
            var checker = new PokerHandsChecker();

            checker.IsFourOfAKind(new Hand(cards));
        }
コード例 #7
0
        public void IsFourOfAKind_ShouldReturnTrue_IfHandIsFourOfAKind()
        {
            IList <ICard> cards = new List <ICard>
            {
                new Card(CardFace.Ace, CardSuit.Clubs),
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Queen, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Spades),
                new Card(CardFace.Ace, CardSuit.Diamonds)
            };
            var hand = new Hand(cards);

            var result = pokerHandsChecker.IsFourOfAKind(hand);

            Assert.IsTrue(result);
        }
コード例 #8
0
        public void IsFourOfAKind_ShouldReturnTrue_IfHandIsValidAndContainsFourCardsOfTheSameType()
        {
            var handChecker = new PokerHandsChecker();
            var hand        = new Hand(new List <ICard>
            {
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Ace, CardSuit.Diamonds),
                new Card(CardFace.Nine, CardSuit.Hearts),
                new Card(CardFace.Ace, CardSuit.Spades),
                new Card(CardFace.Ace, CardSuit.Clubs)
            });

            bool isTrue = handChecker.IsFourOfAKind(hand);

            Assert.IsTrue(handChecker.IsFourOfAKind(hand));
        }
コード例 #9
0
        public void IsFourOfAKindShouldReturnFalseWhenTwoPairsArePassed()
        {
            var cards = new List<ICard>() { new Card(CardFace.King, CardSuit.Spades), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.Two, CardSuit.Hearts), new Card(CardFace.Ten, CardSuit.Diamonds) };
            var hand = new Hand(cards);
            var checker = new PokerHandsChecker();

            Assert.IsFalse(checker.IsFourOfAKind(hand));
        }
コード例 #10
0
        public void IsFourOfAKindShouldThrowAnExceptionWhenAnInvalidHandWithMoreThan5CardsIsPassed()
        {
            var cards = new List<ICard>() { new Card(CardFace.King, CardSuit.Spades), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.Three, CardSuit.Spades), new Card(CardFace.Four, CardSuit.Clubs), new Card(CardFace.Five, CardSuit.Clubs) };
            var hand = new Hand(cards);
            var checker = new PokerHandsChecker();

            checker.IsFourOfAKind(hand);
        }
コード例 #11
0
        public void IsFourOfAKindShouldReturnTrueWhenAValidHandWithFourOfAKindCardsIsPassed()
        {
            var cards = new List<ICard>() { new Card(CardFace.King, CardSuit.Spades), new Card(CardFace.King, CardSuit.Clubs), new Card(CardFace.Two, CardSuit.Clubs), new Card(CardFace.King, CardSuit.Hearts), new Card(CardFace.King, CardSuit.Diamonds) };
            var hand = new Hand(cards);
            var checker = new PokerHandsChecker();

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #12
0
        public void PokerHandsChecker_IsFourOfAKindWithValidFourOfAKindHand_ShoudReturnTrue()
        {
            PokerHandsChecker checker = new PokerHandsChecker();
            var actual   = checker.IsFourOfAKind(ValidFourOfAKind);
            var expected = true;

            Assert.AreEqual(expected, actual);
        }
コード例 #13
0
        public void IsFourOfAKindShouldReturnFalseWhenOnePairIsPassed()
        {
            var checker = new PokerHandsChecker();
            var cards = new List<ICard> { new Card(CardFace.Four, CardSuit.Spades), new Card(CardFace.Four, CardSuit.Diamonds), new Card(CardFace.Six, CardSuit.Hearts), new Card(CardFace.Seven, CardSuit.Hearts), new Card(CardFace.Four, CardSuit.Hearts) };
            var hand = new Hand(cards);

            Assert.IsFalse(checker.IsFourOfAKind(hand));
        }
コード例 #14
0
        public void PokerHandsChecker_IsFourOfAKindWithInvalidFourOfAKindHand_ShoudReturnFalse()
        {
            PokerHandsChecker checker = new PokerHandsChecker();
            var actual   = checker.IsFourOfAKind(ValidFlush);
            var expected = false;

            Assert.AreEqual(expected, actual);
        }
コード例 #15
0
        public void IsFourOfAKindShouldThrowNullReferenceException()
        {
            List <ICard> cards             = null;
            var          hand              = new Hand(cards);
            var          pokerHandsChecker = new PokerHandsChecker();

            pokerHandsChecker.IsFourOfAKind(hand);
        }
コード例 #16
0
        public void TestIsFourOfAKindHandWithInvalidFourOfAKind()
        {
            PokerHandsChecker checker = new PokerHandsChecker();

            var  cards         = GenerateCorectCards();
            var  hand          = new Hand(cards);
            bool isFourOfAKind = checker.IsFourOfAKind(hand);

            Assert.IsFalse(isFourOfAKind, "Hand is invalid flush and result mast be false.");
        }
コード例 #17
0
        public void TestISFourOfAKindEmptyHand()
        {
            IList <ICard>     cards   = new List <ICard>();
            Hand              hand    = new Hand(cards);
            PokerHandsChecker checker = new PokerHandsChecker();

            bool expected = false;
            bool actual   = checker.IsFourOfAKind(hand);

            Assert.AreEqual(expected, actual);
        }
コード例 #18
0
        public bool IsFourOfAKind_HandHasFourCardsOfTheSameFaceValue_ShouldReturnTrue(IHand hand)
        {
            // Arrange
            var pokerHandChecker = new PokerHandsChecker();

            // Act
            var actualResult = pokerHandChecker.IsFourOfAKind(hand);

            //Assert
            return(actualResult);
        }
コード例 #19
0
        public void IsFourOfAKind_HandHasThreeCardsOfTheSameFaceValue_ShouldReturnFalse()
        {
            // Arrange
            var hand             = new HandTypePresetsFakeHand(HandType.IsThreeOfAKind);
            var pokerHandChecker = new PokerHandsChecker();

            // Act
            var actualResult = pokerHandChecker.IsFourOfAKind(hand);

            //Assert
            Assert.IsFalse(actualResult);
        }
コード例 #20
0
        public void TestFourOfAKind()
        {
            List<ICard> cards = new List<ICard>();
            cards.Add(new Card(CardFace.King, CardSuit.Diamonds));
            cards.Add(new Card(CardFace.King, CardSuit.Spades));
            cards.Add(new Card(CardFace.King, CardSuit.Hearts));
            cards.Add(new Card(CardFace.King, CardSuit.Clubs));
            cards.Add(new Card(CardFace.Ace, CardSuit.Clubs));
            Hand hand = new Hand(cards);
            PokerHandsChecker checker = new PokerHandsChecker();

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #21
0
        public void IsFourOfAKindTrueTest1()
        {
            Card card1 = new Card(CardFace.Ace, CardSuit.Clubs);
            Card card2 = new Card(CardFace.Ace, CardSuit.Spades);
            Card card3 = new Card(CardFace.Ace, CardSuit.Diamonds);
            Card card4 = new Card(CardFace.Ace, CardSuit.Hearts);
            Card card5 = new Card(CardFace.Queen, CardSuit.Hearts);

            Hand hand = new Hand(card1, card2, card3, card4, card5);

            PokerHandsChecker checker = new PokerHandsChecker();
            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #22
0
        public void TestHighCard()
        {
            List<ICard> cards = new List<ICard>();
            cards.Add(new Card(CardFace.Five, CardSuit.Diamonds));
            cards.Add(new Card(CardFace.Eight, CardSuit.Spades));
            cards.Add(new Card(CardFace.Three, CardSuit.Diamonds));
            cards.Add(new Card(CardFace.Jack, CardSuit.Clubs));
            cards.Add(new Card(CardFace.Queen, CardSuit.Spades));
            Hand hand = new Hand(cards);
            PokerHandsChecker checker = new PokerHandsChecker();

            Assert.IsFalse(checker.IsFourOfAKind(hand));
        }
コード例 #23
0
        public void FourThrees()
        {
            PokerHandsChecker checker = new PokerHandsChecker();
            Hand hand = new Hand(new List<ICard>() {
                new Card(CardFace.Three, CardSuit.Clubs),
                new Card(CardFace.Three, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Spades),
            });

            Assert.AreEqual(true, checker.IsFourOfAKind(hand));
        }
コード例 #24
0
        public void InvalidFourOfAKind()
        {
            PokerHandsChecker checker = new PokerHandsChecker();
            Hand hand = new Hand(new List<ICard>() {
                new Card(CardFace.Ten, CardSuit.Spades),
                new Card(CardFace.Five, CardSuit.Clubs),
                new Card(CardFace.Five, CardSuit.Hearts),
                new Card(CardFace.Five, CardSuit.Spades),
                new Card(CardFace.King, CardSuit.Diamonds),
            });

            Assert.AreEqual(false, checker.IsFourOfAKind(hand));
        }
コード例 #25
0
 public void FourTensTest()
 {
     PokerHandsChecker checker = new PokerHandsChecker();
     List<ICard> cards = new List<ICard>()
     {
         new Card(CardFace.Ten, CardSuit.Spades),
         new Card(CardFace.Ten, CardSuit.Diamonds),
         new Card(CardFace.Ten, CardSuit.Hearts),
         new Card(CardFace.Eight, CardSuit.Spades),
         new Card(CardFace.Ten, CardSuit.Clubs),
     };
     Hand hand = new Hand(cards);
     Assert.IsTrue(checker.IsFourOfAKind(hand));
 }
コード例 #26
0
        public void IsFourOfAKindIsValidOnlyIfTheHandIsValid()
        {
            List <ICard> cards = new List <ICard>();

            for (int i = 0; i < 3; i++)
            {
                cards.Add(new Card((CardFace)i + 1, CardSuit.Diamonds));
            }

            Hand someHand             = new Hand(cards);
            PokerHandsChecker checker = new PokerHandsChecker();

            Assert.AreEqual(false, checker.IsFourOfAKind(someHand));
        }
コード例 #27
0
        public void TestHandChecker_PassValidFourOfKind_ShouldReturnTrue()
        {
            IList <ICard> cards = new List <ICard>
            {
                new Card(CardFace.Five, CardSuit.Diamonds),
                new Card(CardFace.Five, CardSuit.Clubs),
                new Card(CardFace.Five, CardSuit.Hearts),
                new Card(CardFace.Four, CardSuit.Spades),
                new Card(CardFace.Five, CardSuit.Spades)
            };
            var hand = new Hand(cards);

            Assert.IsTrue(pokerChecker.IsFourOfAKind(hand));
        }
コード例 #28
0
        public void TestForValidFourOfAKind()
        {
            Hand hand = new Hand(new List <ICard>());
            PokerHandsChecker checker = new PokerHandsChecker();

            hand.Cards.Add(new Card(CardFace.Jack, CardSuit.Diamonds));
            hand.Cards.Add(new Card(CardFace.Jack, CardSuit.Clubs));
            hand.Cards.Add(new Card(CardFace.Jack, CardSuit.Spades));
            hand.Cards.Add(new Card(CardFace.Jack, CardSuit.Hearts));
            hand.Cards.Add(new Card(CardFace.Two, CardSuit.Diamonds));

            Assert.AreEqual(true, checker.IsValidHand(hand), "The test hand is valid so the checker does not work properly.");
            Assert.AreEqual(true, checker.IsFourOfAKind(hand), "The test hand is valid four of a kind so the checker does not work properly.");
        }
コード例 #29
0
 public void ThreeQueensTwoKindsTest()
 {
     PokerHandsChecker checker = new PokerHandsChecker();
     List<ICard> cards = new List<ICard>()
     {
         new Card(CardFace.King, CardSuit.Spades),
         new Card(CardFace.Queen, CardSuit.Spades),
         new Card(CardFace.Queen, CardSuit.Diamonds),
         new Card(CardFace.Queen, CardSuit.Hearts),
         new Card(CardFace.King, CardSuit.Clubs),
     };
     Hand hand = new Hand(cards);
     Assert.IsFalse(checker.IsFourOfAKind(hand));
 }
コード例 #30
0
        public void FourThrees()
        {
            PokerHandsChecker checker = new PokerHandsChecker();
            Hand hand = new Hand(new List <ICard>()
            {
                new Card(CardFace.Three, CardSuit.Clubs),
                new Card(CardFace.Three, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Spades),
            });

            Assert.AreEqual(true, checker.IsFourOfAKind(hand));
        }
コード例 #31
0
        public void InvalidHandWithMoreCardsForFourOfAKindTest()
        {
            var kingOfDiamonds  = new Card(CardFace.King, CardSuit.Diamonds);
            var queenOfDiamonds = new Card(CardFace.Queen, CardSuit.Diamonds);
            var jackOfDiamonds  = new Card(CardFace.Jack, CardSuit.Diamonds);
            var fourOfHearts    = new Card(CardFace.Four, CardSuit.Hearts);
            var twoOfDiamongs   = new Card(CardFace.Two, CardSuit.Diamonds);
            var twoOfSpades     = new Card(CardFace.Two, CardSuit.Spades);

            var cards = new List <ICard>()
            {
                kingOfDiamonds,
                queenOfDiamonds,
                jackOfDiamonds,
                fourOfHearts,
                twoOfDiamongs,
                twoOfSpades
            };

            var hand = new Hand(cards);

            handsChecker.IsFourOfAKind(hand);
        }
コード例 #32
0
        public void IsFourOfAKindShouldReturnTrueIfFourOfAKind()
        {
            var checker = new PokerHandsChecker();
            var hand = new Hand(new List<ICard>
                {
                    new Card(CardFace.Jack,CardSuit.Hearts),
                    new Card(CardFace.Queen,CardSuit.Hearts),
                    new Card(CardFace.Queen,CardSuit.Clubs),
                    new Card(CardFace.Queen,CardSuit.Spades),
                    new Card(CardFace.Queen,CardSuit.Diamonds)
                });

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #33
0
        public void InvalidFourOfAKind()
        {
            PokerHandsChecker checker = new PokerHandsChecker();
            Hand hand = new Hand(new List <ICard>()
            {
                new Card(CardFace.Ten, CardSuit.Spades),
                new Card(CardFace.Five, CardSuit.Clubs),
                new Card(CardFace.Five, CardSuit.Hearts),
                new Card(CardFace.Five, CardSuit.Spades),
                new Card(CardFace.King, CardSuit.Diamonds),
            });

            Assert.AreEqual(false, checker.IsFourOfAKind(hand));
        }
コード例 #34
0
        public void IsFourOfAKindShouldReturnFalseWhenWorksWithMoreOrLessThanFiveCards()
        {
            var cards = new List <ICard>
            {
                new Card(CardFace.Eight, CardSuit.Diamonds),
                new Card(CardFace.Eight, CardSuit.Clubs),
                new Card(CardFace.Eight, CardSuit.Spades),
                new Card(CardFace.Eight, CardSuit.Hearts),
            };
            var hand = new Hand(cards);
            var pokerHandsChecker = new PokerHandsChecker();

            Assert.IsFalse(pokerHandsChecker.IsFourOfAKind(hand), "IsFourOfAkind don't return correct result");
        }
コード例 #35
0
        public void IsFourOfAKind_TestFourOfAKind_ShouldBeCorrect()
        {
            var checker = new PokerHandsChecker();
            var cards = new List<ICard>
            {
                new Card(CardFace.Four, CardSuit.Spades),
                new Card(CardFace.Five, CardSuit.Diamonds),
                new Card(CardFace.Four, CardSuit.Diamonds),
                new Card(CardFace.Four, CardSuit.Clubs),
                new Card(CardFace.Four, CardSuit.Hearts)
            };
            var hand = new Hand(cards);

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #36
0
        public void IsFourOfAKind_FourOfAKindWhithValidHand_ShouldReturnFalse()
        {
            Hand hand = new Hand(new List <ICard>()
            {
                new Card(CardFace.Queen, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Clubs),
                new Card(CardFace.King, CardSuit.Diamonds),
                new Card(CardFace.Two, CardSuit.Diamonds),
                new Card(CardFace.Jack, CardSuit.Diamonds),
            });

            IPokerHandsChecker checker = new PokerHandsChecker();

            Assert.AreEqual(false, checker.IsFourOfAKind(hand));
        }
コード例 #37
0
        public void IsFourOfAKind_WhithInValidHand_ShouldThrow()
        {
            Hand hand = new Hand(new List <ICard>()
            {
                new Card(CardFace.Queen, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Diamonds),
                new Card(CardFace.King, CardSuit.Diamonds),
                new Card(CardFace.Two, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Diamonds),
            });

            IPokerHandsChecker checker = new PokerHandsChecker();

            Assert.Throws(typeof(ArgumentException), new TestDelegate(() => { checker.IsFourOfAKind(hand); }), "IsFlush() with invalid hand should throw!");
        }
コード例 #38
0
        public void IsFourOfAKindShouldReturnTrue()
        {
            var checker = new PokerHandsChecker();
            var cards   = new List <ICard>
            {
                new Card(CardFace.Four, CardSuit.Spades),
                new Card(CardFace.Five, CardSuit.Diamonds),
                new Card(CardFace.Four, CardSuit.Diamonds),
                new Card(CardFace.Four, CardSuit.Clubs),
                new Card(CardFace.Four, CardSuit.Hearts)
            };
            var hand = new Hand(cards);

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
        public void IsFourOfAKindShouldReturnFalseWhenNotFourCardsWithTheSameFace_ThreeOfAKind()
        {
            var checker = new PokerHandsChecker();
            var cards = new List<ICard>
            {
                new Card(CardFace.Four, CardSuit.Spades),
                new Card(CardFace.Four, CardSuit.Diamonds),
                new Card(CardFace.Four, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Clubs),
                new Card(CardFace.Six, CardSuit.Hearts)
            };
            var hand = new Hand(cards);

            Assert.IsFalse(checker.IsFourOfAKind(hand));
        }
コード例 #40
0
        public void TestIfIsFourOfAKindWillReturnFalseWithoutFourOfAKindCards()
        {
            var cards = new List <ICard>
            {
                new Card(CardFace.Eight, CardSuit.Diamonds),
                new Card(CardFace.Eight, CardSuit.Clubs),
                new Card(CardFace.Ace, CardSuit.Spades),
                new Card(CardFace.Four, CardSuit.Hearts),
                new Card(CardFace.King, CardSuit.Clubs),
            };
            var hand = new Hand(cards);
            var pokerHandsChecker = new PokerHandsChecker();

            Assert.IsFalse(pokerHandsChecker.IsFourOfAKind(hand), "IsFourOfAkind don't return correct result");
        }
コード例 #41
0
        public void TestIfIsFourOfAKindReturnsCorrectResult()
        {
            var cards = new List <ICard>
            {
                new Card(CardFace.Eight, CardSuit.Diamonds),
                new Card(CardFace.Eight, CardSuit.Clubs),
                new Card(CardFace.Eight, CardSuit.Spades),
                new Card(CardFace.Eight, CardSuit.Hearts),
                new Card(CardFace.Seven, CardSuit.Spades),
            };
            var hand = new Hand(cards);
            var pokerHandsChecker = new PokerHandsChecker();

            Assert.IsTrue(pokerHandsChecker.IsFourOfAKind(hand), "IsFourOfAkind don't return correct result");
        }
コード例 #42
0
        public void TestIsFourOfAKind()
        {
            Hand hand = new Hand(new List<ICard>{
                new Card(CardFace.Jack, CardSuit.Spades),
                new Card(CardFace.Jack, CardSuit.Hearts),
                new Card(CardFace.Jack, CardSuit.Clubs),
                new Card(CardFace.Jack, CardSuit.Diamonds),
                new Card(CardFace.Ten, CardSuit.Spades)});

            bool expected = true;
            PokerHandsChecker checker = new PokerHandsChecker();
            bool actual = checker.IsFourOfAKind(hand);

            Assert.AreEqual(expected, actual);
        }
コード例 #43
0
ファイル: TestIsFourOfAKind.cs プロジェクト: quela/myprojects
 public void TestValidFourOfKind()
 {
     IList<ICard> hand = new List<ICard>
     {
         new Card(CardFace.Jack, CardSuit.Spades),
         new Card(CardFace.Jack, CardSuit.Clubs),
         new Card(CardFace.Jack, CardSuit.Diamonds),
         new Card(CardFace.Jack, CardSuit.Hearts),
         new Card(CardFace.Seven, CardSuit.Spades)
     };
     Hand currentHand = new Hand(hand);
     PokerHandsChecker checker = new PokerHandsChecker();
     bool isValidFourOfAKind = checker.IsFourOfAKind(currentHand);
     Assert.AreEqual(true, isValidFourOfAKind);
 }
コード例 #44
0
        public void TestIsFourOfAKindLessCards()
        {
            Card              cardOne           = new Card(CardFace.Two, CardSuit.Diamonds);
            Card              cardTwo           = new Card(CardFace.Two, CardSuit.Hearts);
            Card              cardThree         = new Card(CardFace.Two, CardSuit.Spades);
            IList <ICard>     cards             = new List <ICard>();
            PokerHandsChecker pokerHandsChecker = new PokerHandsChecker();

            cards.Add(cardOne);
            cards.Add(cardTwo);
            cards.Add(cardThree);
            Hand hand = new Hand(cards);

            Assert.AreEqual(false, pokerHandsChecker.IsFourOfAKind(hand), "IsFourOfAKind() is not working correctly.");
        }
コード例 #45
0
        public void IsFourOfAKindSevensTest()
        {
            IHand hand = new Hand(new List <ICard>()
            {
                new Card(CardFace.Seven, CardSuit.Spades),
                new Card(CardFace.Ace, CardSuit.Diamonds),
                new Card(CardFace.Seven, CardSuit.Clubs),
                new Card(CardFace.Seven, CardSuit.Hearts),
                new Card(CardFace.Seven, CardSuit.Diamonds)
            });
            PokerHandsChecker checker = new PokerHandsChecker();
            bool isFourOfAKind        = checker.IsFourOfAKind(hand);

            Assert.AreEqual(true, isFourOfAKind);
        }
コード例 #46
0
        public void IsFourOfAKind_ShouldReturnFalse_IfThereAreNot4SameCardFace()
        {
            IList <ICard> cards = new List <ICard>()
            {
                new Card(CardFace.King, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Spades),
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Ace, CardSuit.Clubs),
                new Card(CardFace.Jack, CardSuit.Clubs)
            };
            IHand hand    = new Hand(cards);
            var   checker = new PokerHandsChecker();

            Assert.IsFalse(checker.IsFourOfAKind(hand));
        }
コード例 #47
0
        public void IsFourOfAKindIsNotValidIfThereAreNotFourCardsOfOneFace()
        {
            Random generator = new Random();

            for (int i = 2; i <= 14; i++)
            {
                List <ICard> cards = new List <ICard>();
                cards.Add(new Card((CardFace)i, (CardSuit)generator.Next(1, 4)));
                cards.Add(new Card((CardFace)i, (CardSuit)generator.Next(1, 4)));
                cards.Add(new Card((CardFace)i, (CardSuit)generator.Next(1, 4)));
                cards.Add(new Card(CardFace.Three, (CardSuit)generator.Next(1, 4)));
                cards.Add(new Card(CardFace.Three, (CardSuit)i));
                Hand someHand             = new Hand(cards);
                PokerHandsChecker checker = new PokerHandsChecker();
                if (someHand.Cards[4].Face != CardFace.Three)
                {
                    Assert.AreEqual(false, checker.IsFourOfAKind(someHand));
                }
                else
                {
                    Assert.AreEqual(true, checker.IsFourOfAKind(someHand));
                }
            }
        }
コード例 #48
0
        public void FourOfaKind_TwoSevenCards()
        {
            var hand = new Hand(new List<ICard>()
            {
                new Card(CardFace.Seven,CardSuit.Diamonds),
                new Card(CardFace.Two,CardSuit.Spades),
                new Card(CardFace.Seven,CardSuit.Hearts),
                new Card(CardFace.Eight,CardSuit.Clubs),
                new Card(CardFace.Five,CardSuit.Hearts)
            });

            var pokerChecker = new PokerHandsChecker();

            bool result = pokerChecker.IsFourOfAKind(hand);

            Assert.IsFalse(result);
        }
コード例 #49
0
        public void FourOfaKind_DifferentCards()
        {
            var hand = new Hand(new List<ICard>()
            {
                new Card(CardFace.Seven,CardSuit.Diamonds),
                new Card(CardFace.King,CardSuit.Diamonds),
                new Card(CardFace.Queen,CardSuit.Diamonds),
                new Card(CardFace.Two,CardSuit.Diamonds),
                new Card(CardFace.Three,CardSuit.Clubs),
            });

            var pokerChecker = new PokerHandsChecker();

            bool result = pokerChecker.IsFourOfAKind(hand);

            Assert.IsFalse(result);
        }
コード例 #50
0
        public void FourOfAKindMixedTest()
        {
            List<Card> cards = new List<Card>()
            {
                new Card(CardFace.Nine, CardSuit.Hearts),
                new Card(CardFace.Jack, CardSuit.Spades),
                new Card(CardFace.Jack, CardSuit.Diamonds),
                new Card(CardFace.Jack, CardSuit.Clubs),
                new Card(CardFace.Jack, CardSuit.Hearts)
            };

            Hand hand = new Hand(cards.ToArray());
            PokerHandsChecker checker = new PokerHandsChecker();
            var excpected = true;
            var actual = checker.IsFourOfAKind(hand);
            Assert.AreEqual(excpected, actual);
        }
コード例 #51
0
 public void IsFourOfAKindWithFourSameUnsorted()
 {
     var hand = new Hand(new List<ICard>()
     {
         new Card(CardFace.Ace,CardSuit.Clubs),
         new Card(CardFace.Ace,CardSuit.Diamonds),
         new Card(CardFace.King,CardSuit.Clubs),
         new Card(CardFace.Ace,CardSuit.Hearts),
         new Card(CardFace.Ace,CardSuit.Spades)
     });
     var handChecker = new PokerHandsChecker();
     var isValid = handChecker.IsFourOfAKind(hand);
     Assert.IsTrue(isValid);
 }
        public void IsFourOfAKindShouldThrowException_FiveOfAKind()
        {
            var checker = new PokerHandsChecker();
            var cards = new List<ICard>
            {
               new Card(CardFace.Three, CardSuit.Spades),
                new Card(CardFace.Three, CardSuit.Diamonds),
                new Card(CardFace.Three, CardSuit.Clubs),
                new Card(CardFace.Three, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Spades)
            };
            var hand = new Hand(cards);

            checker.IsFourOfAKind(hand);
        }
コード例 #53
0
        public void TestHandFourOfKindLastDifferent()
        {
            IPokerHandsChecker handsChecker = new PokerHandsChecker();

            IHand hand = new Hand(
                new Card(CardFace.Ace, CardSuit.Hearts),
                new Card(CardFace.Ace, CardSuit.Clubs),
                new Card(CardFace.Ace, CardSuit.Diamonds),
                new Card(CardFace.Ace, CardSuit.Spades),
                new Card(CardFace.Eight, CardSuit.Spades));

            Assert.IsTrue(handsChecker.IsFourOfAKind(hand));
        }
コード例 #54
0
        public void PokerHandsIsFourOfAKindReturnFalseWhenHaveNotFourOfKind()
        {
            IHand hand = new Hand(new List<ICard>() { 
                new Card(CardFace.Ace, CardSuit.Diamonds),
                new Card(CardFace.Jack, CardSuit.Diamonds),
                new Card(CardFace.Two, CardSuit.Hearts),
                new Card(CardFace.King, CardSuit.Diamonds),
                new Card(CardFace.Seven, CardSuit.Diamonds)
            });

            var checker = new PokerHandsChecker();
            Assert.IsTrue(!checker.IsFourOfAKind(hand));
        }
コード例 #55
0
        public void PokerHandsIsFourOfAKindReturnTrueWhenHaveFourOfKind()
        {
            IHand hand = new Hand(new List<ICard>() { 
                new Card(CardFace.King, CardSuit.Diamonds),
                new Card(CardFace.King, CardSuit.Clubs),
                new Card(CardFace.King, CardSuit.Hearts),
                new Card(CardFace.King, CardSuit.Spades),
                new Card(CardFace.Seven, CardSuit.Diamonds)
            });

            var checker = new PokerHandsChecker();
            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }
コード例 #56
0
 public void IsFourOfAKindWithDifferentCards()
 {
     var hand = new Hand(new List<ICard>()
     {
         new Card(CardFace.Queen,CardSuit.Clubs),
         new Card(CardFace.Ace,CardSuit.Diamonds),
         new Card(CardFace.Ten,CardSuit.Hearts),
         new Card(CardFace.King,CardSuit.Clubs),
         new Card(CardFace.Two,CardSuit.Clubs) 
     });
     var handChecker = new PokerHandsChecker();
     var isValid = handChecker.IsFourOfAKind(hand);
     Assert.IsFalse(isValid);
 }
コード例 #57
0
        public void IsFourOfAKindIsValidOnlyIfTheHandIsValid()
        {
            List<ICard> cards = new List<ICard>();
            for (int i = 0; i < 3; i++)
            {
                cards.Add(new Card((CardFace)i + 1, CardSuit.Diamonds));
            }

            Hand someHand = new Hand(cards);
            PokerHandsChecker checker = new PokerHandsChecker();
            Assert.AreEqual(false, checker.IsFourOfAKind(someHand));
        }
コード例 #58
0
 public void IsFourOfAKindIsNotValidIfThereAreNotFourCardsOfOneFace()
 {
     Random generator = new Random();
     for (int i = 2; i <= 14; i++)
     {
         List<ICard> cards = new List<ICard>();
         cards.Add(new Card((CardFace)i, (CardSuit)generator.Next(1, 4)));
         cards.Add(new Card((CardFace)i, (CardSuit)generator.Next(1, 4)));
         cards.Add(new Card((CardFace)i, (CardSuit)generator.Next(1, 4)));
         cards.Add(new Card(CardFace.Three, (CardSuit)generator.Next(1, 4)));
         cards.Add(new Card(CardFace.Three, (CardSuit)i));
         Hand someHand = new Hand(cards);
         PokerHandsChecker checker = new PokerHandsChecker();
         if (someHand.Cards[4].Face != CardFace.Three)
         {
             Assert.AreEqual(false, checker.IsFourOfAKind(someHand));
         }
         else
         {
             Assert.AreEqual(true, checker.IsFourOfAKind(someHand));
         }
     }
 }
コード例 #59
0
 public void IsFourOfAKindWithFourSameCardsWithSameSuit()
 {
     var hand = new Hand(new List<ICard>()
     {
         new Card(CardFace.Ace,CardSuit.Clubs),
         new Card(CardFace.Ace,CardSuit.Clubs),
         new Card(CardFace.Ace,CardSuit.Clubs),
         new Card(CardFace.Ace,CardSuit.Clubs),
          new Card(CardFace.King,CardSuit.Clubs)
     });
     var handChecker = new PokerHandsChecker();
     var isValid = handChecker.IsFourOfAKind(hand);
     Assert.IsFalse(isValid);
 }
        public void IsFourOfAKindShouldReturnTrueWhenGivenACorrectValue()
        {
            var checker = new PokerHandsChecker();
            var cards = new List<ICard>
            {
                new Card(CardFace.Three, CardSuit.Diamonds),
                new Card(CardFace.Five, CardSuit.Diamonds),
                new Card(CardFace.Three, CardSuit.Clubs),
                new Card(CardFace.Three, CardSuit.Hearts),
                new Card(CardFace.Three, CardSuit.Spades)
            };
            var hand = new Hand(cards);

            Assert.IsTrue(checker.IsFourOfAKind(hand));
        }