Added an "assert_container_equal" for maps of size_t->Testable
parent
48da36acf8
commit
4fe976a4e7
|
@ -105,6 +105,45 @@ bool assert_container_equal(const std::map<V1,V2>& expected, const std::map<V1,V
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for comparing maps of size_t->testable
|
||||
*/
|
||||
template<class V2>
|
||||
bool assert_container_equal(const std::map<size_t,V2>& expected, const std::map<size_t,V2>& actual, double tol = 1e-9) {
|
||||
typedef typename std::map<size_t,V2> Map;
|
||||
bool match = true;
|
||||
if (expected.size() != actual.size())
|
||||
match = false;
|
||||
typename Map::const_iterator
|
||||
itExp = expected.begin(),
|
||||
itAct = actual.begin();
|
||||
if(match) {
|
||||
for (; itExp!=expected.end() && itAct!=actual.end(); ++itExp, ++itAct) {
|
||||
if (itExp->first != itAct->first ||
|
||||
!assert_equal(itExp->second, itAct->second, tol)) {
|
||||
match = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!match) {
|
||||
std::cout << "expected: " << std::endl;
|
||||
BOOST_FOREACH(const typename Map::value_type& a, expected) {
|
||||
std::cout << "Key: " << a.first << std::endl;
|
||||
a.second.print(" value");
|
||||
}
|
||||
std::cout << "\nactual: ";
|
||||
BOOST_FOREACH(const typename Map::value_type& a, actual) {
|
||||
std::cout << "Key: " << a.first << std::endl;
|
||||
a.second.print(" value");
|
||||
}
|
||||
std::cout << std::endl;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* General function for comparing containers of testable objects
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue