TEST(FloatingPointDifferenceTest, HandlesZerosOfDifferentSign)
{
- FloatingPointDifference diff(0.0, -0.0);
+ FloatingPointDifference diff(0.0, GMX_DOUBLE_NEGZERO);
EXPECT_FALSE(diff.isNaN());
EXPECT_EQ(0.0, diff.asAbsolute());
EXPECT_EQ(0U, diff.asUlps());
EXPECT_TRUE(diff.signsDiffer());
}
{
- FloatingPointDifference diff(-0.0, -1.2);
+ FloatingPointDifference diff(GMX_DOUBLE_NEGZERO, -1.2);
EXPECT_FALSE(diff.isNaN());
EXPECT_DOUBLE_EQ(1.2, diff.asAbsolute());
EXPECT_FALSE(diff.signsDiffer());
TEST(FloatingPointDifferenceTest, HandlesUlpDifferenceAcrossZero)
{
- const double first = addUlps(-0.0, 2);
+ const double first = addUlps(GMX_DOUBLE_NEGZERO, 2);
const double second = addUlps( 0.0, 2);
FloatingPointDifference diff(first, second);
EXPECT_FALSE(diff.isNaN());