Я использую Boost Test для unit test некоторого кода на С++.
У меня есть вектор значений, которые мне нужно сравнить с ожидаемыми результатами, но я не хочу вручную проверять значения в цикле:
BOOST_REQUIRE_EQUAL(values.size(), expected.size());
for( int i = 0; i < size; ++i )
{
BOOST_CHECK_EQUAL(values[i], expected[i]);
}
Основная проблема заключается в том, что проверка цикла не печатает индекс, поэтому для поиска несоответствия требуется некоторый поиск.
Я мог бы использовать std::equal
или std::mismatch
для двух векторов, но для этого потребуется много шаблонов.
Есть ли более чистый способ сделать это?