void TestArchivoDeBuckets::tests() { char nombre[]= "archivo.bin"; remove(nombre); ArchivoDeBuckets* archivo = new ArchivoDeBuckets(nombre,128); Distrito* d = new Distrito("Buenos Aires"); Registro* r = new Registro(d); Bucket* b = new Bucket(9,128); b->agregarRegistro(r); int nrr = archivo->guardarBucket(b); delete r; b = archivo->obtenerBucket(nrr); cout << b->getEspacioLibre() << endl; cout << b->getTamanioDeDispersion() << endl; cout << b->getCantidadDeRegistros() << endl; r = new Registro(d); Registro* r2 = b->getRegistro(r); delete r; delete d; d = (Distrito*)r2->getContenido(); cout << "Distrito: " << d->getDistrito() << endl; delete r2; delete d; delete archivo; }
Bucket* TestArchivoDeBuckets::crearBucket5() { Bucket* bucket = new Bucket(LONGITUD_BLOQUE_PRUEBA,0); string distritos[] = {"Copenhague","Marseille","Viena","Praga"}; for (int i=0; i < 4 ; i++) { Distrito* distrito = new Distrito(distritos[i]); Registro* registro = new Registro(distrito); delete(distrito); bucket->agregarRegistro(registro); delete(registro); } return bucket; }
Bucket* TestArchivoDeBuckets::crearBucket4() { Bucket* bucket = new Bucket(LONGITUD_BLOQUE_PRUEBA,0); string distritos[] = {"Washington","Nueva York","Roma","Atenas"}; for (int i=0; i < 4 ; i++) { Distrito* distrito = new Distrito(distritos[i]); Registro* registro = new Registro(distrito); delete(distrito); bucket->agregarRegistro(registro); delete(registro); } return bucket; }
Bucket* TestArchivoDeBuckets::crearBucket3() { Bucket* bucket = new Bucket(LONGITUD_BLOQUE_PRUEBA,0); string distritos[] = {"Moscu","Auckland","Canberra","Puerto Moresby"}; for (int i=0; i < 4 ; i++) { Distrito* distrito = new Distrito(distritos[i]); Registro* registro = new Registro(distrito); delete(distrito); bucket->agregarRegistro(registro); delete(registro); } return bucket; }
Bucket* TestArchivoDeBuckets::crearBucket2() { Bucket* bucket = new Bucket(LONGITUD_BLOQUE_PRUEBA,0); string distritos[] = {"Montevideo","San Francisco","Paris","Londres"}; for (int i=0; i < 4 ; i++) { Distrito* distrito = new Distrito(distritos[i]); Registro* registro = new Registro(distrito); delete(distrito); bucket->agregarRegistro(registro); delete(registro); } return bucket; }
void TestArchivoDeBuckets::testCargo() { int numero = 320; char nombre[]= {"buckets.bin"}; ArchivoDeBuckets* archivo = new ArchivoDeBuckets(nombre,numero); Cargo* c = new Cargo("presidente"); Registro* r = new Registro(c); Bucket* b = new Bucket(0,numero); b->agregarRegistro(r); delete c; delete r; c = new Cargo("vicepresidente"); r = new Registro(c); b->agregarRegistro(r); delete r; delete c; int nrr = archivo->guardarBucket(b); Bucket* z = archivo->obtenerBucket(nrr); cout << "espacio libre: " << z->getEspacioLibre() << endl; cout << "cant registros: " << z->getCantidadDeRegistros() << endl; list<Registro*>::iterator it = z->ubicarPrimero(); int cant = z->getCantidadDeRegistros(); for(int i = 0; i<cant; i++) { Cargo* cargo = (Cargo*)((*it)->getContenido()); cout << cargo->getCargo() << endl; delete cargo; } delete archivo; }
Bucket* TestArchivoDeBuckets::crearBucket1() { Bucket* bucket = new Bucket(LONGITUD_BLOQUE_PRUEBA,0); string distritos[] = {"Buenos Aires","Puerto Esperanza","Bahia Blancaaaaa","ushuaia"}; for (int i=0; i < 4 ; i++) { Distrito* distrito = new Distrito(distritos[i]); Registro* registro = new Registro(distrito); delete(distrito); bucket->agregarRegistro(registro); delete(registro); } return bucket; }
void TestArchivoDeBuckets::testAgotamiento() { char nombreDelArchivo[]= "Archivo.bin"; remove(nombreDelArchivo); int numero = LONGITUD_BLOQUE_PRUEBA; int nb; int nb2; Distrito* d; ArchivoDeBuckets* archivo = new ArchivoDeBuckets(nombreDelArchivo,numero); for (int i = 0; i < 10000; i++) { if (i == 5000) d = new Distrito("B"); else d = new Distrito("A"); Registro* r = new Registro(d); Bucket* b = new Bucket(0,numero); b->agregarRegistro(r); if (i==5000) nb = archivo->guardarBucket(b); else nb2 = archivo->guardarBucket(b); cout << "Bloque (" << i << ") almacenado en posicion :" << nb2 << endl; delete b; delete r; delete d; } cout << nb << endl; Bucket* buc = archivo->obtenerBucket(nb); cout << "cant regs" << buc->getCantidadDeRegistros() << endl; list<Registro*>::iterator it = buc->ubicarPrimero(); Registro* reg = *it; Distrito* dis = (Distrito*)reg->getContenido(); cout << "distrito: " << dis->getDistrito() << endl; delete archivo; }
void TestArchivoDeBuckets::testVotante() { int numero = 320; char nombre[]= {"buckets.bin"}; remove(nombre); ArchivoDeBuckets* archivo = new ArchivoDeBuckets(nombre,numero); Votante* v = new Votante(32,"nombre","password","domicilio","distrito"); Registro* r = new Registro(v); Bucket* b = new Bucket(0,numero); b->mostarBucket(); b->agregarRegistro(r); b->mostarBucket(); delete r; delete v; int nrr = archivo->guardarBucket(b); // delete archivo; // // archivo = new ArchivoDeBuckets(nombre,numero); b = archivo->obtenerBucket(nrr); cout << "A continuacion se muestra el bucket leido desde disco" << endl; b->mostarBucket(); v = new Votante(32,"","","",""); r = new Registro(v); Registro* r2 = b->getRegistro(r); b->mostarClavesDeBucket(); delete v; delete r; v = (Votante*)(r2->getContenido()); cout << "A continuacion se muestra la informacion del votante leido"<<endl; v->verVotante(); delete v; delete r2; delete archivo; archivo = new ArchivoDeBuckets(nombre,numero); b = archivo->obtenerBucket(nrr); v = new Votante(32,"","","",""); r = new Registro(v); r2 = b->getRegistro(r); delete r; delete v; v = (Votante*)r2->getContenido(); v->setNombre("Vincent Van Gogh"); v->setDistrito("Arles, Provence-Alpes-Côte d'Azur"); v->setDomicilio("Rue des Suisses - 13200 "); v->setPassword("oreille"); r2->setContenido(v); b->reemplazarRegistro(r2); delete r2; archivo->modificarBucket(nrr,b); delete archivo; archivo = new ArchivoDeBuckets(nombre,numero); b = archivo->obtenerBucket(nrr); v = new Votante(32,"","","",""); r = new Registro(v); r2 = b->getRegistro(r); delete r; delete v; v = (Votante*)r2->getContenido(); cout << v->getNombre() << endl; cout << v->getDomicilio() << endl; cout << v->getDistrito() << endl; delete archivo; }
void TestArchivoDeBuckets::testLecturaEscrituraDeBuckets() { char nombreDelArchivo[]= "Archivo.bin"; remove(nombreDelArchivo); int numero = LONGITUD_BLOQUE_PRUEBA; ArchivoDeBuckets* archivo = new ArchivoDeBuckets(nombreDelArchivo,numero); Distrito* distrito = new Distrito("Buenos Aires"); string* serializacion = distrito->serializar(); cout << "longitud distrito: "<< serializacion->size() << endl; delete serializacion; Registro* registro = new Registro(distrito); serializacion = registro->serializar(); cout << "longitud registro: "<< serializacion->size() << endl; delete serializacion; delete distrito; Bucket* bucket = new Bucket(0,numero); serializacion = bucket->serializar(); cout << "longitud bucket: "<< serializacion->size() << endl; delete serializacion; bucket->agregarRegistro(registro); serializacion = bucket->serializar(); cout << "longitud bucket luego de agregar registro: "<< serializacion->size() << endl; delete serializacion; delete registro; int numeroDeBucket1 = archivo->guardarBucket(bucket); //delete bucket; bucket = archivo->obtenerBucket(numeroDeBucket1); distrito = new Distrito("Puerto Esperanza"); serializacion = distrito->serializar(); cout << "longitud: "<< serializacion->size() << endl; delete serializacion; registro = new Registro(distrito); serializacion = registro->serializar(); cout << "longitud: "<< serializacion->size() << endl; delete serializacion; delete distrito; bucket->agregarRegistro(registro); serializacion = bucket->serializar(); cout << "longitud: "<< serializacion->size() << endl; delete serializacion; delete registro; numeroDeBucket1 = archivo->guardarBucket(bucket); //delete bucket; cout << "Se muesta el bucket de la posicion: " << numeroDeBucket1 << endl; this->mostrarBucket(archivo,numeroDeBucket1); cout << "FIN DE EJECUCION" << endl; delete archivo; }