41 lines
889 B
C++
41 lines
889 B
C++
#if GTEST
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <math.h>
|
|
#include <limits>
|
|
|
|
#include "FloatSingle.h"
|
|
|
|
#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
|
|
|
|
TEST(FloatC, Clamp) {
|
|
float r = 0;
|
|
|
|
r = Float::Clamp(1, 0, 2);
|
|
EXPECT_FLOAT_EQ(r, 1) << "Clamp 1 0 2";
|
|
|
|
r = Float::Clamp(-1, 0, 2);
|
|
EXPECT_FLOAT_EQ(r, 0) << "Clamp -1 0 2";
|
|
|
|
r = Float::Clamp(3, 0, 2);
|
|
EXPECT_FLOAT_EQ(r, 2) << "Clamp 3 0 2";
|
|
|
|
r = Float::Clamp(1, 0, 0);
|
|
EXPECT_FLOAT_EQ(r, 0) << "Clamp 1 0 0";
|
|
|
|
r = Float::Clamp(0, 0, 0);
|
|
EXPECT_FLOAT_EQ(r, 0) << "Clamp 0 0 0";
|
|
|
|
r = Float::Clamp(0, 1, -1);
|
|
EXPECT_FLOAT_EQ(r, 1) << "Clamp 0 1 -1";
|
|
|
|
if (std::numeric_limits<float>::is_iec559) {
|
|
r = Float::Clamp(1, 0, FLOAT_INFINITY);
|
|
EXPECT_FLOAT_EQ(r, 1) << "Clamp 1 0 INFINITY";
|
|
|
|
r = Float::Clamp(1, -FLOAT_INFINITY, 1);
|
|
EXPECT_FLOAT_EQ(r, 1) << "Clamp 1 -INFINITY 1";
|
|
}
|
|
}
|
|
|
|
#endif |