| Index: Source/wtf/MathExtrasTest.cpp
|
| diff --git a/Source/wtf/MathExtrasTest.cpp b/Source/wtf/MathExtrasTest.cpp
|
| index 27ec291ee47922ca943501517aced5c3a9daf772..d430fa067a7741005b2297756e1c838103f997eb 100644
|
| --- a/Source/wtf/MathExtrasTest.cpp
|
| +++ b/Source/wtf/MathExtrasTest.cpp
|
| @@ -175,4 +175,29 @@ TEST(WTF, clampToUnsignedLongLong)
|
| EXPECT_EQ(clampTo<unsigned>(-1), 0u);
|
| }
|
|
|
| +// Make sure that various +-inf cases are handled properly (they aren't
|
| +// by default on VS).
|
| +TEST(WTF, infinityMath)
|
| +{
|
| + double posInf = std::numeric_limits<double>::infinity();
|
| + double negInf = -std::numeric_limits<double>::infinity();
|
| + double nan = std::numeric_limits<double>::quiet_NaN();
|
| +
|
| + EXPECT_EQ(atan2(posInf, posInf), M_PI_4);
|
| + EXPECT_EQ(atan2(posInf, negInf), 3.0 * M_PI_4);
|
| + EXPECT_EQ(atan2(negInf, posInf), -M_PI_4);
|
| + EXPECT_EQ(atan2(negInf, negInf), -3.0 * M_PI_4);
|
| +
|
| + EXPECT_EQ(fmod(0.0, posInf), 0.0);
|
| + EXPECT_EQ(fmod(7.0, posInf), 7.0);
|
| + EXPECT_EQ(fmod(-7.0, posInf), -7.0);
|
| + EXPECT_EQ(fmod(0.0, negInf), 0.0);
|
| + EXPECT_EQ(fmod(7.0, negInf), 7.0);
|
| + EXPECT_EQ(fmod(-7.0, negInf), -7.0);
|
| +
|
| + EXPECT_EQ(pow(5.0, 0.0), 1.0);
|
| + EXPECT_EQ(pow(-5.0, 0.0), 1.0);
|
| + EXPECT_EQ(pow(nan, 0.0), 1.0);
|
| +}
|
| +
|
| } // namespace
|
|
|