From d2b68c3b726027a3719baa5e33cfacdb4a693ebd Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Sun, 3 Oct 2021 18:53:09 -0700 Subject: [PATCH] Even more tests. --- test/poker2/poker.c | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/test/poker2/poker.c b/test/poker2/poker.c index 83b7e35b..33c73fca 100644 --- a/test/poker2/poker.c +++ b/test/poker2/poker.c @@ -486,6 +486,52 @@ void test_pokerPlayerDoesNeedToBetThisRound_should_CheckCallValue(void) { TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, second)); } +void test_pokerPlayerDoesNeedToBetThisRound_should_CheckWhetherHasBetYet(void) { + poker2_t poker; + uint8_t first, second; + pokerInit(&poker); + first = pokerPlayerAdd(&poker); + second = pokerPlayerAdd(&poker); + pokerPlayerChipsAdd(poker.players + first, 10000); + pokerPlayerChipsAdd(poker.players + second, 10000); + + TEST_ASSERT_EQUAL(true, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(true, pokerPlayerDoesNeedToBetThisRound(&poker, second)); + + pokerPlayerBet(&poker, first, 100); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(true, pokerPlayerDoesNeedToBetThisRound(&poker, second)); + + pokerPlayerBet(&poker, second, 100); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, second)); +} + +void test_pokerPlayerDoesNeedToBetThisRound_should_IgnoreFoldedPlayers(void) { + poker2_t poker; + uint8_t first, second; + pokerInit(&poker); + first = pokerPlayerAdd(&poker); + second = pokerPlayerAdd(&poker); + pokerPlayerChipsAdd(poker.players + first, 10000); + pokerPlayerChipsAdd(poker.players + second, 10000); + + TEST_ASSERT_EQUAL(true, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(true, pokerPlayerDoesNeedToBetThisRound(&poker, second)); + + pokerPlayerBet(&poker, first, 100); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(true, pokerPlayerDoesNeedToBetThisRound(&poker, second)); + + poker.players[second].state |= POKER_PLAYER_STATE_FOLDED; + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, second)); + + pokerPlayerBet(&poker, first, 100); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, first)); + TEST_ASSERT_EQUAL(false, pokerPlayerDoesNeedToBetThisRound(&poker, second)); +} + void test_pokerPlayerBetPot_should_AddChipsToThePot(void) { poker2_t poker; poker2pot_t *pot; @@ -572,6 +618,8 @@ int test_poker() { RUN_TEST(test_pokerPlayerDealAll_should_NotDealToOutPlayers); RUN_TEST(test_pokerPlayerDealAll_should_NotDealToFoldedPlayers); RUN_TEST(test_pokerPlayerDoesNeedToBetThisRound_should_CheckCallValue); + RUN_TEST(test_pokerPlayerDoesNeedToBetThisRound_should_CheckWhetherHasBetYet); + RUN_TEST(test_pokerPlayerDoesNeedToBetThisRound_should_IgnoreFoldedPlayers); RUN_TEST(test_pokerPlayerBetPot_should_AddChipsToThePot); RUN_TEST(test_pokerPlayerBetPot_should_UpdatePlayerState); RUN_TEST(test_pokerPlayerBet_should_BetToTheActivePot);