Как создать модульный тест, в котором ответ должен быть округлен?

Я пишу юнит-тест, используя библиотеку Google Test. После компиляции я получаю сообщение об ошибке:

"Error: elevation which is:10 to be equal to:Z which is 9.999999999999999325"

Как я могу округлить Z, чтобы тест мог пройти и был равен 10?

1 ответ

Решение

Правильный подход заключается не в округлении и проверке на точное равенство, а в проверке на приблизительное равенство. Google Test имеет ASSERT_FLOAT_EQ а также EXPECT_FLOAT_EQ, которые проходят, если два числа с плавающей точкой ничем не отличаются, и двойные версии этих макросов, и EXPECT_NEAR, что позволяет указать приемлемую разницу.

Документация находится в gtest.h.

Другие вопросы по тегам