ASSERT_DOUBLE_EQ не работает на 2 ULPC++

Программы на C++. Форум разработчиков
Anonymous
ASSERT_DOUBLE_EQ не работает на 2 ULP

Сообщение Anonymous »

Согласно документации Google Test о сравнении с плавающей запятой, EXPECT_DOUBLE_EQ и ASSERT_DOUBLE_EQ проверяют, что два двойных значения val1 и val2 примерно равны с точностью до 4 ULP ( единицы на последнем месте) друг от друга.
Однако следующий пример кода не проходит тест, хотя разница в двух двойных значениях возникает в 2 ULP.

Код: Выделить всё

TEST(Foo, doubles_match)
{
ASSERT_DOUBLE_EQ(0.62469504755442462, 0.62469504755442407);
}
Результаты:

Код: Выделить всё

error: Expected equality of these values:
0.62469504755442462
0.62469504755442407
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -on-2-ulps

Вернуться в «C++»