加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – EXPECT_EQ对于double或float的总和出错

发布时间:2020-12-16 07:51:06 所属栏目:百科 来源:网络整理
导读:我无法理解为什么测试用例在双重数字或浮点数的情况下失败.它对于整数数据类型非常精细. // simple_method.h中的方法 double sum ( double a,double b){ double res = a+b; return res;} //这个方法的测试用例 TEST(simpleSum,sumOfFloat){ EXPECT_EQ(4.56,s
我无法理解为什么测试用例在双重数字或浮点数的情况下失败.它对于整数数据类型非常精细.

// simple_method.h中的方法

double sum ( double a,double b)
{
    double res = a+b;
    return res;
}

//这个方法的测试用例

TEST(simpleSum,sumOfFloat)
{
    EXPECT_EQ(4.56,sum(0.56,4.0));
}

//输出是

Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from simpleSum
[ RUN      ] simpleSum.sumOfFloat
/home/pcadmin/Desktop/so/so3/simple_method_test.cpp:7: Failure
Value of: sum(0.56,4.0)
  Actual: 4.56
Expected: 4.56
[  FAILED  ] simpleSum.sumOfFloat (0 ms)
[----------] 1 test from simpleSum (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test,listed below:
[  FAILED  ] simpleSum.sumOfFloat

 1 FAILED TEST

解决方法

改为使用 EXPECT_NEARDoubleEq匹配器.浮点操作可能导致 rounding errors,这使得结果有所不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读