Advertisement
Guest User

pruebas_alumno.c

a guest
Apr 22nd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.49 KB | None | 0 0
  1. #include "cola.h"
  2. #include "testing.h"
  3. #include <stddef.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. const int VALOR_PRUEBA_1 = 3;
  8. const int VALOR_INICIAL_DE_PRUEBA_VOLUMEN = 10;
  9. const size_t VALOR_APILO_MUCHO = 10000;
  10. const size_t VALOR_DESAPILO_MUCHO = 10000;
  11.  
  12. typedef struct nodo {
  13.     void* dato;
  14.     struct nodo* prox;
  15. } nodo_t;
  16.  
  17. typedef struct cola {
  18.     nodo_t* primero;
  19.     nodo_t* ultimo;
  20. } cola_t;
  21.  
  22. void destruir_dato(void* dato){
  23.     free(dato);
  24. }
  25.  
  26. int* crear_valor_prueba(int valor){
  27.     int* dato = malloc(sizeof(int));
  28.     *dato = valor;
  29.     return dato;
  30. }
  31.  
  32. void pruebas_cola_vacia() {
  33.     printf("PRUEBAS COLA VACIA\n");
  34.     cola_t* ejemplo = NULL;
  35.  
  36.     print_test("Puntero inicializado a NULL", ejemplo == NULL);
  37.  
  38.     //Creo una cola
  39.     cola_t* cola_1 = cola_crear();
  40.     print_test("Cola creada correctamente", cola_1 != NULL);
  41.     print_test("El primero de la cola vacia es NULL", cola_ver_primero(cola_1) == NULL);
  42.     print_test("La cola esta vacia", cola_esta_vacia(cola_1));
  43.  
  44.     //Pruebo que no se puede desencolar
  45.     print_test("cola no se puede desencolar", cola_desencolar(cola_1) == NULL);
  46.  
  47.     //Destruyo la cola
  48.     cola_destruir(cola_1, NULL);
  49.     //print_test("cola destruida correctamente", !cola);
  50. }
  51.  
  52. void pruebas_cola_con_elementos(){
  53.     printf("PRUEBAS COLA CON ELEMENTOS\n");
  54.     int valor_a_probar = VALOR_PRUEBA_1;
  55.     int* valor = crear_valor_prueba(valor_a_probar);
  56.  
  57.     //Creo una cola
  58.     cola_t* cola_2 = cola_crear();
  59.     print_test("Cola creada correctamente", cola_2 != NULL);
  60.  
  61.     //Pruebo encolar, desencolar y destruir:
  62.     cola_encolar(cola_2, valor);
  63.  
  64.     //Pruebo que primero de la cola vale "valor"
  65.     print_test("El primero de la cola no es null", cola_ver_primero(cola_2) == valor);
  66.     print_test("Cola tiene elementos", !cola_esta_vacia(cola_2));
  67.     cola_desencolar(cola_2);
  68.  
  69.     //Pruebo que al no quedar mas elementos por desencolar, el primero es null
  70.     print_test("El primero de la cola vacia es null", cola_ver_primero(cola_2) == NULL);
  71.     cola_destruir(cola_2, NULL);
  72.  
  73.     cola_t* cola_3 = cola_crear();
  74.     //Pruebo encolar y destruir(sin desapilar)
  75.     cola_encolar(cola_3, valor);
  76.     print_test("El primero de la cola vacia es valor", cola_ver_primero(cola_3) == valor);
  77.     print_test("cola tiene elementos", !cola_esta_vacia(cola_3));
  78.     if(cola_esta_vacia(cola_3))     cola_destruir(cola_3, NULL);
  79.     else    cola_destruir(cola_3, destruir_dato);
  80. }
  81.  
  82. void pruebas_encolando_null(){
  83.     printf("PRUEBAS ENCOLANDO NULL\n");
  84.     void* valor = NULL;
  85.     //int* valor = crear_valor_prueba(valor_a_probar);
  86.     cola_t* cola_4 = cola_crear();
  87.     //Encolo y desencolo null
  88.     for(int i = 0; i < 30; i ++) cola_encolar(cola_4, valor);
  89.     print_test("El primero de la cola es null", cola_ver_primero(cola_4) == NULL);
  90.     print_test("la cola tiene elementos", !cola_esta_vacia(cola_4));
  91.     for(int i = 0; i < 20; i ++) cola_desencolar(cola_4);
  92.     print_test("La cola no esta del todo vacia", !cola_esta_vacia(cola_4));
  93.     for(int i = 0; i < 10; i ++) cola_desencolar(cola_4);
  94.     print_test("La cola esta vacia", cola_esta_vacia(cola_4));
  95.     cola_destruir(cola_4, NULL);
  96. }
  97.  
  98. void pruebas_volumen(){
  99.     printf("PRUEBAS VOLUMEN\n");
  100.     cola_t* cola_5 = cola_crear();
  101.     int valor = VALOR_INICIAL_DE_PRUEBA_VOLUMEN;
  102.     int primer_valor = valor;
  103.     int* primero_cola;
  104.     int* valor_nuevo;
  105.     int* dato_a_desencolar;
  106.  
  107.     for(int i = 0; i < VALOR_APILO_MUCHO; i++){
  108.         int* dato_a_encolar = crear_valor_prueba(valor);
  109.         cola_encolar(cola_5, dato_a_encolar);
  110.         valor ++;
  111.     }
  112.     primero_cola = cola_ver_primero(cola_5);
  113.     print_test("El primero de la cola es el primero que encolé", *primero_cola == primer_valor);
  114.  
  115.     valor = VALOR_INICIAL_DE_PRUEBA_VOLUMEN;
  116.     for(int i = 0; i < VALOR_DESAPILO_MUCHO; i++){
  117.         dato_a_desencolar = cola_desencolar(cola_5);
  118.         if(*dato_a_desencolar != (valor)) print_test("El valor desencolado NO cumple con la invariante fifo", *dato_a_desencolar != (valor));
  119.         free(dato_a_desencolar);
  120.         valor++;
  121.     }
  122.  
  123.     print_test("La cola esta vacia", cola_esta_vacia(cola_5));
  124.     print_test("El primero de la cola es NULL", (!cola_ver_primero(cola_5)));
  125.  
  126.     valor_nuevo = crear_valor_prueba(valor);
  127.     cola_encolar(cola_5, valor_nuevo);
  128.     print_test("La cola no esta vacia", !cola_esta_vacia(cola_5));
  129.     print_test("El primero de la cola es valor_nuevo", (cola_ver_primero(cola_5)) == valor_nuevo);
  130.     if(cola_esta_vacia(cola_5))     cola_destruir(cola_5, NULL);
  131.     else    cola_destruir(cola_5, destruir_dato);
  132. }
  133.  
  134. void pruebas_cola_alumno(){
  135.     pruebas_cola_vacia();
  136.     pruebas_cola_con_elementos();
  137.     pruebas_encolando_null();
  138.     pruebas_volumen();
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement