Added additional tests.
This commit is contained in:
@ -736,6 +736,44 @@ void test_pokerPlayerBet_should_BetToTheActivePot(void) {
|
||||
TEST_ASSERT_EQUAL_INT32(50, pot->chips);
|
||||
}
|
||||
|
||||
void test_pokerPlayerCanCheck_should_CompareThePotAndPlayerBet(void) {
|
||||
poker2_t poker;
|
||||
uint8_t p0, p1, p2;
|
||||
pokerInit(&poker);
|
||||
|
||||
p0 = pokerPlayerAdd(&poker);
|
||||
p1 = pokerPlayerAdd(&poker);
|
||||
p2 = pokerPlayerAdd(&poker);
|
||||
pokerPlayerChipsAdd(poker.players + p0, 1000);
|
||||
pokerPlayerChipsAdd(poker.players + p1, 1000);
|
||||
pokerPlayerChipsAdd(poker.players + p2, 1000);
|
||||
|
||||
pokerPlayerBet(&poker, p0, 100);
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p0));
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerCanCheck(&poker, poker.players+p1));
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerCanCheck(&poker, poker.players+p2));
|
||||
|
||||
pokerPlayerBet(&poker, p1, 100);
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p0));
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p1));
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerCanCheck(&poker, poker.players+p2));
|
||||
|
||||
pokerPlayerBet(&poker, p2, 100);
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p0));
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p1));
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p2));
|
||||
|
||||
pokerPlayerBet(&poker, p2, 100);
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerCanCheck(&poker, poker.players+p0));
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerCanCheck(&poker, poker.players+p1));
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p2));
|
||||
|
||||
pokerPlayerBet(&poker, p1, 100);
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerCanCheck(&poker, poker.players+p0));
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p1));
|
||||
TEST_ASSERT_EQUAL(true, pokerPlayerCanCheck(&poker, poker.players+p2));
|
||||
}
|
||||
|
||||
void test_pokerTurnFold_should_ReturnAFoldAction(void) {
|
||||
poker2_t poker;
|
||||
poker2turn_t turn;
|
||||
@ -818,6 +856,157 @@ void test_pokerTurnBet_should_ReturnARaiseAction(void) {
|
||||
TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence);
|
||||
}
|
||||
|
||||
void test_pokerHandGetFull_should_ReturnTheFullHand(void) {
|
||||
poker2_t poker;
|
||||
poker2player_t *player;
|
||||
uint8_t i;
|
||||
card_t cards[POKER_WINNING_FULL_SIZE];
|
||||
|
||||
pokerInit(&poker);
|
||||
i = pokerPlayerAdd(&poker);
|
||||
player = poker.players + i;
|
||||
|
||||
pokerPlayerDeal(&poker, player, POKER_PLAYER_HAND_SIZE_MAX);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_ACE, player->cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_KING, player->cards[1]);
|
||||
|
||||
pokerTurn(&poker, POKER_COMMUNITY_SIZE_MAX);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, poker.community[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_JACK, poker.community[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_TEN, poker.community[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_NINE, poker.community[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_EIGHT, poker.community[4]);
|
||||
|
||||
pokerHandGetFull(&poker, player, cards);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_JACK, cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_TEN, cards[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_NINE, cards[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_EIGHT, cards[4]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_ACE, cards[5]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_KING, cards[6]);
|
||||
|
||||
poker.community[0] = CARD_CLUBS_THREE;
|
||||
poker.community[1] = CARD_DIAMONDS_TWO;
|
||||
poker.community[2] = CARD_SPADES_EIGHT;
|
||||
poker.community[3] = CARD_DIAMONDS_ACE;
|
||||
poker.community[4] = CARD_SPADES_FIVE;
|
||||
player->cards[0] = CARD_DIAMONDS_KING;
|
||||
player->cards[1] = CARD_HEARTS_QUEEN;
|
||||
|
||||
pokerHandGetFull(&poker, player, cards);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_THREE, cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_TWO, cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_EIGHT, cards[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_ACE, cards[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_FIVE, cards[4]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_KING, cards[5]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_QUEEN, cards[6]);
|
||||
}
|
||||
|
||||
void test_pokerWinnerFillRemaining_should_FillTheRestOfTheArray(void) {
|
||||
poker2playerwinning_t winning;
|
||||
winning.fullSize = 7;
|
||||
winning.full[0] = CARD_CLUBS_ACE;
|
||||
winning.full[1] = CARD_CLUBS_TWO;
|
||||
winning.full[2] = CARD_CLUBS_THREE;
|
||||
winning.full[3] = CARD_CLUBS_FOUR;
|
||||
winning.full[4] = CARD_CLUBS_FIVE;
|
||||
winning.full[5] = CARD_CLUBS_SIX;
|
||||
winning.full[6] = CARD_CLUBS_SEVEN;
|
||||
|
||||
cardHandSort(winning.full, 7);
|
||||
|
||||
winning.setSize = 1;
|
||||
winning.set[0] = CARD_CLUBS_ACE;
|
||||
|
||||
debug_WinnerFillRemaining(&winning);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_WINNING_SET_SIZE, winning.setSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_ACE, winning.set[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_SEVEN, winning.set[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_SIX, winning.set[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_FIVE, winning.set[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_FOUR, winning.set[4]);
|
||||
}
|
||||
|
||||
void test_pokerWinnerGetForPlayer_should_CalculateHighCard(void) {
|
||||
poker2_t poker;
|
||||
uint8_t i;
|
||||
poker2player_t *player;
|
||||
poker2playerwinning_t winning;
|
||||
|
||||
pokerInit(&poker);
|
||||
i = pokerPlayerAdd(&poker);
|
||||
player = poker.players + i;
|
||||
|
||||
poker.communitySize = 5;
|
||||
poker.community[0] = CARD_HEARTS_QUEEN;
|
||||
poker.community[1] = CARD_CLUBS_TWO;
|
||||
poker.community[2] = CARD_DIAMONDS_ACE;
|
||||
poker.community[3] = CARD_SPADES_NINE;
|
||||
poker.community[4] = CARD_HEARTS_SIX;
|
||||
|
||||
player->cardCount = 2;
|
||||
player->cards[0] = CARD_CLUBS_FOUR;
|
||||
player->cards[1] = CARD_DIAMONDS_SEVEN;
|
||||
|
||||
pokerWinnerGetForPlayer(&poker, player, &winning);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_WINNING_FULL_SIZE, winning.fullSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_WINNING_TYPE_HIGH_CARD, winning.type);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(0x05, winning.setSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_ACE, winning.set[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_SEVEN, winning.set[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_QUEEN, winning.set[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_SIX, winning.set[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_NINE, winning.set[4]);
|
||||
}
|
||||
|
||||
void test_pokerWinnerGetForPlayer_should_CalculatePair(void) {
|
||||
poker2_t poker;
|
||||
uint8_t i;
|
||||
poker2player_t *player;
|
||||
poker2playerwinning_t winning;
|
||||
|
||||
pokerInit(&poker);
|
||||
i = pokerPlayerAdd(&poker);
|
||||
player = poker.players + i;
|
||||
|
||||
poker.communitySize = 5;
|
||||
poker.community[0] = CARD_HEARTS_QUEEN;
|
||||
poker.community[1] = CARD_CLUBS_TWO;
|
||||
poker.community[2] = CARD_DIAMONDS_ACE;
|
||||
poker.community[3] = CARD_SPADES_QUEEN;
|
||||
poker.community[4] = CARD_HEARTS_SIX;
|
||||
|
||||
player->cardCount = 2;
|
||||
player->cards[0] = CARD_CLUBS_FOUR;
|
||||
player->cards[1] = CARD_DIAMONDS_SEVEN;
|
||||
|
||||
pokerWinnerGetForPlayer(&poker, player, &winning);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_WINNING_FULL_SIZE, winning.fullSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_WINNING_TYPE_PAIR, winning.type);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(0x05, winning.setSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_ACE, winning.set[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_SEVEN, winning.set[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_QUEEN, winning.set[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_SIX, winning.set[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, winning.set[4]);
|
||||
|
||||
poker.community[3] = CARD_SPADES_NINE;
|
||||
player->cards[0] = CARD_HEARTS_TWO;
|
||||
|
||||
pokerWinnerGetForPlayer(&poker, player, &winning);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_WINNING_TYPE_PAIR, winning.type);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x05, winning.setSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_CLUBS_TWO, winning.set[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DIAMONDS_ACE, winning.set[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_QUEEN, winning.set[2]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_HEARTS_TWO, winning.set[3]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_NINE, winning.set[4]);
|
||||
}
|
||||
|
||||
int test_poker() {
|
||||
UNITY_BEGIN();
|
||||
|
||||
@ -850,12 +1039,16 @@ int test_poker() {
|
||||
RUN_TEST(test_pokerPlayerBetPot_should_AddChipsToThePot);
|
||||
RUN_TEST(test_pokerPlayerBetPot_should_UpdatePlayerState);
|
||||
RUN_TEST(test_pokerPlayerBet_should_BetToTheActivePot);
|
||||
RUN_TEST(test_pokerPlayerCanCheck_should_CompareThePotAndPlayerBet);
|
||||
RUN_TEST(test_pokerTurnFold_should_ReturnAFoldAction);
|
||||
RUN_TEST(test_pokerTurnBet_should_ReturnACheckAction);
|
||||
RUN_TEST(test_pokerTurnBet_should_ReturnAnAllInAction);
|
||||
RUN_TEST(test_pokerTurnBet_should_ReturnACallAction);
|
||||
RUN_TEST(test_pokerTurnBet_should_ReturnARaiseAction);
|
||||
|
||||
RUN_TEST(test_pokerHandGetFull_should_ReturnTheFullHand);
|
||||
RUN_TEST(test_pokerWinnerFillRemaining_should_FillTheRestOfTheArray);
|
||||
RUN_TEST(test_pokerWinnerGetForPlayer_should_CalculateHighCard);
|
||||
RUN_TEST(test_pokerWinnerGetForPlayer_should_CalculatePair);
|
||||
|
||||
return UNITY_END();
|
||||
}
|
Reference in New Issue
Block a user