private static Hand GetHand(Card[] cardSet) { return (new Hand(CombinationFactory.TryGetRoyalFlush(cardSet)) .Or(() => new Hand(CombinationFactory.TryGetStraightFlush(cardSet))) .Or(() => CreateHand(CombinationFactory.TryGetFourOfAKind(cardSet))) .Or(() => new Hand(CombinationFactory.TryGetFullHouse(cardSet))) .Or(() => new Hand(CombinationFactory.TryGetFlush(cardSet))) .Or(() => new Hand(CombinationFactory.TryGetStraight(cardSet))) .Or(() => CreateHand(CombinationFactory.TryGetThreeOfAKind(cardSet))) .Or(() => CreateHand(CombinationFactory.TryGetTwoPairs(cardSet))) .Or(() => CreateHand(CombinationFactory.TryGetPair(cardSet))) .Or(() => new Hand(null, new OddCards(cardSet.Select(c => c.CardNomination).ToArray())))); }
public void TestRoyalFlush([Values(true, false)]bool draw) { var cf = new CombinationFactory(); var assert = draw ? (Action<object>)(Assert.IsNull) : o => Assert.IsNotNull(o); assert(cf.TryGetRoyalFlush( new[] { new Card(new MajorCardNomination(MajorCardType.Ace), Clubs), new Card(new MajorCardNomination(MajorCardType.King), Clubs), new Card(new MajorCardNomination(MajorCardType.Queen), Clubs), new Card(new MajorCardNomination(MajorCardType.Jack), Clubs), new Card(new MinorCardNomination(10), draw? Suit.Diamonds : Clubs), })); }
public void TestRoyalFlush([Values(true, false)] bool draw) { var cf = new CombinationFactory(); var assert = draw ? (Action <object>)(Assert.IsNull) : o => Assert.IsNotNull(o); assert(cf.TryGetRoyalFlush( new[] { new Card(new MajorCardNomination(MajorCardType.Ace), Clubs), new Card(new MajorCardNomination(MajorCardType.King), Clubs), new Card(new MajorCardNomination(MajorCardType.Queen), Clubs), new Card(new MajorCardNomination(MajorCardType.Jack), Clubs), new Card(new MinorCardNomination(10), draw? Suit.Diamonds : Clubs), })); }