首先,需要包含gtest头文件,并使用TEST宏定义一个测试用例。在测试用例中,可以使用EXPECT_DOUBLE_EQ或ASSERT_DOUBLE_EQ断言函数来比较双精度的值是否相等。 EXPECT_DOUBLE_EQ和ASSERT_DOUBLE_EQ的用法类似,区别在于EXPECT_DOUBLE_EQ在断言失败时会继续执行后续的代码,而ASSERT_DOUBLE_EQ在断言失败时会立即退出当前...
EXPECT_DOUBLE_EQ(expected, actual):(double)expected == actual EXPECT_NEAR(var1, var2, tol):abs(var1 - var2) <= tol 当判断浮点数时,推荐使用后三个。 3、大于小于 EXPECT_LT(var1, var2):var1 < var2 EXPECT_GT(var1, var2):var1 > var2 EXPECT_LE(var1, var2):var1 <= var2 E...
ASSERT_DOUBLE_EQ(expected, actual); EXPECT_DOUBLE_EQ(expected, actual); the two double values are almost equal 对相近的两个数比较: Fatal assertionNonfatal assertionVerifies ASSERT_NEAR(val1, val2, abs_error); EXPECT_NEAR(val1, val2, abs_error); the difference between val1 and val2 doesn...
TEST(GeneralTest, FloatAssertion) { ASSERT_FLOAT_EQ(1.0000001f, 1.0f); // double型的浮点数密度高,1e-7在4ULP以外 // ASSERT_DOUBLE_EQ(1.0000001, 1.0); 失败 ASSERT_NEAR(1.009f,1.0f,0.01f); // 谓词逻辑 EXPECT_PRED_FORMAT2(::testing::FloatLE, 1.0000001f, 1.0f); } gmock的matcher断言...
EXPECT_DOUBLE_EQ(val1, val2); the two double values are almost equal almost euqal表示两个数只是近似相似,默认的是是指两者的差值在4ULP之内(Units in the Last Place)。我们还可以自己制定精度 Fatal assertion Nonfatal assertion Verifies ASSERT_NEAR(val1, val2, abs_error); EXPECT_NEAR(val1, ...
ASSERT_FLOAT_EQ和ASSERT_DOUBLE_EQ是在比较的基础上允许一定的浮点数精度误差值。如果你需要比较两个浮点数,请使用对应的浮点数类型比较宏,而不要直接使用ASSERT_EQ; 4.6 ASSERT_GE/LE 注意,大小写比较都是左和右直接按顺序比较的,比如GE是判断左边是否大于右边(不要搞反顺序了) TEST(EXPTEST, EXPTEST_GE) ...
TEST(AssertTest, ASSERT_FLOAT) { ASSERT_FLOAT_EQ(a_f , b_f); ASSERT_DOUBLE_EQ(c_d ,d_d); EXPECT_FLOAT_EQ(a_f , b_f); EXPECT_DOUBLE_EQ(c_d , d_d); // para1 para2 的误差不超过 para3的范围,否则报错 ASSERT_NEAR(e_d, f_d, 0.1); ASSERT_NEAR(e_d, f_d, 0.01); ...
ASSERT_DOUBLE_EQ(expected, actual); EXPECT_DOUBLE_EQ(expected, actual); the two double values are almost equal 对相近的两个数比较: Fatal assertion Nonfatal assertion Verifies ASSERT_NEAR(val1, val2, abs_error); EXPECT_NEAR(val1, val2, abs_error); the difference between val1 and val2 ...
EXPECT_FLOAT_EQ(expected,actual) Tests that two float values are almost equal. EXPECT_NEAR(v1,v2,abs_error) Tests that v1 and v2 are within the given distance to each other. EXPECT_DOUBLE_EQ(expected,actual) Tests that two double values are almost equal. Exception Tests EXPECT_THROW...
// 断言:预期相等 EXPECT_EQ(expected, actual),后面同理 EXPECT_EQ(1, Factorial(-5)); EXPECT_EQ(1, Factorial(-1)); EXPECT_GT(Factorial(-10), 0); } // 测试阶乘:0 TEST(FactorialTest, Zero) { EXPECT_EQ(1, Factorial(0)); } ...