private Expression <Func <Playerstatistic, bool> > GetBoardCardItemsPredicate() { Expression <Func <Playerstatistic, bool> > resultPredicate = null; var analyzer = new ExactCardsTextureAnalyzer(); if (FlopCardItemsCollection.Any(x => x.Suit != RangeCardSuit.None)) { var collection = FlopCardItemsCollection.Where(x => x.Suit != RangeCardSuit.None); if (resultPredicate == null) { resultPredicate = PredicateBuilder.Create <Playerstatistic>(x => analyzer.Analyze(x.Board, collection)); } else { resultPredicate = resultPredicate.Or(x => analyzer.Analyze(x.Board, collection)); } } if (TurnCardItemsCollection.Any(x => x.Suit != RangeCardSuit.None)) { var collection = TurnCardItemsCollection.Where(x => x.Suit != RangeCardSuit.None); if (resultPredicate == null) { resultPredicate = PredicateBuilder.Create <Playerstatistic>(x => analyzer.Analyze(x.Board, collection)); } else { resultPredicate = resultPredicate.Or(x => analyzer.Analyze(x.Board, collection)); } } if (RiverCardItemsCollection.Any(x => x.Suit != RangeCardSuit.None)) { var collection = RiverCardItemsCollection.Where(x => x.Suit != RangeCardSuit.None); if (resultPredicate == null) { resultPredicate = PredicateBuilder.Create <Playerstatistic>(x => analyzer.Analyze(x.Board, collection)); } else { resultPredicate = resultPredicate.Or(x => analyzer.Analyze(x.Board, collection)); } } return(resultPredicate); }
public void TestExactCardsTextureAnalyzer() { var analyzer = new ExactCardsTextureAnalyzer(); var boardCards = "4s 5h 7s"; var targetCards = new List <BoardCardItem>() { //4s 5h 7s new BoardCardItem { Rank = Model.Enums.RangeCardRank.Five, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Four, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Seven, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop } }; var targetCards2 = new List <BoardCardItem>() { //4d 5h 7s new BoardCardItem { Rank = Model.Enums.RangeCardRank.Five, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Four, Suit = Model.Enums.RangeCardSuit.Diamonds, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Seven, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop } }; var targetCards3 = new List <BoardCardItem>() { //4s 5h Xh new BoardCardItem { Rank = Model.Enums.RangeCardRank.Five, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Four, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.None, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop } }; var targetCards4 = new List <BoardCardItem>() { //Xs 5h 7s new BoardCardItem { Rank = Model.Enums.RangeCardRank.Five, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.None, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Seven, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop } }; var targetCards5 = new List <BoardCardItem>() { //Xs 5h new BoardCardItem { Rank = Model.Enums.RangeCardRank.Five, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.None, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop }, }; var targetCards6 = new List <BoardCardItem>() { //4s 5h new BoardCardItem { Rank = Model.Enums.RangeCardRank.Five, Suit = Model.Enums.RangeCardSuit.Hearts, TargetStreet = Street.Flop }, new BoardCardItem { Rank = Model.Enums.RangeCardRank.Four, Suit = Model.Enums.RangeCardSuit.Spades, TargetStreet = Street.Flop }, }; Assert.That(analyzer.Analyze(boardCards, targetCards), Is.True); Assert.That(analyzer.Analyze(boardCards, targetCards2), Is.False); Assert.That(analyzer.Analyze(boardCards, targetCards3), Is.False); Assert.That(analyzer.Analyze(boardCards, targetCards4), Is.True); Assert.That(analyzer.Analyze(boardCards, targetCards5), Is.True); Assert.That(analyzer.Analyze(boardCards, targetCards6), Is.True); }