107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) 2021 Dominic Masters
 | 
						|
 * 
 | 
						|
 * This software is released under the MIT License.
 | 
						|
 * https://opensource.org/licenses/MIT
 | 
						|
 */
 | 
						|
 | 
						|
#include "poker.h"
 | 
						|
 | 
						|
void test_pokerInit_should_InitializePokerGame(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  pokerInit(&poker);
 | 
						|
  TEST_ASSERT_EQUAL_INT8(0, poker.playerCount);
 | 
						|
}
 | 
						|
 | 
						|
void test_pokerResetRound_should_ResetTheRound(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  pokerInit(&poker);
 | 
						|
  
 | 
						|
  poker.potCount = 0x03;
 | 
						|
  poker.graveSize = 0x10;
 | 
						|
  poker.communitySize = 0x03;
 | 
						|
  poker.deckSize = 0x0;
 | 
						|
 | 
						|
  pokerResetRound(&poker);
 | 
						|
 | 
						|
  TEST_ASSERT_NOT_EQUAL_UINT8(0, poker.deckSize);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, poker.graveSize);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, poker.communitySize);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(1, poker.potCount);
 | 
						|
}
 | 
						|
 | 
						|
void test_pokerPotAdd_should_AddAPot(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  pokerInit(&poker);
 | 
						|
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(1, poker.potCount);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(1, pokerPotAdd(&poker));
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(2, poker.potCount);
 | 
						|
}
 | 
						|
 | 
						|
void test_pokerPotAdd_should_ResetThePot(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  poker2pot_t *pot;
 | 
						|
  uint8_t i;
 | 
						|
  pokerInit(&poker);
 | 
						|
 | 
						|
  i = pokerPotAdd(&poker);
 | 
						|
  pot = poker.pots + i;
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, pot->playerCount);
 | 
						|
  TEST_ASSERT_EQUAL_INT32(0, pot->chips);
 | 
						|
}
 | 
						|
 | 
						|
void test_pokerPotAddPlayer_should_AddAPlayer(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  poker2pot_t *pot;
 | 
						|
 | 
						|
  pokerInit(&poker);
 | 
						|
  pokerPlayerAdd(&poker);
 | 
						|
  pokerPlayerAdd(&poker);
 | 
						|
 | 
						|
  pot = poker.pots + 0;
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, pot->playerCount);
 | 
						|
 | 
						|
  pokerPotAddPlayer(pot, 1);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(1, pot->playerCount);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0x01, pot->players[0]);
 | 
						|
 | 
						|
  pokerPotAddPlayer(pot, 0);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(2, pot->playerCount);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0x00, pot->players[1]);
 | 
						|
}
 | 
						|
 | 
						|
void test_pokerPlayerAdd_should_AddAPlayer(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  pokerInit(&poker);
 | 
						|
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, poker.playerCount);
 | 
						|
  TEST_ASSERT_EQUAL(0, pokerPlayerAdd(&poker));
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(1, poker.playerCount);
 | 
						|
  TEST_ASSERT_EQUAL(1, pokerPlayerAdd(&poker));
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(2, poker.playerCount);
 | 
						|
}
 | 
						|
 | 
						|
void test_pokerPlayerAdd_should_ResetThePlayer(void) {
 | 
						|
  poker2_t poker;
 | 
						|
  poker2player_t *player;
 | 
						|
  pokerInit(&poker);
 | 
						|
 | 
						|
  player = poker.players + pokerPlayerAdd(&poker);
 | 
						|
  TEST_ASSERT_EQUAL_INT32(0, player->chips);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, player->state);
 | 
						|
  TEST_ASSERT_EQUAL_UINT8(0, player->cardCount);
 | 
						|
}
 | 
						|
 | 
						|
int test_poker2() {
 | 
						|
  UNITY_BEGIN();
 | 
						|
 | 
						|
  RUN_TEST(test_pokerInit_should_InitializePokerGame);
 | 
						|
  RUN_TEST(test_pokerResetRound_should_ResetTheRound);
 | 
						|
  RUN_TEST(test_pokerPotAdd_should_AddAPot);
 | 
						|
  RUN_TEST(test_pokerPotAdd_should_ResetThePot);
 | 
						|
  RUN_TEST(test_pokerPotAddPlayer_should_AddAPlayer);
 | 
						|
  RUN_TEST(test_pokerPlayerAdd_should_ResetThePlayer);
 | 
						|
 | 
						|
  return UNITY_END();
 | 
						|
} |