4 #include "clave_fija.h"
6 #include "keymanager.h"
8 int main (int argc, char *argv[])
11 std::cout << "Uso: " << argv[0] << " <block size> <cantidad de altas> <cantidad de bajas>\n";
12 std::cout << "\tEl tamaño de bloque usado es 512*2^<block size>.\n";
16 int bloque = 128 << (atoi (argv[1]) + 2);
17 int altas = atoi (argv[2]);
18 int bajas = atoi (argv[3]);
21 BTree tree ("test.idx", bloque);
24 std::list<int>::iterator it;
26 Random::Ints (lst, altas);
28 double paltas = bajas / (double)(altas + bajas);
31 while (it != lst.end ()) {
34 double l = Random::Double (0.0f, 1.0f);
35 std::cout << l << " >= " << paltas << std::endl;
36 if (!km.Size() // si no tenemos claves agregadas, mejor que hagamos un alta
41 } catch (Exception *e) {
42 std::cout << e->Message () << std::endl;
46 /* Tengo que borrar una clave entre 0 e "i" de la lista
47 * porque son las que ya agregue. */
48 ClaveFija c(km.GetRandom ());
53 std::cout << "Clave Borrada " << sss << std::endl;
54 } catch (Exception *e) {
55 std::cout << e->Message () << std::endl;
62 std::list <int> l = km.GetList ();
66 while (it != l.end ()) {
72 std::cout << "** Clave " << (*it) << " encontrada.\n";
76 std::cout << "** Clave " << (*it) << " NO encontrada.\n";
82 std::cout << "\n\n === Resultados ===\n";
83 std::cout << " Hist : " << bien << "\n";
84 std::cout << " Miss : " << mal << "\n";
85 std::cout << " Total : " << (bien+mal) << "\n";