public void GenerateHand_GeneratesTwoCards() { for (int i = 0; i < 1000; i++) { var hand = BoardGenerator.GenerateHand().ToString(); Assert.True(hand.Split(',').Length == 2, $"{hand}"); } }
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}"); } } }
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}"); } } } }
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); }
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}"); } } } }