gmock:测试两个浮点向量

时间:2018-05-29 07:46:59

标签: googletest gmock

我正在尝试为矢量编写测试。 对于STL容器,我试过:

EXPECT_THAT(float_vec1, ElementsAreArray(float_vec2));

但是我需要插入一个保证金。

是否ElementsAreArray相当于FloatNear(a_float, max_abs_error)

1 个答案:

答案 0 :(得分:0)

是的,我使用了Pointwise容器匹配器,您可以为其提供匹配器和预期的容器(任何STL容器,并且与非动态分配的c样式数组兼容)。

EXPECT_THAT(float_vec1, Pointwise(matcher, float_vec2))

对于匹配器,您可以使用FloatEq(),它使用基于ULP的浮点比较。

EXPECT_THAT(float_vec1, Pointwise(FloatEq(), float_vec2))

但是,我发现使用FloatNear(float max_abs_error)可以轻松定义自己的浮点错误,

float ferr = 1e-5;
EXPECT_THAT(float_vec1,
            Pointwise(FloatNear(ferr), float_vec2));