Generación de casos de prueba (generar() y generar_n() en C++)

La generación de casos de prueba para programas de array puede ser un proceso engorroso. Pero las funciones de generar y generar_n en STL (Biblioteca de plantillas estándar) son útiles para llenar la array con valores aleatorios.

  • generar()

    Las funciones de generación asignan valores aleatorios proporcionados llamando a la función generadora ‘gen’ a los elementos en el rango [comienzo, fin). Tenga en cuenta que el inicio está incluido en el rango, pero el final NO está incluido.

    El siguiente código demuestra la implementación de generar:

    // C++ program to demonstrate generate function in STL
    #include <bits/stdc++.h>     
    using namespace std;
      
    // function to generate random numbers in range [0-999] :
    int randomize() 
    {   
        return (rand() % 1000); 
    }
      
    int main() 
    {
      // for different values each time we run the code
      srand(time(NULL)); 
        
      vector<int> vect(10); // declaring the vector
      
      // Fill all elements using randomize()
      generate(vect.begin(), vect.end(), randomize);
      
      // displaying the content of vector
      for (int i=0; i<vect.size(); i++)
         cout << vect[i] << " " ;
        
      return 0;
    }

    Producción :

    832 60 417 710 487 260 920 803 576 58
    

    NOTA: La salida sería diferente cada vez que ejecutamos el código debido a srand. Si eliminamos srand, obtendríamos el mismo conjunto de números aleatorios cada vez que ejecutamos el código.

  •  

  • generar_n()
    El generar_n hace el mismo trabajo que generar hasta n elementos a partir del elemento al que apunta el iterador de inicio.
     
    El siguiente código demuestra el funcionamiento de generate_n :

    // C++ program to demonstrate generate_n() function in STL
    #include <bits/stdc++.h>    
    using namespace std;
      
    // function to generate random numbers in range [0-999] :
    int randomize() 
    {   
        return (rand() % 1000); 
    }
      
    int main() 
    {
      // for different values each time we run the code 
      srand(time(NULL)); 
        
      vector<int> vect(10); // declaring the vector
      
      // Fill 6 elements from beginning using randomize()
      generate_n(vect.begin(), 6, randomize);
      
      // displaying the content of vector
      for (int i=0; i<vect.size(); i++)
        cout << vect[i] << " " ;
        
      return 0;
    }

    Producción :

    177 567 15 922 527 4 0 0 0 0
    

    NOTA: Aquí también, la salida sería diferente cada vez que ejecutamos el código debido a srand. Si eliminamos srand, obtendríamos el mismo conjunto de números aleatorios cada vez que ejecutamos el código.

 
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *