source: trunk/lib/test/gen.cpp @ 1819

Last change on this file since 1819 was 1819, checked in by ksherdy, 7 years ago

Added regression test directory.

File size: 1.8 KB
Line 
1#include "byte_compare.hpp"
2#include <stdint.h>
3#include <iostream>
4#include <fstream>
5#include <sstream>
6using namespace std;
7
8string gen_prolog() {
9
10    ostringstream ostr;
11
12    ostr << "#include \"byte_compare.hpp\"" << endl;
13    ostr << "#include <iostream>" << endl;
14    ostr << "using namespace std;" << endl;
15    ostr << "int main() {" << endl;
16
17    return ostr.str();
18}
19
20string gen_epilog() {
21
22    ostringstream ostr;
23
24    ostr << "return 1;" << endl;
25    ostr << "}" << endl;
26
27    return ostr.str();
28}
29
30string gen_data(string name, int size) {
31
32    ostringstream ostr;
33
34    ostr << "const int ary_size=" << size << ";" << endl;
35    ostr << "const char *" << name << "[] = {" << endl;
36
37    for(int i=0; i <= size; i++) {
38        ostr << "\"";
39        for(int j=1; j<=i;j++) {
40            ostr << j % 10;
41        }
42        ostr << "\"";
43        if(i<size) {
44            ostr << ",";
45        }
46        ostr << endl;
47    }
48
49    ostr << "};" << endl;
50
51    return ostr.str();
52}
53
54string gen_test(string type, int lgth, string x, int idx_x, string y, int idx_y) {
55
56    ostringstream ostr;
57
58    ostr << "cout << \""
59         << "x=\\\"\" << " << x << "[" << idx_x << "]" << "<< \"\\\""
60         << " y=\\\"\" << " << y << "[" << idx_y << "]" << "<< \"\\\""
61         << " L=" << lgth << " "
62         << " R=\" << overlap_compare<" << type << "," << lgth << ">(" << "(" << type << "*)"
63         << x << "[" << idx_x << "]"<< ",(" << type << "*)"
64         << y << "[" << idx_y << "]"<< ")"
65         << " << endl;" <<endl;
66
67    return ostr.str();
68}
69
70int main() {
71
72    const int size = 32;
73    const char * x = "x";
74
75    ofstream fout;
76    fout.open ("test.cpp");
77
78
79    fout << gen_prolog();
80
81
82
83    fout << gen_data(x, size);
84    for(int i=1;i<size;i++) {
85        fout << gen_test("uint64_t",i, x, i, x, i);
86    }
87
88    for(int i=size;i>0;i--) {
89        fout << gen_test("uint64_t",i, x, i, x, i-1);
90    }
91
92    fout << gen_epilog();
93    fout.close();
94
95    return 1;
96}
97
Note: See TracBrowser for help on using the repository browser.