]> git.llucax.com Git - z.facultad/75.52/treemulator.git/commitdiff
Test automatizado aleatoreo de clave fija.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Thu, 29 Sep 2005 04:55:48 +0000 (04:55 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Thu, 29 Sep 2005 04:55:48 +0000 (04:55 +0000)
src/main.cpp

index c367a4c7e04c8da998b3e9361539aaeb8dda1e7e..1eedc01920b41da513b7f3166e35514ec0b742c5 100644 (file)
@@ -3,8 +3,12 @@
 #include "btree.h"
 #include "clave_fija.h"
 
+void generar_random (std::list<int> &lst, uint n);
+
 int main  (int argc, char *argv[])
 {
+       std::list<int> lst;
+
        BTree tree ("test.idx", 64);
        
        if (argc != 2) {
@@ -12,13 +16,47 @@ int main  (int argc, char *argv[])
                return 1;
        }
 
-       for (int i=0; i<=atoi(argv[1]); i++) {
-               ClaveFija c(i);
+       generar_random (lst, atoi(argv[1]));
+
+       std::list<int>::iterator it = lst.begin ();
+       while (it != lst.end ()) {
+               ClaveFija c(*it);
 
-               std::cout << "Agregando " << i << std::endl;
+               std::cout << "Agregando " << (*it) << std::endl;
                tree.AddKey (c);
+               it++;
+       }
+
+       it = lst.begin ();
+       while (it != lst.end ()) {
+               ClaveFija c(*it);
+
+               if (tree.FindKey (c))
+                       std::cout << (*it) << " encontrada\n";
+               else
+                       std::cout << (*it) << " NO encontrada\n";
+               it++;
        }
 
        return 0;
 }
 
+void generar_random (std::list<int> &lst, uint n)
+{
+       /* Genero N numeros aleatorios entre -3*n y 3*n */
+       bool *numeros = new bool [6*n+1];
+       int random;
+
+       memset (numeros, 0, (6*n+1)*sizeof (bool));
+
+       srand (time (NULL));
+       for (uint i=0; i < n; i++) {
+               do {
+                       random = 1 + (int)(6.0f * n * rand () / (RAND_MAX + 1.0f) - 3.0f * n);
+                       std::cout << random << std::endl;
+               } while (numeros[random + 3 * n] == true);
+               numeros[random + 3 * n] = true;
+               lst.push_back (random);
+       }
+}
+