From 9ef64245fa164b20db592fa866f846feb9559b14 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sun, 9 Mar 2014 19:34:58 +0100 Subject: MathUtil: fix IsQNAN() The constants were one nibble too short and the lower 51 bits don't actually have to be zero. --- Source/UnitTests/Common/MathUtilTest.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'Source/UnitTests/Common/MathUtilTest.cpp') 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 #include +#include #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::infinity())); + EXPECT_TRUE(MathUtil::IsINF(-std::numeric_limits::infinity())); +} + TEST(MathUtil, IsNAN) { - EXPECT_TRUE(MathUtil::IsNAN(nan(""))); + EXPECT_TRUE(MathUtil::IsNAN(std::numeric_limits::quiet_NaN())); + EXPECT_TRUE(MathUtil::IsNAN(std::numeric_limits::signaling_NaN())); } TEST(MathUtil, IsQNAN) { - // TODO + EXPECT_TRUE(MathUtil::IsQNAN(std::numeric_limits::quiet_NaN())); + EXPECT_FALSE(MathUtil::IsQNAN(std::numeric_limits::signaling_NaN())); } TEST(MathUtil, IsSNAN) { - // TODO + EXPECT_FALSE(MathUtil::IsSNAN(std::numeric_limits::quiet_NaN())); + EXPECT_TRUE(MathUtil::IsSNAN(std::numeric_limits::signaling_NaN())); } TEST(MathUtil, Log2) -- cgit v1.2.3