Untitled
unknown
plain_text
18 days ago
3.1 kB
4
Indexable
#include <CUnit/CUnit.h> #include <CUnit/Basic.h> #include <stdio.h> #include <ctype.h> // Função a ser testada (com correções aplicadas) int coordenada_para_indices(char *coord, int *linha, int *coluna) { // Verifica se o caractere da coluna é válido ('a'-'z') if (coord[0] < 'a' || coord[0] > 'z') return 1; // Verifica se o caractere da linha é válido ('1'-'5') if (coord[1] < '1' || coord[1] > '5') return 1; // Converte as coordenadas para índices *coluna = coord[0] - 'a'; *linha = coord[1] - '1'; return 0; } // teste 1: Coordenadas válidas void teste_coordenadas_validas(void) { int linha, coluna; char coord[] = "a1"; CU_ASSERT_EQUAL(coordenada_para_indices(coord, &linha, &coluna), 0); CU_ASSERT_EQUAL(linha, 0); CU_ASSERT_EQUAL(coluna, 0); } // teste 2: Caractere de coluna inválido void teste_coluna_invalida(void) { int linha, coluna; char coord[] = "A1"; // 'A' não é uma coluna válida CU_ASSERT_EQUAL(coordenada_para_indices(coord, &linha, &coluna), 1); } // teste 3: Caractere de linha inválido void teste_linha_invalida(void) { int linha, coluna; char coord[] = "a0"; // '0' não é uma linha válida CU_ASSERT_EQUAL(coordenada_para_indices(coord, &linha, &coluna), 1); } // teste 4: Coluna fora dos limites void teste_coluna_fora_dos_limites(void) { int linha, coluna; char coord[] = "{1"; // '{' está fora dos limites para as colunas ('a'-'z') CU_ASSERT_EQUAL(coordenada_para_indices(coord, &linha, &coluna), 1); } // teste 5: Linha fora dos limites void teste_linha_fora_dos_limites(void) { int linha, coluna; char coord[] = "a6"; // '6' está fora dos limites para as linhas ('1'-'5') CU_ASSERT_EQUAL(coordenada_para_indices(coord, &linha, &coluna), 1); } // Função principal para configurar e rodar os testes int main() { // Inicializa o registro de testes do CUnit if (CUE_SUCCESS != CU_initialize_registry()) return CU_get_error(); // Adiciona um conjunto de testes ao registro CU_pSuite suite = CU_add_suite("TesteCoordenadaParaIndices", NULL, NULL); if (NULL == suite) { CU_cleanup_registry(); return CU_get_error(); } // Adiciona os casos de teste ao conjunto if ( (NULL == CU_add_test(suite, "teste_coordenadas_validas", teste_coordenadas_validas)) || (NULL == CU_add_test(suite, "teste_coluna_invalida", teste_coluna_invalida)) || (NULL == CU_add_test(suite, "teste_linha_invalida", teste_linha_invalida)) || (NULL == CU_add_test(suite, "teste_coluna_fora_dos_limites", teste_coluna_fora_dos_limites)) || (NULL == CU_add_test(suite, "teste_linha_fora_dos_limites", teste_linha_fora_dos_limites)) ) { CU_cleanup_registry(); return CU_get_error(); } // Roda todos os testes usando a interface básica CU_basic_set_mode(CU_BRM_VERBOSE); // Modo verbose CU_basic_run_tests(); // Limpeza e retorno CU_cleanup_registry(); return CU_get_error(); }
Editor is loading...
Leave a Comment