/* * Walk stli and volti as long as key = val. * Collect all the values, sort those values, and make sure * that stl and volt returned equal value sets. * Record cardinality of largest value set evaluated in chainCounter */ void verifyIterators(std::multimap<std::string, std::string> &stl, std::multimap<std::string, std::string>::iterator &stli, voltdb::CompactingMap<NormalKeyValuePair<std::string, std::string>, StringComparator>::iterator &volti, std::string val, int *chainCounter) { std::vector<std::string> stlv; std::vector<std::string> voltv; for (; stli != stl.end(); stli++) { if (stli->first.compare(val) == 0) { stlv.push_back(stli->second); } else { break; } } for (;!volti.isEnd(); volti.moveNext()) { if (volti.key().compare(val) == 0) { voltv.push_back(volti.value()); } else { break; } } ASSERT_TRUE(stlv.size() > 0); ASSERT_TRUE(stlv.size() == voltv.size()); if (chainCounter && ((int)stlv.size() > (int)*chainCounter)) { *chainCounter = (int)stlv.size(); } std::sort(stlv.begin(), stlv.end()); std::sort(voltv.begin(), voltv.end()); for (int i=0; i < stlv.size(); i++) { ASSERT_TRUE(stlv[i].compare(voltv[i]) == 0); } }