diff options
| author | Tillmann Karras <tilkax@gmail.com> | 2014-03-09 19:34:58 +0100 |
|---|---|---|
| committer | Tillmann Karras <tilkax@gmail.com> | 2014-03-09 19:34:58 +0100 |
| commit | 9ef64245fa164b20db592fa866f846feb9559b14 (patch) | |
| tree | b86d1da439095ac61a6f32e19d1b7e0e06bf29ed /Source/UnitTests/Common/MathUtilTest.cpp | |
| parent | d71aef8843afd91cb5c8deb6111acd1e6d431531 (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.cpp | 17 |
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) |
