我刚开始使用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}
,我的以上解决方案也会通过测试;如果由于这个原因两个向量被认为不相等,也是可以接受的。
REQUIRE(vec_1 == vec_2);
。 - Jarod42vec_1
和vec_2
是不同的数据类型,我会收到一个错误,而不是false
。 - Akavall