public void HandIsHighCard() { //Arrange List <Card> cards = new List <Card>(); cards.Add(new Card(Suits.Hearts, 7)); cards.Add(new Card(Suits.Hearts, "A")); cards.Add(new Card(Suits.Spades, 6)); cards.Add(new Card(Suits.Clubes, 3)); cards.Add(new Card(Suits.Hearts, "K")); cards.Add(new Card(Suits.Dimensions, 2)); cards.Add(new Card(Suits.Hearts, 9)); //Act HighCard h = new HighCard(); Hand highCard = h.IsMatch(cards).Value; //Assert Assert.IsNotNull(highCard); Assert.AreEqual(5, highCard.CardsInTheHand.Count); Assert.AreEqual <int>(14, highCard.CardsInTheHand[0].Value); Assert.AreEqual <int>(13, highCard.CardsInTheHand[1].Value); Assert.AreEqual <int>(9, highCard.CardsInTheHand[2].Value); Assert.AreEqual <int>(7, highCard.CardsInTheHand[3].Value); Assert.AreEqual <int>(6, highCard.CardsInTheHand[4].Value); Assert.AreEqual(Constancts.HandRanks.HighCard, highCard.Rank); }
public void test_scores() { var highCard = new HighCard(); Assert.AreEqual(0, highCard.Score); var onePair = new OnePair(); Assert.AreEqual(1, onePair.Score); var twoPairs = new TwoPairs(); Assert.AreEqual(2, twoPairs.Score); var set = new Set(); Assert.AreEqual(3, set.Score); var straight = new Straight(); Assert.AreEqual(4, straight.Score); var flush = new Flush(); Assert.AreEqual(5, flush.Score); var fullHouse = new FullHouse(); Assert.AreEqual(6, fullHouse.Score); var quads = new Quads(); Assert.AreEqual(7, quads.Score); var straightFlush = new StraightFlush(); Assert.AreEqual(8, straightFlush.Score); var royalFlush = new RoyalFlush(); Assert.AreEqual(9, royalFlush.Score); }
public void Test_HighCard_CreateInstance(string strCards, bool isValid) { var cards = Utils.ParseCards(strCards); var highCard = HighCard.CreateInstance(cards); CreateInstanceHelper(highCard, HandRanks.HighCard, cards, isValid); }
public void HigherCard_should_be_serialized_and_deserialized_correctly_to_the_exact_type() { var pokerHand = new HighCard(Rank.Ace); var deserializedObject = SerializationTestHelper.SerializeAndDeserialize(pokerHand); Assert.IsType <HighCard>(deserializedObject); }
public void GivenHandCardThenCheckIfHighCard(string handCard, bool expectedResult) { var handCardFormatted = Common.ConvertCardStringToList(handCard); var isStraightFlush = new HighCard().IsThisType(handCardFormatted); Assert.True(isStraightFlush == expectedResult); }
public void Test_HighCard_ComparableTests(string strInputA, string strInputB, int comp) { var cardsA = Utils.ParseCards(strInputA); var cardsB = Utils.ParseCards(strInputB); var highCardOne = HighCard.CreateInstance(cardsA); var highCardTwo = HighCard.CreateInstance(cardsB); ComparableTestsHelper(highCardOne, highCardTwo, comp); }
public void TestHighCardHandOutcomes(HighCardTestHand testHand) { var standardDeck = new StandardDeck(); var highCardGame = new HighCard(); var playerHand = HighCardTestHand.GetPlayerHand(testHand.PlayerHand, standardDeck); var oponentHand = HighCardTestHand.GetPlayerHand(testHand.OpponentHand, standardDeck); Assert.AreEqual(testHand.HandOutcome, highCardGame.GetHandOutcome(playerHand, oponentHand)); }
public void Test_HighCard_EqualityOperators(string strInputA, string strInputB, bool areEqual) { var cardsA = Utils.ParseCards(strInputA); var cardsB = Utils.ParseCards(strInputB); var highCardOne = HighCard.CreateInstance(cardsA); var highCardTwo = HighCard.CreateInstance(cardsB); EqualityOperatorsHelper(highCardOne, highCardTwo, areEqual); }
public void Constructor_WithValidCardsForHighCard_StoresSortedHighCardCards() { List <Card> cards = TestUtil.CreateDefaultHighCardCards(); HighCard hand = new HighCard(cards); Assert.AreEqual(hand.sortedCards[0], new Card(CardValue.Jack, Suit.Heart)); Assert.AreEqual(hand.sortedCards[1], new Card(CardValue.Nine, Suit.Club)); Assert.AreEqual(hand.sortedCards[2], new Card(CardValue.Eight, Suit.Diamond)); Assert.AreEqual(hand.sortedCards[3], new Card(CardValue.Seven, Suit.Spade)); Assert.AreEqual(hand.sortedCards[4], new Card(CardValue.Four, Suit.Heart)); }
public void DealGame() { var rounds = 50; var players = 5; foreach (var round in Enumerable.Range(1, rounds)) { var highcardGame = new HighCard(); highcardGame.CreateGame(players); highcardGame.DealHand(); highcardGame.OutputHandResults(); } }
public void HandHighCardTestDuplicate() { //Arrange List <Card> cards = new List <Card>(); cards.Add(new Card(Suits.Clubes, "A")); cards.Add(new Card(Suits.Clubes, "A")); //Act HighCard hand = new HighCard(); //Assert Assert.ThrowsException <InvalidOperationException>(() => hand.IsMatch(cards)); }
public void Test_HighCard_EqualityOperators_ForNull() { var cards = Utils.ParseCards("7S 3H 5D KC 2C"); var highCard = HighCard.CreateInstance(cards); Assert.False(highCard.Equals(null)); Assert.True((HighCard)null == (HighCard)null); Assert.False((HighCard)null == highCard); Assert.False(highCard == (HighCard)null); Assert.False((HighCard)null != (HighCard)null); Assert.True((HighCard)null != highCard); Assert.True(highCard != (HighCard)null); }
public void HighCardUnitTests_1() { var highCardsHands = new Dictionary <long, string>() { //{0x0008004002001000, string.Empty}, // 0000 0000 0000/1000 0000.0000 0/100.0000 0000.00/10 0000.0000 000/1.0000 0000.0000 { 0x0000000000445111L, string.Empty } // 0000 0000 0000/0000 0000.0000 0/000.0000 0000.00/00 0100.0100 010/1.0001 0001.0001 }; var pht = new HighCard(); foreach (var hand in highCardsHands) { var ph = new PokerHand(hand.Key); Assert.True(pht.Parse(ph), hand.Value); Assert.Equal(PokerHandAnalyzer.Strength.HighCard, ph.Strength); } }
public void HighCardUnitTests_1() { var highCardsHands = new Dictionary<long, string>() { //{0x0008004002001000, string.Empty}, // 0000 0000 0000/1000 0000.0000 0/100.0000 0000.00/10 0000.0000 000/1.0000 0000.0000 {0x0000000000445111L, string.Empty} // 0000 0000 0000/0000 0000.0000 0/000.0000 0000.00/00 0100.0100 010/1.0001 0001.0001 }; var pht = new HighCard(); foreach (var hand in highCardsHands) { var ph = new PokerHand(hand.Key); Assert.True(pht.Parse(ph), hand.Value); Assert.Equal(PokerHandAnalyzer.Strength.HighCard, ph.Strength); } }
public void CompareTo_ComparesHighCardHands_ReturnsComparison() { List <Card> cards1 = TestUtil.CreateDefaultHighCardCards(); HighCard hand1 = new HighCard(cards1); List <Card> cards2 = new List <Card> { new Card(CardValue.Jack, Suit.Heart), new Card(CardValue.Seven, Suit.Spade), new Card(CardValue.Nine, Suit.Club), new Card(CardValue.Eight, Suit.Diamond), new Card(CardValue.Three, Suit.Heart) }; HighCard hand2 = new HighCard(cards2); Assert.IsTrue(hand1.CompareTo(hand2) > 0); }
public string RankDescription() { string sRankDescription = HighCard.RankStr() + LowCard.RankStr(); if (HighCard.Rank != LowCard.Rank) { if (HighCard.Suit == LowCard.Suit) { sRankDescription += "s"; } else { sRankDescription += "o"; } } return(sRankDescription); }
private static decimal EvaluateDeck(List <Card> deck, out string playerHand) { deck.Sort(); SortBySuit(ref deck); playerHand = string.Empty; decimal res = 0; Combination var; var keys = new List <Card>(); if (Combination.IsStraight(deck) && Combination.IsFlush(deck)) { var = new StraightFlush(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsNofAKind(4, deck, out keys)) { var = new FourOfAKind(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsFullHouse(deck, out Card key)) { var = new FullHouse(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsFlush(deck)) { var = new Flush(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsStraight(deck)) { var = new Straight(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsNofAKind(3, deck, out keys)) { var = new ThreeOfAKind(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsTwoPairs(deck, out keys)) { var = new TwoPairs(deck); playerHand = var.PlayerHand; res = var.Score; } else if (Combination.IsNofAKind(2, deck, out keys)) { var = new Pair(deck); playerHand = var.PlayerHand; res = var.Score; } else { deck.Sort(); deck.Reverse(); var = new HighCard(deck); playerHand = var.PlayerHand; res = var.Score; } return(res); }
public void SetUp() { _highCard = new HighCard(); }
public override string ToString() { return($"{HandType} with {HighCard.ToString()}"); }
public override string ToString() { var name = new StringBuilder(); if (CombinationType != Combination.UnSet) { switch (CombinationType) { case Combination.RoyalFlush: name.Append("Royal flush of "); name.Append(HighCard.Suit.ToString().ToLower()); return(name.ToString()); case Combination.StraightFlush: name.Append("Straight flush to "); name.Append(HighCard.ToString().ToLower()); return(name.ToString()); case Combination.FourOfAKind: name.Append("Four of a kind "); name.Append(HighCard.FirstNamePlural.ToLower()); name.Append(" with "); name.Append(Kickers[0].Initial); name.Append(" kicker"); return(name.ToString()); case Combination.FullHouse: name.Append("Full house "); name.Append(HighGroup[0].FirstNamePlural); name.Append(" full of "); name.Append(LowGroup[0].FirstNamePlural); return(name.ToString()); case Combination.Flush: name.Append("Flush of "); name.Append(HighCard.Suit.ToString().ToLower()); name.Append(" to "); name.Append(HighCard.FirstName); return(name.ToString()); case Combination.Straight: name.Append("Straight to "); name.Append(HighCard.FirstName); return(name.ToString()); case Combination.ThreeOfAKind: name.Append("Three of a kind "); name.Append(HighGroup[0].FirstNamePlural); name.Append(" with "); name.Append(Kickers[0].Initial); name.Append(", "); name.Append(Kickers[1].Initial); name.Append(" kickers"); return(name.ToString()); case Combination.TwoPairs: name.Append("Two pairs "); name.Append(HighGroup[0].FirstNamePlural); name.Append(" and "); name.Append(LowGroup[0].FirstNamePlural); name.Append(" with "); name.Append(Kickers[0].Initial); name.Append(" kicker"); return(name.ToString()); case Combination.APair: name.Append("A pair of "); name.Append(HighGroup[0].FirstNamePlural); name.Append(" with "); name.Append(Kickers[0].Initial); name.Append(", "); name.Append(Kickers[1].Initial); name.Append(", "); name.Append(Kickers[2].Initial); name.Append(" kickers"); return(name.ToString()); case Combination.HighCard: name.Append("High card "); name.Append(HighCard.FirstName); name.Append(" with "); name.Append(Kickers[0].Initial); name.Append(", "); name.Append(Kickers[1].Initial); name.Append(", "); name.Append(Kickers[2].Initial); name.Append(", "); name.Append(Kickers[3].Initial); name.Append(" kickers"); return(name.ToString()); } } return("Not set"); }