--- trunk/test/utils/NextCombinationTestCase.cpp 2004/10/28 15:42:17 175 +++ trunk/test/utils/NextCombinationTestCase.cpp 2004/10/28 19:06:59 181 @@ -5,11 +5,30 @@ void NextCombinationTestCase::testNextCombination() { // Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( NextCombinationTestCase); void NextCombinationTestCase::testNextCombination() { - std::vector dv; - std::vector::iterator> ic; + std::vector iv; + std::vector::iterator> ic; + std::vector::iterator>::iterator i; + iv.push_back(0); + iv.push_back(1); + iv.push_back(4); + std::cout << std::endl; - while (next_combination(ic, dv.begin(), dv.end())) { - - + std::vector > results; + while (next_combination(ic, iv.begin(), iv.end())) { + std::vector v; + for(i = ic.begin();i != ic.end(); ++i) { + v.push_back(**i); + } + results.push_back(v); } + + CPPUNIT_ASSERT(results.size() == 7); + CPPUNIT_ASSERT(results[0][0] == 0 && results[0].size() == 1); + CPPUNIT_ASSERT(results[1][0] == 1 && results[1].size() == 1); + CPPUNIT_ASSERT(results[2][0] == 4 && results[2].size() == 1); + CPPUNIT_ASSERT(results[3][0] == 0 && results[3][1] == 1 && results[3].size() == 2); + CPPUNIT_ASSERT(results[4][0] == 0 && results[4][1] == 4 && results[4].size() == 2); + CPPUNIT_ASSERT(results[5][0] == 1 && results[5][1] == 4 && results[5].size() == 2); + CPPUNIT_ASSERT(results[6][0] == 0 && results[6][1] == 1 && results[6][2] == 4 && results[6].size() == 3); + }