45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#include <gtest/gtest.h>
|
|
|
|
#include <hpr/numeric.hpp>
|
|
#include <complex>
|
|
|
|
|
|
TEST(math, Scalar)
|
|
{
|
|
EXPECT_EQ(hpr::scalar(5) + hpr::scalar(7), hpr::scalar(12));
|
|
#ifdef HPR_SCALAR_IMPLEMENTATION
|
|
EXPECT_TRUE(std::is_floating_point_v<hpr::Scalar<double>>);
|
|
EXPECT_TRUE(std::is_arithmetic_v<hpr::Scalar<double>>);
|
|
#endif
|
|
//EXPECT_EQ(5.f, hpr::Scalar<double>(5));
|
|
EXPECT_EQ(hpr::rad(180), hpr::pi());
|
|
EXPECT_EQ(hpr::deg(hpr::pi()), 180);
|
|
EXPECT_EQ(hpr::cos(0), 1);
|
|
EXPECT_EQ(hpr::sin(0), 0);
|
|
EXPECT_EQ(hpr::abs(hpr::scalar(-1)), 1);
|
|
EXPECT_EQ(hpr::pow(2, 2), 4);
|
|
EXPECT_EQ(hpr::precision(), static_cast<hpr::scalar>(1e-15));
|
|
|
|
EXPECT_TRUE(typeid(static_cast<float>(hpr::scalar(5))) == typeid(float));
|
|
EXPECT_FALSE(!hpr::scalar(-1.));
|
|
|
|
std::stringstream oss;
|
|
oss << hpr::cos(0);
|
|
EXPECT_EQ(oss.str(), "1");
|
|
hpr::scalar s;
|
|
oss >> s;
|
|
EXPECT_EQ(s, 1);
|
|
|
|
EXPECT_TRUE(hpr::equal(5.5453535353535395818593, 5.5453535353535395817592, 1e-18));
|
|
EXPECT_EQ(hpr::min(7., 5), 5);
|
|
EXPECT_EQ(hpr::max(7., 5), 7);
|
|
EXPECT_EQ(hpr::clip(7., 5, 10), 7);
|
|
EXPECT_EQ(hpr::clip(1., 5, 10), 5);
|
|
EXPECT_EQ(hpr::clip(72., 5, 10), 10);
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
testing::InitGoogleTest(&argc, argv);
|
|
return RUN_ALL_TESTS();
|
|
} |