/*!Testa a função de retirar a carta do final do baralho.*/ static char * test_retiraFim() { Baralho B = embaralhar(0); Baralho aux = B; lista penult; lista carta; while (aux->prox != NULL){ if (aux->prox->prox == NULL){ penult.carta = aux->carta; penult.naipe = aux->naipe; } aux = aux->prox; } carta = retiraFim(&B); mu_assert("FUNCAO retira_final - Erro! A carta que foi retirada nao estava no final!", (carta.carta == aux->carta) && (carta.naipe == aux->naipe)); aux = B; while (aux->prox != NULL){ aux = aux->prox; } mu_assert("FUNCAO retira_final - Erro! A penultima carta do baralho antes da remoção nao é a ultima carta do baralho atual", (penult.carta == aux->carta) && (penult.naipe == aux->naipe)); mu_assert("FUNCAO retira_final - Erro! A carta do final foi supostamente retirada mas o baralho continua com 52 cartas.", tamanho_baralho(B) == 51); return 0; }
/*!Testa a função que corta um determinado baralho em uma determinada posição. No teste foi usada a posicao 5.*/ static char * test_cortar(){ Baralho B = embaralhar(0); Baralho aux = B; lista carta_posicao, carta_final; int i = 0; while (i<5) { aux=aux->prox; i++; } carta_posicao = retiraInicio(&aux); B = cortar(B, 5); aux=B; carta_final = retiraFim(&aux); mu_assert("FUNCAO cortar - Erro! O baralho nao foi cortado corretamente.", (carta_posicao.carta == carta_final.carta) && (carta_posicao.naipe == carta_final.naipe)); mu_assert("FUNCAO cortar - Erro! O barlaho nao permaneceu com as 52 cartas.", tamanho_baralho(B)==52); return 0; }
int main(){ char *naipe[4] = {"Copas","Ouros","Paus","Espadas"}; //Cada elemento aponta para a 1° letra de cada string char *face[13] = {"As","Dois","Tres", "Quatro","Cinco","Seis","Sete","Oito","Nove","Dez","Valete","Dama", "Rei"}; int baralho[4][13] = {0}; srand(time(NULL));//semente para escolher números aleatórios embaralhar(baralho); distribuir(baralho, face, naipe); return 0; }
/*!Testa a função de embaralhar.*/ static char * test_embaralhar() { Baralho B = embaralhar(0); Baralho aux = B; int cartas[10]; char naipes [10]; int i, cont=0; mu_assert("FUNCAO embaralhar - Erro ao embaralhar. O baralho ficou nulo.", B != NULL); mu_assert("FUNCAO embaralhar - Erro ao embaralhar. O baralho nao contem 52 cartas.", tamanho_baralho(B) == 52); for (i=0; i<5; i++){ cartas[i]=aux->carta; naipes[i]=aux->naipe; aux=aux->prox; } B = embaralhar(B); mu_assert("FUNCAO embaralhar - Erro ao embaralhar. Depois de outra embaralhada o baralho nao ficou com 52 cartas", tamanho_baralho(B) == 52); aux=B; for (i=0; i<10; i++){ if ((cartas[i]==aux->carta) && (naipes[i]==aux->naipe)){ cont++; } aux=aux->prox; } mu_assert("FUNCAO embaralhar - Erro ao embaralhar. As cartas nao foram embaralhadas corretamente", cont<7); return 0; }
/*!Testa a função de retirar a carta do inicio do baralho.*/ static char * test_retiraInicio() { Baralho B = embaralhar(0); Baralho aux = B; lista carta; lista segundaCarta; segundaCarta.carta = B->prox->carta; segundaCarta.naipe = B->prox->naipe; carta = retiraInicio(&B); mu_assert("FUNCAO retira_inicio - Erro! A carta que foi retirada nao estava no inicio.", (carta.carta == aux->carta) && (carta.naipe == aux->naipe)); mu_assert("FUNCAO retira_inicio - Erro! A segunda carta do baralho antes da remoção não é a primeira no baralho atual.", (segundaCarta.carta == B->carta) && (segundaCarta.naipe == B->naipe)); mu_assert("FUNCAO retira_inicio - Erro! A carta do inicio foi supostamente retirada mas o baralho continua com 52 cartas.", tamanho_baralho(B) == 51); return 0; }
/*!Testa a função que retira a carta do inicio do baralho e coloca a mesma no final do baralho.*/ static char * test_retiraInicio_insereFim(){ Baralho B = embaralhar(0); Baralho aux = B; lista carta; lista segundaCarta; segundaCarta.carta = B->prox->carta; segundaCarta.naipe = B->prox->naipe; retiraInicio_insereFim(&B); carta = retiraFim(&aux); mu_assert("FUNCAO retiraInicio_insereFim - Erro! A carta nao foi retirada do inicio e inserida no fim.", (carta.carta == aux->carta) && (carta.naipe == aux->naipe)); mu_assert("FUNCAO retira_inicio_insereFim - Erro! A segunda carta do baralho antes da remoção e inserção no fim não é a primeira no baralho atual.", (segundaCarta.carta == B->carta) && (segundaCarta.naipe == B->naipe)); mu_assert("FUNCAO retiraInicio_insereFim - Erro! A carta do inicio foi supostamente retirada e inserida no fim mas o baralho nao contem 52 cartas.", tamanho_baralho(B) == 52); return 0; }