void pruebas_heap_alumno(){ heap_t* heap = heap_crear(func_comp); print_test("El heap esta vacio", heap_esta_vacio(heap)); print_test("Ver max del heap es NULL", heap_ver_max(heap) == NULL); int a = 5, b = 6, c = 8, d = 7, e = 10; print_test("Encolo el primer elemento (a)",heap_encolar(heap, &a)); print_test("El maximo del heap es a ",heap_ver_max(heap) == &a); print_test("Encolo el segundo elemento (b)", heap_encolar(heap,&b)); print_test("El maximo del heap es el segundo elemento (b): ", heap_ver_max(heap) == &b); print_test("La cantidad del heap es 2", heap_cantidad(heap) == 2); print_test("Encolo el tercer elemento (c): ", heap_encolar(heap,&c)); print_test("El maximo del heap es el tercer elemento (c)", heap_ver_max(heap) == &c); print_test("Encolo el cuarto elemento (d) ", heap_encolar(heap,&d)); print_test("El maximo del heap sigue siendo el tercer elemento (c)", heap_ver_max(heap) == &c); print_test("La cantidad del heap es 4", heap_cantidad(heap) == 4); print_test("Encolo el quinto elemento (e) ", heap_encolar(heap, &e)); print_test("El maximo del heap es el quinto elemento", heap_ver_max(heap) == &e); print_test("Desencolo", heap_desencolar(heap) == &e); print_test("Desencolo", heap_desencolar(heap) == &c); print_test("Desencolo", heap_desencolar(heap) == &d); print_test("Desencolo", heap_desencolar(heap) == &b); print_test("Desencolo", heap_desencolar(heap) == &a); print_test("El heap esta vacio", heap_esta_vacio(heap)); //pruebas_heapify(); //pruebas_heapsort(); //pruebas_heap_crear_arr(); heap_destruir(heap,NULL); }
void pruebas_volumen(void){ printf("PRUEBAS DE VOLUMEN:\n"); heap_t* heap=heap_crear(int_cmp); int elementos[1000][1]; bool ok=true; for(int i=0;i<1000;i++){ *elementos[i]=i; if(!(ok=heap_encolar(heap,elementos[i]))){ break; } } print_test("Se encolaron todos los elementos..",ok); print_test("Longitud correcta...",heap_cantidad(heap)==1000); print_test("Ver max correcto...",heap_ver_max(heap)==elementos[999]); for(int i=999;i>=0;i--){ int* elemento=heap_desencolar(heap); if(!(ok=(*elemento==i))){ break; } } print_test("Los elementos se desencolaron en orden...",ok) print_test("Longitud correcta...",heap_cantidad(heap)==0); print_test("Ver max correcto...",heap_ver_max(heap)==NULL); heap_destruir(heap,NULL); }
void pruebas_heap_vacio(void){ heap_t* heap=heap_crear(int_cmp); print_test("Heap vacío...",heap_cantidad(heap)==0); print_test("Ver max es NULL...",heap_ver_max(heap)==NULL); print_test("Desencolar es NULL...",heap_desencolar(heap)==NULL); heap_destruir(heap,NULL); }
void pruebas_enteros(void){ heap_t* heap=heap_crear(int_cmp); printf("ELEMENTOS ORDENADOS:\n"); int elementos[10]={0,1,2,3,4,5,6,7,8,9}; bool ok=true; for(int i=0;i <10;i++){ if(!(ok=heap_encolar(heap,&elementos[i]))){ break; } } print_test("Se encolaron todos los elementos..",ok); print_test("Longitud correcta...",heap_cantidad(heap)==10); print_test("Ver max correcto...",heap_ver_max(heap)==&elementos[9]); for(int i=9;i>=0;i--){ int* elemento=heap_desencolar(heap); if(!(ok=(*elemento==i))){ break; } } print_test("Los elementos se desencolaron en orden...",ok) print_test("Longitud correcta...",heap_cantidad(heap)==0); print_test("Ver max correcto...",heap_ver_max(heap)==NULL); printf("ELEMENTOS DESORDENADOS:\n"); int e_desordenados[10]={9,4,6,2,7,5,8,3,1,0}; for(int i=0;i<10;i++){ if(!(ok=heap_encolar(heap,&e_desordenados[i]))){ break; } } print_test("Se encolaron todos los elementos..",ok); print_test("Longitud correcta...",heap_cantidad(heap)==10); print_test("Ver max correcto...",heap_ver_max(heap)==&elementos[9]); for(int i=9;i>=0;i--){ int* elemento=heap_desencolar(heap); if(!(ok=(*elemento==i))){ break; } } print_test("Los elementos se desencolaron en orden...",ok) print_test("Longitud correcta...",heap_cantidad(heap)==0); print_test("Ver max correcto...",heap_ver_max(heap)==NULL); heap_destruir(heap,NULL); }