gpt4 book ai didi

c++ 和 gtest,需要帮助理解为什么看似简单的测试失败

转载 作者:搜寻专家 更新时间:2023-10-31 01:35:22 27 4
gpt4 key购买 nike

我最近开始使用 googletest 来设置一些单元测试,但遇到了一个我不明白的情况。测试失败,但一切看起来都会通过。

我有一个类似这样的小结构:

struct vec2 { float x, y; }

一个函数:

vec2 vec2_add_scalar (vec2 v, float scalar) {
return {v.x + scalar, v.y + scalar};
}

和测试:

TEST (math_test, add_scalar) {
vec2 v {4.0f, -4.0f};
float s = 3.14f;

vec2 r = vec2_add_scalar(v, s);

EXPECT_EQ (7.14f, r.x);
EXPECT_EQ (-0.86f, r.y);
}

运行测试时,这是我得到的:

[ RUN      ] vector2_test.add_scalar
vec2_test.cpp: Failure
Expected: 7.14
To be equal to: r.x
Which is: 7.14

我不明白测试失败的原因,希望能帮助找出可能导致测试失败的原因。

最佳答案

正如您可能在 googletest-AdvancedGuide 中读到的那样,建议使用ASSERT_FLOAT_EQ/ASSERT_DOUBLE_EQ...

原因 - 请阅读这篇 SO 帖子:Floating point inaccuracy examples

关于c++ 和 gtest,需要帮助理解为什么看似简单的测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37539455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com