public void OnePairRuleTest() { var rule = new OnePairRule(); const string testcase0 = "Player1 8H "; var builder = new RoundBuilder(new StringReader(testcase0)); var ex = Assert.ThrowsException <Exception>(() => builder.Build()); Assert.AreEqual(ex.Message, "Invalid player format"); const string testcase1 = "Player1 8H 7C 9D AH KC\r\nplayer2 7D 6C 5H QS 10H"; builder = new RoundBuilder(new StringReader(testcase1)); var winners = rule.Apply(builder.Build()); Assert.IsNotNull(winners); Assert.AreEqual(0, winners.Count); const string testcase2 = "Player1 8H 7C 9D KH KC\r\nplayer2 7D 6C 5H KS KH"; builder = new RoundBuilder(new StringReader(testcase2)); winners = rule.Apply(builder.Build()); Assert.IsNotNull(winners); Assert.AreEqual(1, winners.Count); Assert.AreEqual("Player1", winners[0].Name); const string testcase3 = "Player1 8H 7C 9D 9H KC\r\nplayer2 7D 6C 9H 9S KH"; builder = new RoundBuilder(new StringReader(testcase3)); winners = rule.Apply(builder.Build()); Assert.IsNotNull(winners); Assert.AreEqual(1, winners.Count); Assert.AreEqual("Player1", winners[0].Name); const string testcase4 = "Player1 8H 7C 9D 9H KC\r\nPlayer2 8D 8C 9H 9S KH"; builder = new RoundBuilder(new StringReader(testcase4)); winners = rule.Apply(builder.Build()); Assert.IsNotNull(winners); Assert.AreEqual(1, winners.Count); Assert.AreEqual("Player2", winners[0].Name); const string testcase5 = "Player1 8H 8C 9D 9H AC\r\nPlayer2 8D 8C 9H 9S KH"; builder = new RoundBuilder(new StringReader(testcase5)); winners = rule.Apply(builder.Build()); Assert.IsNotNull(winners); Assert.AreEqual(1, winners.Count); Assert.AreEqual("Player1", winners[0].Name); const string testcase6 = "Player1 8H 8C 9D 9H AC\r\nPlayer2 8D 8C 9H 9S KH\r\nPlayer3 8D 8C 9H 9S AH"; builder = new RoundBuilder(new StringReader(testcase6)); winners = rule.Apply(builder.Build()); Assert.IsNotNull(winners); Assert.AreEqual(2, winners.Count); Assert.AreEqual("Player1", winners[0].Name); Assert.AreEqual("Player3", winners[1].Name); }
public void OnePairBigTest() { var rule = new OnePairRule(); var builder = new RoundBuilder(new StringReader(testcase_bigonepair)); var round = builder.Build(); var winners = rule.Apply(round); Assert.AreEqual(100000, winners.Count); }
public void CardList_Is_One_Pair() { var cardList = new List <Card>() { new Card() { FaceValue = CardFaceValue.Ace, Suit = CardSuit.Clubs }, new Card() { FaceValue = CardFaceValue.Two, Suit = CardSuit.Diamonds }, new Card() { FaceValue = CardFaceValue.Jack, Suit = CardSuit.Spades }, new Card() { FaceValue = CardFaceValue.Jack, Suit = CardSuit.Diamonds }, new Card() { FaceValue = CardFaceValue.Five, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.HighAce, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.Ten, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.Nine, Suit = CardSuit.Spades }, new Card() { FaceValue = CardFaceValue.Queen, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.King, Suit = CardSuit.Hearts } }; var rule = new OnePairRule(); var hand = rule.BuildStrongestHand(cardList); Assert.IsNotNull(hand); Assert.AreEqual("One pair", hand.Name); Assert.AreEqual(200, hand.RankPrimary); Assert.IsTrue(hand.Cards.Any(x => x.FaceValue == CardFaceValue.Jack)); }
public void CardList_Is_Not_One_Pair() { var cardList = new List <Card>() { new Card() { FaceValue = CardFaceValue.Ace, Suit = CardSuit.Clubs }, new Card() { FaceValue = CardFaceValue.Two, Suit = CardSuit.Diamonds }, new Card() { FaceValue = CardFaceValue.Jack, Suit = CardSuit.Spades }, new Card() { FaceValue = CardFaceValue.Four, Suit = CardSuit.Diamonds }, new Card() { FaceValue = CardFaceValue.Five, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.HighAce, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.Ten, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.Nine, Suit = CardSuit.Spades }, new Card() { FaceValue = CardFaceValue.Queen, Suit = CardSuit.Hearts }, new Card() { FaceValue = CardFaceValue.King, Suit = CardSuit.Hearts } }; var rule = new OnePairRule(); var hand = rule.BuildStrongestHand(cardList); Assert.IsNull(hand); }