/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "turn.h" void test_pokerTurnFold_should_ReturnAFoldAction(void) { poker_t poker; pokerturn_t turn; pokerInit(&poker); pokerPlayerAdd(&poker); turn = pokerTurnFold(&poker, 0x00); TEST_ASSERT_EQUAL_INT32(0, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_FOLD, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); } void test_pokerTurnBet_should_ReturnACheckAction(void) { poker_t poker; pokerturn_t turn; pokerInit(&poker); pokerPlayerAdd(&poker); turn = pokerTurnBet(&poker, 0x00, 0); TEST_ASSERT_EQUAL_INT32(0, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_CHECK, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); } void test_pokerTurnBet_should_ReturnAnAllInAction(void) { poker_t poker; pokerturn_t turn; pokerInit(&poker); pokerPlayerAdd(&poker); pokerPlayerChipsAdd(poker.players, 500); turn = pokerTurnBet(&poker, 0x00, 500); TEST_ASSERT_EQUAL_INT32(500, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_ALL_IN, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); pokerPlayerChipsAdd(poker.players, 500); turn = pokerTurnBet(&poker, 0x00, 1001); TEST_ASSERT_EQUAL_INT32(1000, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_ALL_IN, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); } void test_pokerTurnBet_should_ReturnACallAction(void) { poker_t poker; pokerturn_t turn; pokerInit(&poker); pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000); pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000); pokerBetForPlayer(&poker, 0, 300); pokerBetForPlayer(&poker, 1, 500); turn = pokerTurnBet(&poker, 0x00, 200); TEST_ASSERT_EQUAL_INT32(200, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_CALL, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); pokerBetForPlayer(&poker, 0, 300); turn = pokerTurnBet(&poker, 0x01, 100); TEST_ASSERT_EQUAL_INT32(100, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_CALL, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); } void test_pokerTurnBet_should_ReturnARaiseAction(void) { poker_t poker; pokerturn_t turn; pokerInit(&poker); pokerPlayerChipsAdd(poker.players + pokerPlayerAdd(&poker), 1000); turn = pokerTurnBet(&poker, 0x00, 300); TEST_ASSERT_EQUAL_INT32(300, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_BET, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); turn = pokerTurnBet(&poker, 0x00, 200); TEST_ASSERT_EQUAL_INT32(200, turn.chips); TEST_ASSERT_EQUAL_UINT8(POKER_TURN_TYPE_BET, turn.type); TEST_ASSERT_EQUAL_FLOAT(1.0f, turn.confidence); } int test_turn_h() { UNITY_BEGIN(); 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); return UNITY_END(); }