summaryrefslogtreecommitdiff
path: root/Source/UnitTests/Common/MathUtilTest.cpp
diff options
context:
space:
mode:
authorTillmann Karras <tilkax@gmail.com>2014-03-09 19:34:58 +0100
committerTillmann Karras <tilkax@gmail.com>2014-03-09 19:34:58 +0100
commit9ef64245fa164b20db592fa866f846feb9559b14 (patch)
treeb86d1da439095ac61a6f32e19d1b7e0e06bf29ed /Source/UnitTests/Common/MathUtilTest.cpp
parentd71aef8843afd91cb5c8deb6111acd1e6d431531 (diff)
MathUtil: fix IsQNAN()
The constants were one nibble too short and the lower 51 bits don't actually have to be zero.
Diffstat (limited to 'Source/UnitTests/Common/MathUtilTest.cpp')
-rw-r--r--Source/UnitTests/Common/MathUtilTest.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/Source/UnitTests/Common/MathUtilTest.cpp b/Source/UnitTests/Common/MathUtilTest.cpp
index a6924f9cf7..56ade34522 100644
--- a/Source/UnitTests/Common/MathUtilTest.cpp
+++ b/Source/UnitTests/Common/MathUtilTest.cpp
@@ -2,8 +2,8 @@
// Licensed under GPLv2
// Refer to the license.txt file included.
-#include <cmath>
#include <gtest/gtest.h>
+#include <limits>
#include "Common/MathUtil.h"
@@ -27,19 +27,28 @@ TEST(MathUtil, Clamp)
EXPECT_EQ(0.0, ClampAndReturn(-1.0, 0.0, 2.0));
}
+TEST(MathUtil, IsINF)
+{
+ EXPECT_TRUE(MathUtil::IsINF( std::numeric_limits<double>::infinity()));
+ EXPECT_TRUE(MathUtil::IsINF(-std::numeric_limits<double>::infinity()));
+}
+
TEST(MathUtil, IsNAN)
{
- EXPECT_TRUE(MathUtil::IsNAN(nan("")));
+ EXPECT_TRUE(MathUtil::IsNAN(std::numeric_limits<double>::quiet_NaN()));
+ EXPECT_TRUE(MathUtil::IsNAN(std::numeric_limits<double>::signaling_NaN()));
}
TEST(MathUtil, IsQNAN)
{
- // TODO
+ EXPECT_TRUE(MathUtil::IsQNAN(std::numeric_limits<double>::quiet_NaN()));
+ EXPECT_FALSE(MathUtil::IsQNAN(std::numeric_limits<double>::signaling_NaN()));
}
TEST(MathUtil, IsSNAN)
{
- // TODO
+ EXPECT_FALSE(MathUtil::IsSNAN(std::numeric_limits<double>::quiet_NaN()));
+ EXPECT_TRUE(MathUtil::IsSNAN(std::numeric_limits<double>::signaling_NaN()));
}
TEST(MathUtil, Log2)