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; }
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; }
void TestArchivoDeBuckets::mostrarBucket(ArchivoDeBuckets* archivo,int numeroDeBucket) { Bucket* bucketNuevo = archivo->obtenerBucket(numeroDeBucket); string* serializacion = bucketNuevo->serializar(); cout << "bucketSerializado "<< serializacion->size() << endl; delete serializacion; int cantRegistros = bucketNuevo->getCantidadDeRegistros(); list<Registro*>::iterator it = bucketNuevo->ubicarPrimero(); for(int i =0; i < cantRegistros; i++) { Registro* registro = *it; Distrito* d = (Distrito*)registro->getContenido(); cout << d->getDistrito() << endl; delete d; it++; } }
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; }