//! Testando a funcao insereGerador //! Caso vazio TEST(insereGerador, Vazio){ Gerador *gerador = criaListaGerador(); char *entrada = (char *) malloc(sizeof(char) * strlen("G Usina1 5 5 100 1000")); char *nome = (char *) malloc(sizeof(char) * strlen("Usina1")); strcpy(entrada,"G Usina1 5 5 100 1000"); strcpy(nome, "Usina1"); gerador = insereGerador(entrada,gerador); ASSERT_TRUE(strcmp(nome,gerador->nome) == 0); EXPECT_EQ(gerador->posicao[0], 5); EXPECT_EQ(gerador->posicao[1], 5); EXPECT_EQ(gerador->recursoProduzido, 100); EXPECT_EQ(gerador->custo, 1000); }
//! Testando a funcao recursoProduzidoTotal TEST(recursoProduzidoTotal, geral){ Gerador *gerador = criaListaGerador(); int soma = 0; char *entrada = (char *) malloc(sizeof(char) * strlen("G Usina1 5 5 100 1000")); strcpy(entrada,"G Usina1 5 5 100 1000"); gerador = insereGerador(entrada,gerador); soma += gerador->recursoProduzido; strcpy(entrada,"G Usina2 5 15 388 788"); gerador = insereGerador(entrada,gerador); soma += gerador->recursoProduzido; //! Inicio do teste em si ASSERT_TRUE(recursoProduzidoTotal(gerador) == soma); soma++; ASSERT_TRUE(recursoProduzidoTotal(gerador) != soma); }
//! Testando a funcao numeroGeradores TEST(numeroGeradores, geral){ Gerador *gerador = criaListaGerador(); int soma = 0; char *entrada = (char *) malloc(sizeof(char) * strlen("G Usina1 5 5 100 1000")); strcpy(entrada,"G Usina1 5 5 100 1000"); gerador = insereGerador(entrada,gerador); soma++; strcpy(entrada,"G Usina2 5 15 388 788"); gerador = insereGerador(entrada,gerador); soma++; //! Inicio do teste em si ASSERT_TRUE(numeroGeradores(gerador) == soma); soma++; ASSERT_TRUE(numeroGeradores(gerador) != soma); }
//! Caso naoVazio TEST(insereGerador, naoVazio){ Gerador *gerador = criaListaGerador(); char *entrada = (char *) malloc(sizeof(char) * strlen("G Usina1 5 5 100 1000")); char *nome = (char *) malloc(sizeof(char) * strlen("Usina1")); strcpy(entrada,"G Usina1 5 5 100 1000"); strcpy(nome, "Usina1"); gerador = insereGerador(entrada,gerador); ASSERT_TRUE(strcmp(nome,gerador->nome) == 0); EXPECT_EQ(gerador->posicao[0], 5); EXPECT_EQ(gerador->posicao[1], 5); EXPECT_EQ(gerador->recursoProduzido, 100); EXPECT_EQ(gerador->custo, 1000); //! Inicio do teste em si strcpy(entrada,"G Usina2 5 15 388 788"); strcpy(nome, "Usina2"); gerador = insereGerador(entrada,gerador); ASSERT_TRUE(strcmp(nome,gerador->nome) == 0); EXPECT_EQ(gerador->posicao[0], 5); EXPECT_EQ(gerador->posicao[1], 15); EXPECT_EQ(gerador->recursoProduzido, 388); EXPECT_EQ(gerador->custo, 788); strcpy(entrada,"G Usina1 5 5 100 1000"); strcpy(nome, "Usina1"); gerador = gerador->proximo; ASSERT_TRUE(strcmp(nome,gerador->nome) == 0); EXPECT_EQ(gerador->posicao[0], 5); EXPECT_EQ(gerador->posicao[1], 5); EXPECT_EQ(gerador->recursoProduzido, 100); EXPECT_EQ(gerador->custo, 1000); }
int main(){ FILE *fp; Cidade *listaCidades = criaListaCidade(); Gerador *listaGeradores = criaListaGerador(); Interconexao *listaInterconexoes = criaListaInterconexao(); Adaptador *listaAdaptadores = criaListaAdaptador(); Relatorio relatorio; int i, tempoSimulacao = 2; char arquivo[100]; char str[100]; //!< String auxiliar para obter registros printf("Rede de distribuicao\n"); do{ //! AE: o nome do arquivo nao eh valido printf("Digite o caminho para o arquivo (a partir de ./app/src):\n"); scanf("%s",arquivo); getchar(); fp = fopen(arquivo,"r");//!< Abre arquivo de entrada } while(fp == NULL); //! AE: o nome do arquivo eh valido printf("Digite o tempo desejado de simulacao\n"); scanf("%d",&tempoSimulacao); do{ //! AE: o arquivo nao chegou ao fim if(fgets(str,100,fp)!=NULL){ //! AE: a linha (registro) obtido do arquivo possui conteudo switch (str[0]) { case 'C': //! AE: O registro obtido eh do tipo Cidade listaCidades = insereCidade(str,listaCidades); break; case 'G': //! AE: O registro obtido eh do tipo Gerador listaGeradores = insereGerador(str,listaGeradores); break; case 'I': //! AE: O registro obtido eh do tipo Interconexao listaInterconexoes = insereInterconexao(str,listaInterconexoes); break; case 'A': //! AE: O registro obtido eh do tipo Adaptador listaAdaptadores = insereAdaptador(str,listaAdaptadores); break; default: break; } } //! AS: a linha (registro) obtido do arquivo nao possui conteudo, ou seja, o arquivo chegou ao fim } while(!feof(fp)); //! AS: o arquivo chegou ao fim fclose(fp); //! Comentarios de argumentacao /** * Conectando e verificando as listas **/ conecta(listaCidades,listaGeradores,listaInterconexoes,listaAdaptadores); verifica(listaCidades,listaGeradores,listaInterconexoes,listaAdaptadores); inicializa(listaGeradores,listaInterconexoes,listaAdaptadores,listaCidades); //! Comentarios de argumentacao /** * Iniciando a interface **/ mvprintw(0,0,"Pressione enter para comecar!"); getch(); mvprintw(0,0," "); srand(1); for(i=0;i<tempoSimulacao;i++){ // AE: tempo de simulacao nao chegou ao fim start_color(); init_pair(1, COLOR_GREEN, COLOR_BLACK); attron(COLOR_PAIR(1)); mvprintw(1,100,"%d segundos", i); zerarCidades(listaCidades); zerarAdaptadores(listaAdaptadores); zerarInterconexoes(listaInterconexoes); gerenciaFalhas(listaInterconexoes); mandarRecursoProduzido(listaGeradores); defineDistribuicao(listaAdaptadores); mandarRecursoAdaptado(listaAdaptadores); gerenciaRecursoRecebido(listaCidades); atualizaCidades(listaCidades); atualizaInterconexoes(listaInterconexoes); atualizaGeradores(listaGeradores); atualizaAdaptadores(listaAdaptadores); getch(); } // AS: tempo de simulacao chegou ao fim mvprintw(0,0," "); mvprintw(1,0," "); mvprintw(0,0,"Pressione enter para finalizar!"); getch(); endwin(); //! Comentarios de argumentacao /** * Finalizando a interface **/ //! Comentarios de argumentacao /** * Imprimindo as listas obtidas a partir do arquivo de entrada **/ printf("\nLista de cidades:\n");imprimeListaCidade(listaCidades); printf("\nLista de geradores:\n");imprimeListaGerador(listaGeradores); printf("\nLista de interconexões:\n");imprimeListaInterconexao(listaInterconexoes); printf("\nLista de adaptadores:\n");imprimeListaAdaptador(listaAdaptadores); //! Comentarios de argumentacao /** * Preenchimento do relatorio **/ fp = fopen("../../RELATORIO.txt","w");//!< Abre arquivo de entrada fprintf(fp,"Relatório:\n\n"); printf("Relatório:\n\n"); relatorio.tempoTotalSimulacao = tempoSimulacao; fprintf(fp,"Tempo total da simulação: %d segundos\n", relatorio.tempoTotalSimulacao); printf("Tempo total da simulação: %d segundos\n", relatorio.tempoTotalSimulacao); relatorio.custoTotalSimulacao = custoGeradores(listaGeradores)*tempoSimulacao + custoGastoComConserto(listaInterconexoes); fprintf(fp,"Custo total na simulação: %d\n", relatorio.custoTotalSimulacao); printf("Custo total na simulação: %d\n", relatorio.custoTotalSimulacao); relatorio.totalGeradores = numeroGeradores(listaGeradores); fprintf(fp,"Total de geradores: %d\n", relatorio.totalGeradores); printf("Total de geradores: %d\n", relatorio.totalGeradores); relatorio.energiaTotalGerada = recursoProduzidoTotal(listaGeradores) * tempoSimulacao; fprintf(fp,"Energia total gerada: %d\n", relatorio.energiaTotalGerada); printf("Energia total gerada: %d\n", relatorio.energiaTotalGerada); relatorio.totalCidades = numeroCidades(listaCidades); fprintf(fp,"Total de cidades: %d\n", relatorio.totalCidades); printf("Total de cidades: %d\n", relatorio.totalCidades); relatorio.energiaGastaCidades = recursoGastoTotal(listaCidades); fprintf(fp,"Energia total gasta pelas cidades: %d\n", relatorio.energiaGastaCidades); printf("Energia total gasta pelas cidades: %d\n", relatorio.energiaGastaCidades); relatorio.tamanhoTotalInterconexoes = tamanhoTotalConexao(listaInterconexoes); fprintf(fp,"Tamanho total das interconexões: %.2f\n", relatorio.tamanhoTotalInterconexoes); printf("Tamanho total das interconexões: %.2f\n", relatorio.tamanhoTotalInterconexoes); relatorio.numeroFalhaInterconexoes = numeroTotalFalhas(listaInterconexoes); fprintf(fp,"Número de falhas nas interconexões: %d\n", relatorio.numeroFalhaInterconexoes); printf("Número de falhas nas interconexões: %d\n", relatorio.numeroFalhaInterconexoes); relatorio.numeroCidadesNegativadas = numeroCidadesNegativadas(listaCidades); fprintf(fp,"Número de cidades que ficaram com menos recurso que o necessário: %d\n",relatorio.numeroCidadesNegativadas); printf("Número de cidades que ficaram com menos recurso que o necessário: %d\n",relatorio.numeroCidadesNegativadas); relatorio.tempoSemRecurso = tempoSemRecursoNecessario(listaCidades); fprintf(fp,"Tempo que ficaram sem recurso: %d\n",relatorio.tempoSemRecurso); printf("Tempo que ficaram sem recurso: %d\n",relatorio.tempoSemRecurso); relatorio.numeroCidadesNoVermelho = numeroCidadesNoVermelho(listaCidades); fprintf(fp,"Número de cidades que ficaram com menos de 30%% dos recursos: %d\n",relatorio.numeroCidadesNoVermelho); printf("Número de cidades que ficaram com menos de 30%% dos recursos: %d\n",relatorio.numeroCidadesNoVermelho); relatorio.tempoCidadesNoVermelho = tempoCidadesNoVermelho(listaCidades); fprintf(fp,"Tempo que ficaram com menos de 30%% dos recurso: %d\n", relatorio.tempoCidadesNoVermelho); printf("Tempo que ficaram com menos de 30%% dos recurso: %d\n", relatorio.tempoCidadesNoVermelho); fclose(fp); printf("\n\nRelatório gerado!\n\n"); //! Comentarios de argumentacao /** * Desalocando as listas obtidas **/ liberaListaCidade(listaCidades); liberaListaGerador(listaGeradores); liberaListaInterconexao(listaInterconexoes); liberaListaAdaptador(listaAdaptadores); getchar(); return 0; }
//! Testando a funcao criaListaGerador TEST(criaListaGerador, vazia){ Gerador *gerador = criaListaGerador(); ASSERT_TRUE(gerador == NULL); }
//! Caso naoVazia TEST(geradorVazio, naoVazio){ Gerador *gerador = criaListaGerador(); gerador = (Gerador *) malloc (sizeof(Gerador)); ASSERT_TRUE(geradorVazio(gerador) == NAO_VAZIO); }
//! Testando a funcao geradorVazio //! Caso vazio TEST(geradorVazio, vazio){ Gerador *gerador = criaListaGerador(); ASSERT_TRUE(geradorVazio(gerador) == VAZIO); }