RoboidControl-cpp/LinearAlgebra/test/FloatSingle_test.cc
Pascal Serrarens 80a500ff06 Add 'LinearAlgebra/' from commit 'bfa11239940c85b1486f63bd80fc82c578c62863'
git-subtree-dir: LinearAlgebra
git-subtree-mainline: ee9e9e001e4c5030a6c2093a7f3892adbf322d9e
git-subtree-split: bfa11239940c85b1486f63bd80fc82c578c62863
2024-12-28 10:22:23 +01:00

41 lines
866 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