Ejemplo n.º 1
0
        public void ThreeOfAKind_ReturnsAppropriateValue_TieBreaker()
        {
            var mockLeft = new Mock <IHand>();

            mockLeft.SetupGet(p => p.Cards).Returns(CardSequences.ThreeOfAKindHigher);

            var mockRight = new Mock <IHand>();

            mockRight.SetupGet(p => p.Cards).Returns(CardSequences.ThreeOfAKindLower);

            var mockLower = new Mock <IHand>();

            mockLower.SetupGet(p => p.Cards).Returns(CardSequences.ThreeOfAKindKickerLower);

            var left        = new ThreeOfAKindHand(mockLeft.Object);
            var right       = new ThreeOfAKindHand(mockRight.Object);
            var lowerKicker = new ThreeOfAKindHand(mockLower.Object);

            Assert.Equal(1, left.CompareTo(right));
            Assert.Equal(1, left.CompareTo(lowerKicker));
            Assert.Equal(0, right.CompareTo(right));
            Assert.Equal(-1, lowerKicker.CompareTo(left));
            Assert.Equal(-1, right.CompareTo(left));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the three cards that create the Three of a Kind, from the provided hand.
        /// </summary>
        /// <param name="hand">The hand from which to get the high card, presumes this hand is of type <see cref="ThreeOfAKindHand"/>.</param>
        /// <returns></returns>
        internal static Card[] GetThreesom(Hand hand)
        {
            ThreeOfAKindHand realHand = (ThreeOfAKindHand)hand;

            return(realHand.Take(3).ToArray());
        }