Added more poker tests.
This commit is contained in:
@ -11,7 +11,6 @@ void test_pokerInit_should_InitializePokerGame(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.state);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerBigBlind);
|
||||
@ -532,6 +531,124 @@ void test_pokerPlayerDoesNeedToBetThisRound_should_IgnoreFoldedPlayers(void) {
|
||||
TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, second));
|
||||
}
|
||||
|
||||
void test_pokerPlayerGetRemainingBetter_should_ReturnRemainingBetters(void) {
|
||||
poker2_t poker;
|
||||
uint8_t p0, p1, p2, p3, p4;
|
||||
pokerInit(&poker);
|
||||
|
||||
|
||||
p0 = pokerPlayerAdd(&poker);
|
||||
p1 = pokerPlayerAdd(&poker);
|
||||
p2 = pokerPlayerAdd(&poker);
|
||||
p3 = pokerPlayerAdd(&poker);
|
||||
p4 = pokerPlayerAdd(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + p0, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p1, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p2, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p3, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p4, 10000);
|
||||
pokerNewDealer(&poker);
|
||||
|
||||
// Blind + 1
|
||||
TEST_ASSERT_EQUAL(0x04, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// Blind + 2
|
||||
pokerPlayerBet(&poker, 0x04, pokerGetCallValue(&poker));
|
||||
TEST_ASSERT_EQUAL(0x00, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// Blind + 3
|
||||
pokerPlayerBet(&poker, 0x00, pokerGetCallValue(&poker));
|
||||
TEST_ASSERT_EQUAL(0x01, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// Blind + 4 / Small Blind
|
||||
pokerPlayerBet(&poker, 0x01, pokerGetCallValue(&poker));
|
||||
TEST_ASSERT_EQUAL(0x02, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// Blind + 5 / Big Blind
|
||||
pokerPlayerBet(
|
||||
&poker, 0x02, pokerGetCallValue(&poker) - poker.players[0x01].currentBet
|
||||
);
|
||||
TEST_ASSERT_EQUAL(0x03, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// No remaining players.
|
||||
pokerPlayerBet(&poker, 0x03, 0);
|
||||
TEST_ASSERT_EQUAL(0xFF, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// Raise
|
||||
pokerPlayerBet(&poker, 0x03, 100);
|
||||
TEST_ASSERT_EQUAL(0x04, pokerPlayerGetRemainingBetter(&poker));
|
||||
|
||||
// Raise
|
||||
pokerPlayerBet(&poker, 0x04, 100);
|
||||
TEST_ASSERT_EQUAL(0x00, pokerPlayerGetRemainingBetter(&poker));
|
||||
}
|
||||
|
||||
void test_pokerPlayerGetNextBetter_should_GetTheNextBetter(void) {
|
||||
poker2_t poker;
|
||||
uint8_t p0, p1, p2, p3, p4;
|
||||
uint8_t better;
|
||||
pokerInit(&poker);
|
||||
|
||||
p0 = pokerPlayerAdd(&poker);
|
||||
p1 = pokerPlayerAdd(&poker);
|
||||
p2 = pokerPlayerAdd(&poker);
|
||||
p3 = pokerPlayerAdd(&poker);
|
||||
p4 = pokerPlayerAdd(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + p0, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p1, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p2, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p3, 10000);
|
||||
pokerPlayerChipsAdd(poker.players + p4, 10000);
|
||||
pokerNewDealer(&poker);
|
||||
|
||||
// Start at blind+1
|
||||
better = poker.playerBigBlind;
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x04, better);
|
||||
|
||||
// Blind+2
|
||||
pokerPlayerBet(&poker, better, pokerGetCallValue(&poker));
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x00, better);
|
||||
|
||||
// BLind+3
|
||||
pokerPlayerBet(&poker, better, pokerGetCallValue(&poker));
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x01, better);
|
||||
|
||||
// Dealer
|
||||
pokerPlayerBet(&poker, better, pokerGetCallValue(&poker));
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x02, better);
|
||||
|
||||
// Small blind
|
||||
pokerPlayerBet(
|
||||
&poker, better, pokerGetCallValue(&poker) - poker.players[0x02].currentBet
|
||||
);
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x03, better);
|
||||
|
||||
// Big Blind
|
||||
pokerPlayerBet(
|
||||
&poker, better, pokerGetCallValue(&poker) - poker.players[0x03].currentBet
|
||||
);
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0xFF, better);
|
||||
|
||||
// Raise
|
||||
better = poker.playerBigBlind;
|
||||
pokerPlayerBet(&poker, better, 100);
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x04, better);
|
||||
|
||||
// Raise
|
||||
pokerPlayerBet(&poker, better, 100);
|
||||
better = pokerPlayerGetNextBetter(&poker, better);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x00, better);
|
||||
}
|
||||
|
||||
void test_pokerPlayerBetPot_should_AddChipsToThePot(void) {
|
||||
poker2_t poker;
|
||||
poker2pot_t *pot;
|
||||
@ -620,6 +737,8 @@ int test_poker() {
|
||||
RUN_TEST(test_pokerPlayerDoesNeedToBetThisRound_should_CheckCallValue);
|
||||
RUN_TEST(test_pokerPlayerDoesNeedToBetThisRound_should_CheckWhetherHasBetYet);
|
||||
RUN_TEST(test_pokerPlayerDoesNeedToBetThisRound_should_IgnoreFoldedPlayers);
|
||||
RUN_TEST(test_pokerPlayerGetRemainingBetter_should_ReturnRemainingBetters);
|
||||
RUN_TEST(test_pokerPlayerGetNextBetter_should_GetTheNextBetter);
|
||||
RUN_TEST(test_pokerPlayerBetPot_should_AddChipsToThePot);
|
||||
RUN_TEST(test_pokerPlayerBetPot_should_UpdatePlayerState);
|
||||
RUN_TEST(test_pokerPlayerBet_should_BetToTheActivePot);
|
||||
|
Reference in New Issue
Block a user