1 |
|
#include "utils/NextCombinationTestCase.hpp" |
2 |
|
#include <iostream> |
3 |
|
#include <algorithm> |
4 |
< |
#include "utils/next_combination.hpp" |
4 |
> |
|
5 |
|
// Registers the fixture into the 'registry' |
6 |
|
CPPUNIT_TEST_SUITE_REGISTRATION( NextCombinationTestCase); |
7 |
|
|
8 |
+ |
|
9 |
|
void NextCombinationTestCase::testNextCombination() { |
10 |
< |
std::vector<double> dv; |
11 |
< |
std::vector<std::vector<double>::iterator> ic; |
10 |
> |
std::vector<int> iv; |
11 |
> |
std::vector<std::vector<int>::iterator> ic; |
12 |
> |
std::vector<std::vector<int>::iterator>::iterator i; |
13 |
> |
iv.push_back(0); |
14 |
> |
iv.push_back(1); |
15 |
> |
iv.push_back(4); |
16 |
> |
std::cout << std::endl; |
17 |
|
|
18 |
< |
while (next_combination(ic, dv.begin(), dv.end()) { |
18 |
> |
std::vector<std::vector<int> > results; |
19 |
> |
while (next_combination(ic, iv.begin(), iv.end())) { |
20 |
> |
std::vector<int> v; |
21 |
> |
for(i = ic.begin();i != ic.end(); ++i) { |
22 |
> |
v.push_back(**i); |
23 |
> |
} |
24 |
> |
results.push_back(v); |
25 |
> |
} |
26 |
|
|
27 |
< |
|
27 |
> |
CPPUNIT_ASSERT(results.size() == 7); |
28 |
> |
CPPUNIT_ASSERT(results[0][0] == 0 && results[0].size() == 1); |
29 |
> |
CPPUNIT_ASSERT(results[1][0] == 1 && results[1].size() == 1); |
30 |
> |
CPPUNIT_ASSERT(results[2][0] == 4 && results[2].size() == 1); |
31 |
> |
CPPUNIT_ASSERT(results[3][0] == 0 && results[3][1] == 1 && results[3].size() == 2); |
32 |
> |
CPPUNIT_ASSERT(results[4][0] == 0 && results[4][1] == 4 && results[4].size() == 2); |
33 |
> |
CPPUNIT_ASSERT(results[5][0] == 1 && results[5][1] == 4 && results[5].size() == 2); |
34 |
> |
CPPUNIT_ASSERT(results[6][0] == 0 && results[6][1] == 1 && results[6][2] == 4 && results[6].size() == 3); |
35 |
> |
|
36 |
> |
std::vector<std::string> sv; |
37 |
> |
std::vector<std::vector<std::string>::iterator> sic; |
38 |
> |
std::vector<std::vector<std::string>::iterator>::iterator j; |
39 |
> |
std::vector<std::vector<std::string> > resultStrings; |
40 |
> |
std::vector<std::string> resultString; |
41 |
> |
sv.push_back("H"); |
42 |
> |
sv.push_back("C"); |
43 |
> |
sv.push_back("N"); |
44 |
> |
|
45 |
> |
while (replaceWildCard(sic, sv, resultString)) { |
46 |
> |
for(std::vector<std::string>::iterator k = resultString.begin(); k != resultString.end(); ++k) { |
47 |
> |
std::cout << *k << "\t"; |
48 |
> |
} |
49 |
> |
std::cout << std::endl; |
50 |
> |
resultStrings.push_back(resultString); |
51 |
|
} |
52 |
< |
} |
52 |
> |
} |
53 |
> |
|