इस खंड में हम देखेंगे कि C++ STL फंक्शन का उपयोग करके टेस्ट केस कैसे जनरेट कर सकते हैं। कभी-कभी ऐरे प्रोग्राम के लिए टेस्ट केस जनरेट करना बहुत जटिल और अकुशल प्रक्रिया हो सकती है। C++ टेस्ट केस जनरेट करने के लिए दो विधियां प्रदान करता है। ये विधियां निम्नलिखित हैं:
generate() विधि
C++ फंक्शन std::algorithm::generate() पहली से अंतिम स्थिति की रेंज में तत्वों को gen के क्रमिक कॉल्स द्वारा लौटाए गए मान निर्दिष्ट करता है। यह तीन पैरामीटर लेता है: first, last और gen, जो क्रमशः प्रारंभिक स्थिति के लिए फॉरवर्ड इटरेटर, अंतिम स्थिति के लिए बैकवर्ड इटरेटर और जनरेटर फंक्शन है जिसे बिना तर्क के कॉल किया जाता है और मान लौटाता है।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; int create_random() { return (rand() % 1000); } int main () { srand(time(NULL)); vector<int> data(15); generate(data.begin(), data.end(), create_random); for (int i=0; i<data.size(); i++) cout << data[i] << " " ; } आउटपुट
449 180 785 629 547 912 581 520 534 778 670 302 345 965 107
generate_n() विधि
C++ फंक्शन std::algorithm::generate_n() पहले n तत्वों के लिए gen के क्रमिक कॉल्स द्वारा लौटाए गए मान निर्दिष्ट करता है। यह तीन पैरामीटर लेता है: first, n और gen, जो क्रमशः प्रारंभिक स्थिति के लिए फॉरवर्ड इटरेटर, कॉल्स की संख्या और जनरेटर फंक्शन है जिसे बिना तर्क के कॉल किया जाता है और मान लौटाता है।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; int create_random() { return (rand() % 1000); } int main () { srand(time(NULL)); vector<int> data(15); generate_n(data.begin(), 6, create_random); for (int i=0; i<data.size(); i++) cout << data[i] << " " ; } आउटपुट
540 744 814 771 254 913 0 0 0 0 0 0 0 0 0