void testObtenerBloqueLibre() { long tamanoBloque=4*1024; Bloque elemento(tamanoBloque); RegistroVariable registro[4]; string dato; dato = *(new string("Me enfrentare a esos malvados duendes.")); for (int i=0; i<3; i++){ registro [i] = *(new RegistroVariable(&dato, 38)); elemento.addRegistro(&(registro[i])); } char* path; long posicion = 0; path = "ArchBloquesFijos5.bin"; RegistroVariable* regInsertar; ArchivoBloquesFijos archivoBloquesFijos(path, tamanoBloque); regInsertar = (elemento).getRegistro(0); archivoBloquesFijos.Escribir(&elemento, posicion); posicion ++; archivoBloquesFijos.Escribir(&elemento, posicion); int result2 = archivoBloquesFijos.ObtenerBloqueLibre(); archivoBloquesFijos.Borrar(posicion); int result = archivoBloquesFijos.ObtenerBloqueLibre(); if((result==1)&&(result2==-1)) { std::cout << "Exito en Prueba 5." << std::endl; } }
void testExcepciones (){ long tamanoBloque=4*1024; Bloque elemento(tamanoBloque); Bloque elementoRecibido(tamanoBloque); RegistroVariable registro[4]; string dato; dato = *(new string("Shut up and Take My Money.")); for (int i=0; i<3; i++){ registro [i] = *(new RegistroVariable(&dato, 26)); elemento.addRegistro(&(registro[i])); } char* path; long posicion = 0; path = "ArchBloquesFijos9.bin"; RegistroVariable* regInsertar; ArchivoBloquesFijos archivoBloquesFijos(path, tamanoBloque); regInsertar = (elemento).getRegistro(0); archivoBloquesFijos.Escribir(&elemento, posicion); posicion ++; archivoBloquesFijos.Escribir(&elemento, posicion); posicion ++; archivoBloquesFijos.Escribir(&elemento, posicion); posicion = 10; try{ archivoBloquesFijos.Escribir(&elemento, posicion); }catch (ExcepcionBloqueInexistente &exception1){ std::cout<<exception1.what()<<std::endl; } try{ archivoBloquesFijos.Leer(posicion,&elementoRecibido); }catch (ExcepcionBloqueInexistente &exception2){ std::cout<<exception2.what()<<std::endl; } try{ posicion=1; archivoBloquesFijos.Borrar(posicion); archivoBloquesFijos.Leer(posicion,&elementoRecibido); }catch (ExcepcionBloqueLibre &exception3){ std::cout<<exception3.what()<<std::endl; } try{ posicion=1; archivoBloquesFijos.Borrar(posicion); archivoBloquesFijos.Borrar(posicion); }catch (ExcepcionBloqueLibre &exception4){ std::cout<<exception4.what()<<std::endl; } try{ posicion=12; archivoBloquesFijos.Borrar(posicion); }catch (ExcepcionBloqueInexistente &exception5){ std::cout<<exception5.what()<<std::endl; } }
void BorrarHash (char *cad,TablaHash t) { tPosicion p; int pos=Hash(cad); p=primero(t[pos]); while (p!=fin(t[pos]) && !strcmp(cad,elemento(p,t[pos]))) p=siguiente(p,t[pos])); if (p!=fin(t[pos])) borrar(p,t[pos]); }
int MiembroHash (char *cad,TablaHash t) { tPosicion p; int enc; int pos=Hash(cad); p=primero(t[pos]); enc=0; while (p!=fin(t[pos]) && !enc) { if (strcmp(cad,elemento(p,t[pos]))==O) enc=1; else p=siguiente(p,t[pos]); } return enc; }
void testEscribir() { long tamanoBloque=4*1024; Bloque elemento(tamanoBloque); RegistroVariable registro[4]; string dato; dato = *(new string("Me enfrentare a esos malvados duendes.")); for (int i=0; i<3; i++){ registro [i] = *(new RegistroVariable(&dato, 38)); elemento.addRegistro(&(registro[i])); } char* path; long posicion = 0; path = "ArchBloquesFijos3.bin"; RegistroVariable* regInsertar; ArchivoBloquesFijos archivoBloquesFijos(path, tamanoBloque); regInsertar = (elemento).getRegistro(0); archivoBloquesFijos.Escribir(&elemento, posicion); if(true) { std::cout << "Exito en Prueba 3" << std::endl; } }