diff options
author | Jacques Lucke <jacques@blender.org> | 2020-07-16 12:28:31 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-07-16 12:28:31 +0300 |
commit | d89722868299afae8979e4b8dce9f40cb8576579 (patch) | |
tree | 398ec11f7ec08c0b5881d2345734c5765949a033 /tests/gtests | |
parent | f6f93b5b126d320a223977a07e3e0510ba684ceb (diff) |
BLI: move safe math functions to separate header
Diffstat (limited to 'tests/gtests')
-rw-r--r-- | tests/gtests/blenlib/BLI_math_base_safe_test.cc | 37 | ||||
-rw-r--r-- | tests/gtests/blenlib/BLI_math_base_test.cc | 32 | ||||
-rw-r--r-- | tests/gtests/blenlib/CMakeLists.txt | 1 |
3 files changed, 38 insertions, 32 deletions
diff --git a/tests/gtests/blenlib/BLI_math_base_safe_test.cc b/tests/gtests/blenlib/BLI_math_base_safe_test.cc new file mode 100644 index 00000000000..2e3e083cf92 --- /dev/null +++ b/tests/gtests/blenlib/BLI_math_base_safe_test.cc @@ -0,0 +1,37 @@ +/* Apache License, Version 2.0 */ + +#include "testing/testing.h" + +#include "BLI_math_base_safe.h" + +TEST(math_base, SafePowf) +{ + EXPECT_FLOAT_EQ(safe_powf(4.0f, 3.0f), 64.0f); + EXPECT_FLOAT_EQ(safe_powf(3.2f, 5.6f), 674.2793796f); + EXPECT_FLOAT_EQ(safe_powf(4.0f, -2.0f), 0.0625f); + EXPECT_FLOAT_EQ(safe_powf(6.0f, -3.2f), 0.003235311f); + EXPECT_FLOAT_EQ(safe_powf(-4.0f, 6), 4096.0f); + EXPECT_FLOAT_EQ(safe_powf(-3.0f, 5.5), 0.0f); + EXPECT_FLOAT_EQ(safe_powf(-2.5f, -4.0f), 0.0256f); + EXPECT_FLOAT_EQ(safe_powf(-3.7f, -4.5f), 0.0f); +} + +TEST(math_base, SafeModf) +{ + EXPECT_FLOAT_EQ(safe_modf(3.4, 2.2f), 1.2f); + EXPECT_FLOAT_EQ(safe_modf(3.4, -2.2f), 1.2f); + EXPECT_FLOAT_EQ(safe_modf(-3.4, -2.2f), -1.2f); + EXPECT_FLOAT_EQ(safe_modf(-3.4, 0.0f), 0.0f); + EXPECT_FLOAT_EQ(safe_modf(0.0f, 3.0f), 0.0f); + EXPECT_FLOAT_EQ(safe_modf(55.0f, 10.0f), 5.0f); +} + +TEST(math_base, SafeLogf) +{ + EXPECT_FLOAT_EQ(safe_logf(3.3f, 2.5f), 1.302995247f); + EXPECT_FLOAT_EQ(safe_logf(0.0f, 3.0f), 0.0f); + EXPECT_FLOAT_EQ(safe_logf(3.0f, 0.0f), 0.0f); + EXPECT_FLOAT_EQ(safe_logf(-2.0f, 4.3f), 0.0f); + EXPECT_FLOAT_EQ(safe_logf(2.0f, -4.3f), 0.0f); + EXPECT_FLOAT_EQ(safe_logf(-2.0f, -4.3f), 0.0f); +} diff --git a/tests/gtests/blenlib/BLI_math_base_test.cc b/tests/gtests/blenlib/BLI_math_base_test.cc index 66506d56f46..dc20c75576d 100644 --- a/tests/gtests/blenlib/BLI_math_base_test.cc +++ b/tests/gtests/blenlib/BLI_math_base_test.cc @@ -113,35 +113,3 @@ TEST(math_base, Log2CeilU) EXPECT_EQ(log2_ceil_u(9), 4); EXPECT_EQ(log2_ceil_u(123456), 17); } - -TEST(math_base, SafePowf) -{ - EXPECT_FLOAT_EQ(safe_powf(4.0f, 3.0f), 64.0f); - EXPECT_FLOAT_EQ(safe_powf(3.2f, 5.6f), 674.2793796f); - EXPECT_FLOAT_EQ(safe_powf(4.0f, -2.0f), 0.0625f); - EXPECT_FLOAT_EQ(safe_powf(6.0f, -3.2f), 0.003235311f); - EXPECT_FLOAT_EQ(safe_powf(-4.0f, 6), 4096.0f); - EXPECT_FLOAT_EQ(safe_powf(-3.0f, 5.5), 0.0f); - EXPECT_FLOAT_EQ(safe_powf(-2.5f, -4.0f), 0.0256f); - EXPECT_FLOAT_EQ(safe_powf(-3.7f, -4.5f), 0.0f); -} - -TEST(math_base, SafeModf) -{ - EXPECT_FLOAT_EQ(safe_modf(3.4, 2.2f), 1.2f); - EXPECT_FLOAT_EQ(safe_modf(3.4, -2.2f), 1.2f); - EXPECT_FLOAT_EQ(safe_modf(-3.4, -2.2f), -1.2f); - EXPECT_FLOAT_EQ(safe_modf(-3.4, 0.0f), 0.0f); - EXPECT_FLOAT_EQ(safe_modf(0.0f, 3.0f), 0.0f); - EXPECT_FLOAT_EQ(safe_modf(55.0f, 10.0f), 5.0f); -} - -TEST(math_base, SafeLogf) -{ - EXPECT_FLOAT_EQ(safe_logf(3.3f, 2.5f), 1.302995247f); - EXPECT_FLOAT_EQ(safe_logf(0.0f, 3.0f), 0.0f); - EXPECT_FLOAT_EQ(safe_logf(3.0f, 0.0f), 0.0f); - EXPECT_FLOAT_EQ(safe_logf(-2.0f, 4.3f), 0.0f); - EXPECT_FLOAT_EQ(safe_logf(2.0f, -4.3f), 0.0f); - EXPECT_FLOAT_EQ(safe_logf(-2.0f, -4.3f), 0.0f); -} diff --git a/tests/gtests/blenlib/CMakeLists.txt b/tests/gtests/blenlib/CMakeLists.txt index 496fe44234e..d151dacd7a4 100644 --- a/tests/gtests/blenlib/CMakeLists.txt +++ b/tests/gtests/blenlib/CMakeLists.txt @@ -58,6 +58,7 @@ BLENDER_TEST(BLI_linklist_lockfree "bf_blenlib;bf_intern_numaapi") BLENDER_TEST(BLI_listbase "bf_blenlib") BLENDER_TEST(BLI_map "bf_blenlib") BLENDER_TEST(BLI_math_base "bf_blenlib") +BLENDER_TEST(BLI_math_base_safe "bf_blenlib") BLENDER_TEST(BLI_math_bits "bf_blenlib") BLENDER_TEST(BLI_math_color "bf_blenlib") BLENDER_TEST(BLI_math_geom "bf_blenlib") |