Test Case Generation | Set 5 (Generating random Sorted Arrays and Palindromes)

Generating Random Sorted Arrays
We store the random array elements in an array and then sort it and print it.

filter_none

edit
close

play_arrow

link
brightness_4
code

// A C++ Program to generate test cases for
// array filled with random numbers
#include<bits/stdc++.h>
using namespace std;
  
// Define the number of runs for the test data
// generated
#define RUN 5
  
// Define the range of the test data generated
#define MAX 100000
  
// Define the maximum number of array elements
#define MAXNUM 100
  
int main()
{
    // Uncomment the below line to store
    // the test data in a file
    // freopen("Test_Cases_Random_Sorted_Array.in",
    //          "w", stdout);
  
    // For random values every time
    srand(time(NULL));
  
    int NUM;    // Number of array elements
  
    for (int i=1; i<=RUN; i++)
    {
        int arr[MAXNUM];
  
        NUM = 1 + rand() % MAXNUM;
  
        // First print the number of array elements
        printf("%d\n", NUM);
  
        // Then print the array elements separated by
        // space
        for (int j=0; j<NUM; j++)
            arr[j] = rand() % MAX;
  
        // Sort the generated random array
        sort (arr, arr + NUM);
  
        // Print the sorted random array
        for (int j=0; j<NUM; j++)
            printf("%d ", arr[j]);
  
        printf("\n");
    }
  
    // Uncomment the below line to store
    // the test data in a file
    // fclose(stdout);
    return(0);
}

chevron_right


 

Generating Random Palindromes

  • The test case generation plan generates odd as well as even length palindromes.
  • The test case generation plan uses one of the most under-rated data structure- Deque
  • Since a palindrome is read the same from left as well as right so we simply put the same random characters on both the left side (done using push_front()) and the right side (done using push_back())
filter_none

edit
close

play_arrow

link
brightness_4
code

// A C++ Program to generate test cases for
// random strings
#include<bits/stdc++.h>
using namespace std;
  
// Define the number of runs for the test data
// generated
#define RUN 5
  
// Define the range of the test data generated
// Here it is 'a' to 'z'
#define MAX 25
  
// Define the maximum length of string
#define MAXLEN 50
  
int main()
{
    // Uncomment the below line to store
    // the test data in a file
    // freopen("Test_Cases_Palindrome.in", "w",
    //                                  stdout);
  
    // For random values every time
    srand(time(NULL));
  
    // A container for storing the palindromes
    deque<char> container;
    deque<char>::iterator it;
  
    int LEN;    // Length of string
  
    for (int i=1; i<=RUN; i++)
    {
        LEN = 1 + rand() % MAXLEN;
  
        // First print the length of string
        printf("%d\n", LEN);
  
        // If it is an odd-length palindrome
        if (LEN % 2)
            container.push_back('a' + rand() % MAX);
  
        // Then print the characters of the palindromic
        // string
        for (int j=1; j<=LEN/2; j++)
        {
            char ch = 'a' + rand() % MAX;
            container.push_back(ch);
            container.push_front(ch);
        }
  
        for (it=container.begin(); it!=container.end(); ++it)
            printf("%c",*it);
  
        container.clear();
        printf("\n");
    }
  
    // Uncomment the below line to store
    // the test data in a file
    // fclose(stdout);
    return(0);
}

chevron_right


This article is contributed by Rachit Belwariar. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

References : –
http://spojtoolkit.com/TestCaseGenerator/

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.