More poker tests.
This commit is contained in:
@ -10,8 +10,11 @@
|
||||
void test_pokerInit_should_InitializePokerGame(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
TEST_ASSERT_EQUAL_INT8(0, poker.playerCount);
|
||||
TEST_ASSERT_EQUAL_INT8(0, poker.state);
|
||||
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);
|
||||
}
|
||||
|
||||
void test_pokerResetRound_should_ResetTheRound(void) {
|
||||
@ -31,6 +34,104 @@ void test_pokerResetRound_should_ResetTheRound(void) {
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.potCount);
|
||||
}
|
||||
|
||||
void test_pokerNewDealer_should_FindANewDealer(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerBigBlind);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(3, poker.playerBigBlind);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(3, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(4, poker.playerBigBlind);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(3, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(4, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerBigBlind);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(4, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.playerBigBlind);
|
||||
}
|
||||
|
||||
void test_pokerNewDealer_should_SkipOutPlayers(void) {
|
||||
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerAdd(&poker);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(3, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerBigBlind);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(3, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.playerBigBlind);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.playerDealer);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.playerSmallBlind);
|
||||
TEST_ASSERT_EQUAL_UINT8(3, poker.playerBigBlind);
|
||||
}
|
||||
|
||||
void test_pokerTakeBlinds_should_TakeTheBlinds(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 0)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 1)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 2)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 3)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 4)->chips);
|
||||
|
||||
pokerTakeBlinds(&poker, 100, 200);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 0)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 1)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(900, (poker.players + 2)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(800, (poker.players + 3)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 4)->chips);
|
||||
|
||||
pokerNewDealer(&poker);
|
||||
pokerTakeBlinds(&poker, 100, 200);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 0)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(1000, (poker.players + 1)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(900, (poker.players + 2)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(700, (poker.players + 3)->chips);
|
||||
TEST_ASSERT_EQUAL_INT32(800, (poker.players + 4)->chips);
|
||||
}
|
||||
|
||||
void test_pokerPotAdd_should_AddAPot(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
@ -90,7 +191,7 @@ void test_pokerPlayerAdd_should_ResetThePlayer(void) {
|
||||
|
||||
player = poker.players + pokerPlayerAdd(&poker);
|
||||
TEST_ASSERT_EQUAL_INT32(0, player->chips);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, player->state);
|
||||
TEST_ASSERT_EQUAL_UINT8(POKER_PLAYER_STATE_OUT, player->state);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, player->cardCount);
|
||||
}
|
||||
|
||||
@ -189,23 +290,24 @@ void test_pokerPlayerChipsAdd_should_TurnOutStateOff(void) {
|
||||
player->state |= POKER_PLAYER_STATE_OUT;
|
||||
TEST_ASSERT_BITS_HIGH(POKER_PLAYER_STATE_OUT, player->state);
|
||||
pokerPlayerChipsAdd(player, 32);
|
||||
TEST_ASSERT_BIT_LOW(POKER_PLAYER_STATE_OUT, player->state);
|
||||
TEST_ASSERT_BITS_LOW(POKER_PLAYER_STATE_OUT, player->state);
|
||||
}
|
||||
|
||||
void test_pokerPlayerDealAll_should_DealCardsToEveryone(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DECK_SIZE, poker.deckSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[0].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[1].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[2].cardCount);
|
||||
|
||||
pokerPlayerDealAll(&poker, 0x01);
|
||||
pokerPlayerDealAll(&poker, 1);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DECK_SIZE - 3, poker.deckSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.players[0].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.players[1].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(1, poker.players[2].cardCount);
|
||||
@ -219,9 +321,9 @@ void test_pokerPlayerDealAll_should_DealMultipleCardsToEveryone(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DECK_SIZE, poker.deckSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[0].cardCount);
|
||||
@ -232,13 +334,55 @@ void test_pokerPlayerDealAll_should_DealMultipleCardsToEveryone(void) {
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.players[2].cardCount);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_ACE, poker.players[0].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_KING, poker.players[0].cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, poker.players[1].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_JACK, poker.players[1].cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_TEN, poker.players[2].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_KING, poker.players[1].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, poker.players[2].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_JACK, poker.players[0].cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_TEN, poker.players[1].cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_NINE, poker.players[2].cards[1]);
|
||||
}
|
||||
|
||||
void test_pokerPlayerDealAll_should_NotDealToOutPlayers(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerAdd(&poker);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_DECK_SIZE, poker.deckSize);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[0].cardCount);
|
||||
|
||||
pokerPlayerDealAll(&poker, 0x02);
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.players[0].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[1].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.players[2].cardCount);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_ACE, poker.players[0].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_KING, poker.players[2].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, poker.players[0].cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_JACK, poker.players[2].cards[1]);
|
||||
}
|
||||
|
||||
void test_pokerPlayerDealAll_should_NotDealToFoldedPlayers(void) {
|
||||
poker2_t poker;
|
||||
pokerInit(&poker);
|
||||
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 100);
|
||||
poker.players[0].state |= POKER_PLAYER_STATE_FOLDED;
|
||||
|
||||
pokerPlayerDealAll(&poker, 2);
|
||||
TEST_ASSERT_EQUAL_UINT8(0, poker.players[0].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.players[1].cardCount);
|
||||
TEST_ASSERT_EQUAL_UINT8(2, poker.players[2].cardCount);
|
||||
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_ACE, poker.players[1].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_KING, poker.players[2].cards[0]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_QUEEN, poker.players[1].cards[1]);
|
||||
TEST_ASSERT_EQUAL_UINT8(CARD_SPADES_JACK, poker.players[2].cards[1]);
|
||||
}
|
||||
|
||||
void test_pokerPlayerBetPot_should_AddChipsToThePot(void) {
|
||||
poker2_t poker;
|
||||
poker2pot_t *pot;
|
||||
@ -259,6 +403,21 @@ void test_pokerPlayerBetPot_should_AddChipsToThePot(void) {
|
||||
TEST_ASSERT_EQUAL_INT32(900, player->chips);
|
||||
}
|
||||
|
||||
void test_pokerPlayerBetPot_should_UpdatePlayerState(void) {
|
||||
poker2_t poker;
|
||||
uint8_t i;
|
||||
poker2player_t *player;
|
||||
|
||||
pokerInit(&poker);
|
||||
i = pokerPlayerAdd(&poker);
|
||||
player = poker.players + i;
|
||||
pokerPlayerChipsAdd(player, 1000);
|
||||
|
||||
TEST_ASSERT_BITS_LOW(POKER_PLAYER_STATE_HAS_BET_THIS_ROUND, player->state);
|
||||
pokerPlayerBetPot(&poker, poker.pots, i, 100);
|
||||
TEST_ASSERT_BITS_HIGH(POKER_PLAYER_STATE_HAS_BET_THIS_ROUND, player->state);
|
||||
}
|
||||
|
||||
void test_pokerPlayerBet_should_BetToTheActivePot(void) {
|
||||
poker2_t poker;
|
||||
poker2pot_t *pot;
|
||||
@ -287,6 +446,9 @@ int test_poker() {
|
||||
RUN_TEST(test_pokerResetRound_should_ResetTheRound);
|
||||
RUN_TEST(test_pokerPotAdd_should_AddAPot);
|
||||
RUN_TEST(test_pokerPotAdd_should_ResetThePot);
|
||||
RUN_TEST(test_pokerNewDealer_should_FindANewDealer);
|
||||
RUN_TEST(test_pokerNewDealer_should_SkipOutPlayers);
|
||||
RUN_TEST(test_pokerTakeBlinds_should_TakeTheBlinds);
|
||||
RUN_TEST(test_pokerPotAddPlayer_should_AddAPlayer);
|
||||
RUN_TEST(test_pokerPlayerAdd_should_ResetThePlayer);
|
||||
RUN_TEST(test_pokerTurn_should_TurnCardsFromTheDeck);
|
||||
@ -296,7 +458,10 @@ int test_poker() {
|
||||
RUN_TEST(test_pokerPlayerChipsAdd_should_TurnOutStateOff);
|
||||
RUN_TEST(test_pokerPlayerDealAll_should_DealCardsToEveryone);
|
||||
RUN_TEST(test_pokerPlayerDealAll_should_DealMultipleCardsToEveryone);
|
||||
RUN_TEST(test_pokerPlayerDealAll_should_NotDealToOutPlayers);
|
||||
RUN_TEST(test_pokerPlayerDealAll_should_NotDealToFoldedPlayers);
|
||||
RUN_TEST(test_pokerPlayerBetPot_should_AddChipsToThePot);
|
||||
RUN_TEST(test_pokerPlayerBetPot_should_UpdatePlayerState);
|
||||
RUN_TEST(test_pokerPlayerBet_should_BetToTheActivePot);
|
||||
|
||||
return UNITY_END();
|
||||
|
Reference in New Issue
Block a user