From c6570bb0dd0403a7bc2d583a66a37f7d2100c054 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Thu, 29 Sep 2005 04:55:48 +0000 Subject: [PATCH] Test automatizado aleatoreo de clave fija. --- src/main.cpp | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index c367a4c..1eedc01 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,8 +3,12 @@ #include "btree.h" #include "clave_fija.h" +void generar_random (std::list &lst, uint n); + int main (int argc, char *argv[]) { + std::list 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::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 &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); + } +} + -- 2.43.0