小编Bra*_*son的帖子

使用 Catch 比较双精度向量

我正在使用Catch单元测试框架,并且我想比较双精度向量。这个另一个答案建议使用 Approx 来比较浮点/双精度值,但这不适用于它们的向量。有什么方便的方法可以实现这一点吗?

编辑:一个例子

使用以下代码:

#define CATCH_CONFIG_MAIN
#include "catch.hpp"

TEST_CASE("Compare Vectors", "[vector]") {
    std::vector<int> vec1 = {0, 1, 2, 3};
    std::vector<int> vec2 = {0, 1, 2, 4};
    REQUIRE(vec1 == vec2);
}
Run Code Online (Sandbox Code Playgroud)

测试失败并出现以下报告:

-------------------------------------------------------------------------------
Compare Vectors
-------------------------------------------------------------------------------
test/UnitTests/test_Example/example.cc:4
...............................................................................

test/UnitTests/test_Example/example.cc:7: FAILED:
  REQUIRE( vec1 == vec2 )
with expansion:
  { 0, 1, 2, 3 } == { 0, 1, 2, 4 }

===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed
Run Code Online (Sandbox Code Playgroud)

但是,如果我按如下方式更改代码,我希望测试能够通过,但显然事实并非如此。

#define CATCH_CONFIG_MAIN
#include …
Run Code Online (Sandbox Code Playgroud)

c++ unit-testing catch-unit-test

5
推荐指数
2
解决办法
3273
查看次数

标签 统计

c++ ×1

catch-unit-test ×1

unit-testing ×1