Ejemplo n.º 1
0
        public void Comparer_WhenComparing_FourOfAKind_To_FullHouse_FourOfAKind_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreateLowFourOfAKind();
            var pokerHand2 = PokerHandTestHelper.CreateHighFullHouse();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 2
0
        public void Comparer_WhenComparing_1stHigh_HighCard_ToLowerHighCard_Ensures_High_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHighHighCard();
            var pokerHand2 = PokerHandTestHelper.CreateLowHighCard();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 3
0
        public void Comparer_WhenComparing_MatchingHighCard_ToMatchHighCard_Ensures_A_Tie()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHighHighCard();
            var pokerHand2 = PokerHandTestHelper.CreateHighHighCard();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(0, result, "Expected Hand1 and Hand2 be equivalent");
        }
Ejemplo n.º 4
0
        public void Comparer_WhenComparing_SamePairHigh2ndCard_ToSamePairLow2ndCard_Ensures_High_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreatePairDifferentNonPairCardValue(CardValue.King, CardValue.Queen, CardValue.Ten);
            var pokerHand2 = PokerHandTestHelper.CreatePairDifferentNonPairCardValue(CardValue.King, CardValue.Jack, CardValue.Ten);

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 5
0
        public void Comparer_WhenComparing_SamePairLow3rdCard_ToSamePairHigh3rdCard_Ensures_Low_Loses()
        {
            var pokerHand1 = PokerHandTestHelper.CreatePairDifferentNonPairCardValue(CardValue.King, CardValue.Queen, CardValue.Nine);
            var pokerHand2 = PokerHandTestHelper.CreatePairDifferentNonPairCardValue(CardValue.King, CardValue.Queen, CardValue.Ten);

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(-1, result, "Expected Hand1 to lose to Hand2");
        }
Ejemplo n.º 6
0
        public void Comparer_WhenComparing_LowPair_ToLowPair_Ensures_A_Tie()
        {
            var pokerHand1 = PokerHandTestHelper.CreateLowPair();
            var pokerHand2 = PokerHandTestHelper.CreateLowPair();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(0, result, "Expected Hand1 and Hand2 be equivalent");
        }
Ejemplo n.º 7
0
        public void Comparer_WhenComparing_Flush_To_Straight_Flush_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreateLowFlush();
            var pokerHand2 = PokerHandTestHelper.CreateHighStraight();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 8
0
        public void MatchingStraightFlushes()
        {
            var pokerHand1 = PokerHandTestHelper.CreateAceLowStraightFlush();
            var pokerHand2 = PokerHandTestHelper.CreateAceLowStraightFlush();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(0, result, "Expected Hand1 and Hand2 be equivalent");
        }
Ejemplo n.º 9
0
        public void Comparer_WhenComparing_LowPair_ToHighPair_Ensures_Low_Loses()
        {
            var pokerHand1 = PokerHandTestHelper.CreateLowPair();
            var pokerHand2 = PokerHandTestHelper.CreateHighPair();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(-1, result, "Expected Hand1 to lose to Hand2");
        }
Ejemplo n.º 10
0
        public void Comparer_WhenComparing_TwoPairWithHighFifth_ToTwoPairWithLowFifth_EnsuresHigh_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreateSameTwoPairsDifferentFifthCard(CardValue.Ace);
            var pokerHand2 = PokerHandTestHelper.CreateSameTwoPairsDifferentFifthCard(CardValue.Eight);

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 11
0
        public void Comparer_WhenComparing_ThreeOfAKind_To_TwoPair_ThreeOfAKind_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreateLowThreeOfAKind();
            var pokerHand2 = PokerHandTestHelper.CreateHighTwoPairs();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 12
0
        public void Comparer_WhenComparingLowFourOfAKind_ToHighFourOfAKind_Ensures_Low_Loses()
        {
            var pokerHand1 = PokerHandTestHelper.CreateLowFourOfAKind();
            var pokerHand2 = PokerHandTestHelper.CreateHighFourOfAKind();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(-1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 13
0
        public void Comparer_WhenComparingHighFourOfAKind_ToLowFourOfAKind_Ensures_High_Wins()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHighFourOfAKind();
            var pokerHand2 = PokerHandTestHelper.CreateLowFourOfAKind();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand2 to lose to Hand1");
        }
Ejemplo n.º 14
0
        public void HighStraightFlushVsLowStraightFlush()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHighStraightFlush();
            var pokerHand2 = PokerHandTestHelper.CreateAceLowStraightFlush();

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand2 to lose to Hand1");
            result = _comparer.CompareHands(pokerHand2, pokerHand1);
            Assert.AreEqual(-1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 15
0
        public void Factory_WhenPassed_TwoPair_Spec_Example_2_Returns_TwoPair()
        {
            var pokerHand = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Jack),
                new Card(CardSuit.Spade, CardValue.Jack),
                new Card(CardSuit.Club, CardValue.Six),
                new Card(CardSuit.Heart, CardValue.Queen),
                new Card(CardSuit.Club, CardValue.Six)
                );

            Assert.IsTrue(SpecifiedPokerHand(pokerHand) is TwoPair);
        }
Ejemplo n.º 16
0
        public void Factory_WhenPassed_ThreeOfAKind_Spec_Example_2_Returns_ThreeOfAKind()
        {
            var pokerHand = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Seven),
                new Card(CardSuit.Diamond, CardValue.Seven),
                new Card(CardSuit.Club, CardValue.Seven),
                new Card(CardSuit.Heart, CardValue.Four),
                new Card(CardSuit.Club, CardValue.Three)
                );

            Assert.IsTrue(SpecifiedPokerHand(pokerHand) is ThreeOfAKind);
        }
Ejemplo n.º 17
0
        public void Factory_WhenPassed_ThreeOfAKind_Spec_Example_1_Returns_ThreeOfAKind()
        {
            var pokerHand = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Queen),
                new Card(CardSuit.Spade, CardValue.Nine),
                new Card(CardSuit.Club, CardValue.Queen),
                new Card(CardSuit.Heart, CardValue.Queen),
                new Card(CardSuit.Club, CardValue.Two)
                );

            Assert.IsTrue(SpecifiedPokerHand(pokerHand) is ThreeOfAKind);
        }
Ejemplo n.º 18
0
        public void Factory_WhenPassed_StraightFlush_Spec_Example_4_Returns_StraightFlush()
        {
            var pokerHand = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Spade, CardValue.Ten),
                new Card(CardSuit.Spade, CardValue.Jack),
                new Card(CardSuit.Spade, CardValue.Queen),
                new Card(CardSuit.Spade, CardValue.King),
                new Card(CardSuit.Spade, CardValue.Ace)
                );

            // could use this assertion, but i prefer the "IsTrue" which I feel is more readable.
            Assert.IsInstanceOfType(SpecifiedPokerHand(pokerHand), typeof(StraightFlush));
        }
Ejemplo n.º 19
0
        public void Factory_WhenPassed_StraightFlush_Spec_Example_2_Returns_StraightFlush()
        {
            var pokerHand = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Three),
                new Card(CardSuit.Diamond, CardValue.Four),
                new Card(CardSuit.Diamond, CardValue.Five),
                new Card(CardSuit.Diamond, CardValue.Six),
                new Card(CardSuit.Diamond, CardValue.Seven)
                );

            // could use this assertion, but i prefer the "IsTrue" which I feel is more readable.
            Assert.IsInstanceOfType(SpecifiedPokerHand(pokerHand), typeof(StraightFlush));
        }
Ejemplo n.º 20
0
        public void Factory_WhenPassed_FullHouse_Spec_Example_2_Returns_FullHouse()
        {
            var pokerHand = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Heart, CardValue.Ace),
                new Card(CardSuit.Heart, CardValue.Ace),
                new Card(CardSuit.Heart, CardValue.Ace),
                new Card(CardSuit.Heart, CardValue.Nine),
                new Card(CardSuit.Heart, CardValue.Nine)
                );

            // could use this assertion, but i prefer the "IsTrue" which I feel is more readable.
            Assert.IsInstanceOfType(SpecifiedPokerHand(pokerHand), typeof(FullHouse));
        }
Ejemplo n.º 21
0
        public void Comparer_Comparing_HighCards_Example_2()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Ace),
                new Card(CardSuit.Diamond, CardValue.Jack),
                new Card(CardSuit.Club, CardValue.Six),
                new Card(CardSuit.Heart, CardValue.Five),
                new Card(CardSuit.Club, CardValue.Three)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Ace),
                new Card(CardSuit.Diamond, CardValue.Jack),
                new Card(CardSuit.Club, CardValue.Six),
                new Card(CardSuit.Heart, CardValue.Five),
                new Card(CardSuit.Club, CardValue.Two)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 22
0
        public void Comparer_HigherFullHouse_Beats_LowerFullHouse_Spec_Example_1()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Five),
                new Card(CardSuit.Diamond, CardValue.Five),
                new Card(CardSuit.Diamond, CardValue.Five),
                new Card(CardSuit.Diamond, CardValue.Queen),
                new Card(CardSuit.Diamond, CardValue.Queen)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Ace),
                new Card(CardSuit.Diamond, CardValue.Ace),
                new Card(CardSuit.Diamond, CardValue.Four),
                new Card(CardSuit.Diamond, CardValue.Four),
                new Card(CardSuit.Diamond, CardValue.Four)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand2 to lose to Hand1");
        }
Ejemplo n.º 23
0
        public void Comparer_HigherStraightFlush_Beats_LowerStraightFlush_Spec_Example_1()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Eight),
                new Card(CardSuit.Diamond, CardValue.Nine),
                new Card(CardSuit.Diamond, CardValue.Ten),
                new Card(CardSuit.Diamond, CardValue.Jack),
                new Card(CardSuit.Diamond, CardValue.Queen)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Six),
                new Card(CardSuit.Diamond, CardValue.Seven),
                new Card(CardSuit.Diamond, CardValue.Eight),
                new Card(CardSuit.Diamond, CardValue.Nine),
                new Card(CardSuit.Diamond, CardValue.Ten)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand2 to lose to Hand1");
        }
Ejemplo n.º 24
0
        public void Comparer_LowerStraightFlush_Loses_To_HigherStraightFlush()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Eight),
                new Card(CardSuit.Diamond, CardValue.Seven),
                new Card(CardSuit.Diamond, CardValue.Six),
                new Card(CardSuit.Diamond, CardValue.Five),
                new Card(CardSuit.Diamond, CardValue.Four)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Heart, CardValue.Five),
                new Card(CardSuit.Heart, CardValue.Six),
                new Card(CardSuit.Heart, CardValue.Seven),
                new Card(CardSuit.Heart, CardValue.Eight),
                new Card(CardSuit.Heart, CardValue.Nine)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(-1, result, "Expected Hand1 to lose to Hand2");
        }
Ejemplo n.º 25
0
        public void Comparer_Comparing_HighCards_Example_3()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Jack),
                new Card(CardSuit.Diamond, CardValue.Ten),
                new Card(CardSuit.Club, CardValue.Seven),
                new Card(CardSuit.Heart, CardValue.Six),
                new Card(CardSuit.Club, CardValue.Five)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Diamond, CardValue.Jack),
                new Card(CardSuit.Diamond, CardValue.Ten),
                new Card(CardSuit.Spade, CardValue.Seven),
                new Card(CardSuit.Heart, CardValue.Six),
                new Card(CardSuit.Club, CardValue.Five)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(0, result, "Expected Hand1 and Hand2 be equivalent");
        }
Ejemplo n.º 26
0
        public void Comparer_WhenComparing_MatchingHighCard_ToMatchHighCard_DifferentOrder_Ensures_A_Tie()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(

                new Card(CardSuit.Club, CardValue.Jack),
                new Card(CardSuit.Spade, CardValue.Queen),
                new Card(CardSuit.Club, CardValue.Nine),
                new Card(CardSuit.Diamond, CardValue.Ten),
                new Card(CardSuit.Club, CardValue.King)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.Queen),
                new Card(CardSuit.Spade, CardValue.Ten),
                new Card(CardSuit.Club, CardValue.Jack),
                new Card(CardSuit.Diamond, CardValue.King),
                new Card(CardSuit.Club, CardValue.Nine)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(0, result, "Expected Hand1 and Hand2 be equivalent");
        }
Ejemplo n.º 27
0
        public void Comparer_Comparing_HighCards_Example_1()
        {
            var pokerHand1 = PokerHandTestHelper.CreateHand(

                new Card(CardSuit.Club, CardValue.King),
                new Card(CardSuit.Diamond, CardValue.Ten),
                new Card(CardSuit.Club, CardValue.Five),
                new Card(CardSuit.Heart, CardValue.Four),
                new Card(CardSuit.Club, CardValue.Three)
                );

            var pokerHand2 = PokerHandTestHelper.CreateHand(
                new Card(CardSuit.Club, CardValue.King),
                new Card(CardSuit.Spade, CardValue.Nine),
                new Card(CardSuit.Club, CardValue.Eight),
                new Card(CardSuit.Heart, CardValue.Three),
                new Card(CardSuit.Club, CardValue.Two)
                );

            var result = _comparer.CompareHands(pokerHand1, pokerHand2);

            Assert.AreEqual(1, result, "Expected Hand1 to beat Hand2");
        }
Ejemplo n.º 28
0
 public void Factory_WhenPassed_A_HighTwoPair_Combination_Returns_A_TwoPair()
 {
     Assert.IsTrue(SpecifiedPokerHand(PokerHandTestHelper.CreateHighTwoPairs()) is TwoPair);
 }
Ejemplo n.º 29
0
 public void Factory_WhenPassed_A_LowPair_Combination_Returns_A_Pair()
 {
     Assert.IsTrue(SpecifiedPokerHand(PokerHandTestHelper.CreateLowPair()) is Pair);
 }
Ejemplo n.º 30
0
 public void Factory_WhenPassed_A_HighHighCard_Combination_Returns_A_HighCard()
 {
     Assert.IsTrue(SpecifiedPokerHand(PokerHandTestHelper.CreateHighHighCard()) is HighCard);
 }