int main(int argc, char **argv) {
cout << "Testing first set of OID" << endl;
const oid oid1[] = { 1,3,6,1,4,1,40850,1,3 };
const oid_wrapper parent1 (oid1, 9);
const oid_wrapper parent1_child1 (parent1, 40);
const oid_wrapper parent1_child2 (parent1, 41);
const oid_wrapper parent1_child3 (parent1, 42);
const oid_wrapper parent1_child4 (parent1, 43);
map<oid_wrapper, string> test;
test.insert(make_pair(parent1_child1, "parent1_child1"));
test.insert(make_pair(parent1_child2, "parent1_child2"));
test.insert(make_pair(parent1_child3, "parent1_child3"));
test.insert(make_pair(parent1_child4, "parent1_child4"));
if (test.size() != 4) { cout << "FAIL" << endl; }
cout << "Number of OID in list: " << test.size() << endl;
const oid_wrapper parent11 (oid1, 9);
const oid_wrapper parent1_child11 (parent11, 40);
try {
string teststring = test.at(parent1_child11);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
const oid_wrapper parent1_child12 (parent11, 41);
try {
string teststring = test.at(parent1_child12);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
const oid_wrapper parent1_child13 (parent11, 42);
try {
string teststring = test.at(parent1_child13);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
const oid_wrapper parent1_child14 (parent11, 43);
try {
string teststring = test.at(parent1_child14);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
cout << "Testing second set of OID" << endl;
const oid oid2[] = { 1,3,6,1,4,1,40850,2,1,9,1 };
const oid_wrapper parent2 (oid2, 11);
const oid_wrapper parent2_child1 (parent2, 1);
const oid_wrapper parent2_child2 (parent2, 2);
const oid_wrapper parent2_child3 (parent2, 3);
const oid_wrapper parent2_child4 (parent2, 4);
test.insert(make_pair(parent2_child1, "parent2_child1"));
test.insert(make_pair(parent2_child2, "parent2_child2"));
test.insert(make_pair(parent2_child3, "parent2_child3"));
test.insert(make_pair(parent2_child4, "parent2_child4"));
if (test.size() != 8) { cout << "FAIL" << endl; }
cout << "Number of OID in list: " << test.size() << endl;
const oid_wrapper parent21 (oid2, 11);
const oid_wrapper parent1_child21 (parent21, 1);
try {
string teststring = test.at(parent1_child21);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
const oid_wrapper parent1_child22 (parent21, 2);
try {
string teststring = test.at(parent1_child22);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
const oid_wrapper parent1_child23 (parent21, 3);
try {
string teststring = test.at(parent1_child23);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
const oid_wrapper parent1_child24 (parent21, 4);
try {
string teststring = test.at(parent1_child24);
cout << "Success" << endl;
} catch (out_of_range& e) {
cout << "Failure" << endl;
}
//#################################################
//Adding 100 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,4,9,1 };
const oid_wrapper wrapper(newoid, 11, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 100 added OIDs
int run1 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,4,9,1 };
const oid_wrapper wrapper(newoid, 11, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run1++;
}
}
cout << "Run 1: " << run1 << endl;
//#################################################
//Adding 100 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,1,4 };
const oid_wrapper wrapper(newoid, 9, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 100 added OIDs
int run2 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,1,4 };
const oid_wrapper wrapper(newoid, 9, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run2++;
}
}
cout << "Run 2: " << run2 << endl;
//#################################################
//Adding 100 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2 };
const oid_wrapper wrapper(newoid, 8, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 100 added OIDs
int run3 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2 };
const oid_wrapper wrapper(newoid, 8, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run3++;
}
}
cout << "Run 3: " << run3 << endl;
//#################################################
//Adding 500 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,2,5,1 };
const oid_wrapper wrapper(newoid, 11, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 500 added OIDs
int run4 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,2,5,1 };
const oid_wrapper wrapper(newoid, 11, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run4++;
}
}
cout << "Run 4: " << run4 << endl;
//#################################################
//Adding 500 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,3,5,2 };
const oid_wrapper wrapper(newoid, 11, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 500 added OIDs
int run5 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,3,5,2 };
const oid_wrapper wrapper(newoid, 11, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run5++;
}
}
cout << "Run 5: " << run5 << endl;
//#################################################
//Adding 500 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,2,5,2 };
const oid_wrapper wrapper(newoid, 10, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 500 added OIDs
int run6 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,2,5,2 };
const oid_wrapper wrapper(newoid, 10, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run6++;
}
}
cout << "Run 6: " << run6 << endl;
//#################################################
//Adding 500 OIDs
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,5,2,3,5 };
const oid_wrapper wrapper(newoid, 12, i);
test.insert(make_pair(wrapper, "wrapper"));
}
//Query for the 500 added OIDs
int run7 = 0;
for (int i = 0; i < 100; i++) {
const oid newoid[] = { 1,3,6,1,4,1,40850,2,5,2,3,5 };
const oid_wrapper wrapper(newoid, 12, i);
std::map<oid_wrapper, string>::iterator iter = test.find(wrapper);
if (iter != test.end()) {
run7++;
}
}
cout << "Run 7: " << run7 << endl;
cout << "Total in map " << test.size() << endl;
}
Output:
Testing first set of OID Number of OID in list: 4 Success Success Success Success Testing second set of OID Number of OID in list: 8 Success Success Success Success Run 1: 96 Run 2: 89 Run 3: 100 Run 4: 31 Run 5: 0 Run 6: 100 Run 7: 100 Total in map 708
The map contains 708 values. So if find/at worked all run1-7 should give 100 each.

New Topic/Question
Reply




MultiQuote






|