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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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