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_NEAR 或
DoubleEq 匹配器.浮点操作可能导致
rounding errors,这使得结果有所不同.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |