Esempio n. 1
0
        public void GenerateHand_GeneratesTwoCards()
        {
            for (int i = 0; i < 1000; i++)
            {
                var hand = BoardGenerator.GenerateHand().ToString();

                Assert.True(hand.Split(',').Length == 2, $"{hand}");
            }
        }
Esempio n. 2
0
        public void GenerateHand_NeverGeneratesADeadCard()
        {
            for (int i = Constants.CardMinBitIndex; i <= Constants.CardMaxBitIndex; i++)
            {
                var deadCard = (Card)(Constants.LOne << i);

                for (int j = 0; j < 300; j++)
                {
                    var generatedCard = BoardGenerator.GenerateHand(deadCard);

                    Assert.True((deadCard & generatedCard) == 0, $"{i}:{generatedCard}");
                }
            }
        }
Esempio n. 3
0
        public void GenerateNextBoards_UseFlop_NeverGeneratesADeadCard()
        {
            for (int i = 0; i < 100; i++)
            {
                var flop = BoardGenerator.GenerateFlop();

                for (int j = 0; j < 100; j++)
                {
                    var deadCards  = BoardGenerator.GenerateHand(flop);
                    var nextBoards = BoardGenerator.GenerateNextBoards(flop, deadCards);

                    foreach (var board in nextBoards)
                    {
                        Assert.True((deadCards & board) == 0, $"{deadCards}:{board}");
                    }
                }
            }
        }
Esempio n. 4
0
        static GameState GetStartState(bool isDeterministic)
        {
            if (!isDeterministic)
            {
                return(StateGenerator.GenerateState());
            }

            var heroHand    = isDeterministic ? Card.d6 | Card.d5 : BoardGenerator.GenerateHand();
            var villainHand = Card.None;
            var flop        = isDeterministic ?
                              Card.c3 | Card.d4 | Card.c9 : BoardGenerator.GenerateFlop(heroHand | villainHand);
            var hero    = new Player(heroHand, Position.SB, 99.5, true, true);
            var villain = new Player(villainHand, Position.BB, 98.25, false);
            var state   = StateFactory.CreateStartState(
                flop, Street.Flop, hero, villain, 2.25, 0.75d, Action.Bet50);

            return(state);
        }
Esempio n. 5
0
        public void GenerateNextBoards_UseFlop_GenerateFourCards()
        {
            for (int i = 0; i < 100; i++)
            {
                var flop = BoardGenerator.GenerateFlop();

                for (int j = 0; j < 100; j++)
                {
                    var deadCards  = BoardGenerator.GenerateHand(flop);
                    var nextBoards = BoardGenerator.GenerateNextBoards(flop, deadCards);

                    foreach (var board in nextBoards)
                    {
                        Assert.True(
                            board.ToString().Split(',').Length == 4, $"{deadCards}:{board}");
                    }
                }
            }
        }