Я новичок в использовании CATCH, и мне интересно, как можно было бы проверить, равны ли два std::vectors
.
Моя самая наивная попытка такова:
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
#include <vector>
TEST_CASE( "are vectors equal", "vectors")
{
std::vector<int> vec_1 = {1,2,3};
std::vector<int> vec_2 = {1,2,3};
REQUIRE (vec_1.size() == vec_2.size());
for (int i = 0; i < vec_1.size(); ++i)
REQUIRE (vec_1[i] == vec_2[i]);
}
Есть ли лучший способ сделать это? Что-то вроде магии REQUIRE_VECTOR_EQUAL
?
Кроме того, мое решение выше, передается, если один массив содержит парные числа {1.0, 2.0, 3.0}
; Это хорошо, если из-за этого два вектора не считаются равными.