diff options
author | kcgen <kcgen@users.noreply.github.com> | 2022-10-22 05:34:17 +0300 |
---|---|---|
committer | kcgen <1557255+kcgen@users.noreply.github.com> | 2022-10-22 21:15:34 +0300 |
commit | 02735e9d3c0833fd37f04cef6535b9253ddb2388 (patch) | |
tree | 1b88b8c504bc802bd14daec5df3d5ff9a77de545 | |
parent | c5aaba38b64daf6d05548aa9b1110de0cc10474d (diff) |
Add unit tests for clamp_to_<int_t> functions
-rw-r--r-- | tests/math_utils_tests.cpp | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/tests/math_utils_tests.cpp b/tests/math_utils_tests.cpp index c466d84af..e099150e2 100644 --- a/tests/math_utils_tests.cpp +++ b/tests/math_utils_tests.cpp @@ -160,4 +160,167 @@ TEST(iroundf, invalid) EXPECT_DEBUG_DEATH({ iroundf(-80000000000.0f); }, ""); } +TEST(clamp_to_int8, signed_negatives) +{ + EXPECT_EQ(clamp_to_int8(INT16_MIN), INT8_MIN); + EXPECT_EQ(clamp_to_int8(INT8_MIN - 0), INT8_MIN); + EXPECT_EQ(clamp_to_int8(INT8_MIN + 1), INT8_MIN + 1); +} + +TEST(clamp_to_int16, signed_negatives) +{ + EXPECT_EQ(clamp_to_int16(INT32_MIN), INT16_MIN); + EXPECT_EQ(clamp_to_int16(INT16_MIN - 0), INT16_MIN); + EXPECT_EQ(clamp_to_int16(INT16_MIN + 1), INT16_MIN + 1); +} + +TEST(clamp_to_int32, signed_negatives) +{ + EXPECT_EQ(clamp_to_int32(INT64_MIN), INT32_MIN); + EXPECT_EQ(clamp_to_int32(INT32_MIN - 0), INT32_MIN); + EXPECT_EQ(clamp_to_int32(INT32_MIN + 1), INT32_MIN + 1); +} + +TEST(clamp_to_int8, signed_positives) +{ + EXPECT_EQ(clamp_to_int8(INT16_MAX), INT8_MAX); + EXPECT_EQ(clamp_to_int8(INT8_MAX - 0), INT8_MAX); + EXPECT_EQ(clamp_to_int8(INT16_MAX - 1), INT8_MAX); +} + +TEST(clamp_to_int16, signed_positives) +{ + EXPECT_EQ(clamp_to_int16(INT32_MAX), INT16_MAX); + EXPECT_EQ(clamp_to_int16(INT16_MAX - 0), INT16_MAX); + EXPECT_EQ(clamp_to_int16(INT32_MAX - 1), INT16_MAX); +} + +TEST(clamp_to_int32, signed_positives) +{ + EXPECT_EQ(clamp_to_int32(INT64_MAX), INT32_MAX); + EXPECT_EQ(clamp_to_int32(INT32_MAX - 0), INT32_MAX); + EXPECT_EQ(clamp_to_int32(INT64_MAX - 1), INT32_MAX); +} + +TEST(clamp_to_int8, signed_literals) +{ + EXPECT_EQ(clamp_to_int8(-1'000), INT8_MIN); + EXPECT_EQ(clamp_to_int8(-100), -100); + EXPECT_EQ(clamp_to_int8(-1), -1); + EXPECT_EQ(clamp_to_int8(0), 0); + EXPECT_EQ(clamp_to_int8(1), 1); + EXPECT_EQ(clamp_to_int8(100), 100); + EXPECT_EQ(clamp_to_int8(1'000), INT8_MAX); +} + +TEST(clamp_to_int16, signed_literals) +{ + EXPECT_EQ(clamp_to_int16(-100'000), INT16_MIN); + EXPECT_EQ(clamp_to_int16(-10'000), -10000); + EXPECT_EQ(clamp_to_int16(-1'000), -1000); + EXPECT_EQ(clamp_to_int16(-10), -10); + EXPECT_EQ(clamp_to_int16(0), 0); + EXPECT_EQ(clamp_to_int16(10), 10); + EXPECT_EQ(clamp_to_int16(1'000), 1000); + EXPECT_EQ(clamp_to_int16(10'000), 10000); + EXPECT_EQ(clamp_to_int16(100'000), INT16_MAX); +} + +TEST(clamp_to_int32, signed_literals) +{ + EXPECT_EQ(clamp_to_int32(-10'000'000'000), INT32_MIN); + EXPECT_EQ(clamp_to_int32(-1'000'000'000), -1'000'000'000); + EXPECT_EQ(clamp_to_int32(-1'000'000), -1'000'000); + EXPECT_EQ(clamp_to_int32(-100), -100); + EXPECT_EQ(clamp_to_int32(0), 0); + EXPECT_EQ(clamp_to_int32(100), 100); + EXPECT_EQ(clamp_to_int32(1'000'000), 1'000'000); + EXPECT_EQ(clamp_to_int32(1'000'000'000), 1'000'000'000); + EXPECT_EQ(clamp_to_int32(10'000'000'000), INT32_MAX); +} + +#ifndef UINT8_MIN +constexpr uint8_t UINT8_MIN = {0}; +#endif + +#ifndef UINT16_MIN +constexpr uint16_t UINT16_MIN = {0}; +#endif + +#ifndef UINT32_MIN +constexpr uint32_t UINT32_MIN = {0}; +#endif + +#ifndef UINT64_MIN +constexpr uint64_t UINT64_MIN = {0}; +#endif + +TEST(clamp_to_int8, unsigned_minimums) +{ + EXPECT_EQ(clamp_to_int8(UINT16_MIN), 0); + EXPECT_EQ(clamp_to_int8(UINT8_MIN - 0u), 0); + EXPECT_EQ(clamp_to_int8(UINT8_MIN + 1u), 1); +} + +TEST(clamp_to_int16, unsigned_minimums) +{ + EXPECT_EQ(clamp_to_int16(UINT32_MIN), 0); + EXPECT_EQ(clamp_to_int16(UINT16_MIN - 0u), 0); + EXPECT_EQ(clamp_to_int16(UINT16_MIN + 1u), 1); +} + +TEST(clamp_to_int32, unsigned_minimums) +{ + EXPECT_EQ(clamp_to_int32(UINT64_MIN), 0); + EXPECT_EQ(clamp_to_int32(UINT32_MIN - 0u), 0); + EXPECT_EQ(clamp_to_int32(UINT32_MIN + 1u), 1); +} + +TEST(clamp_to_int8, unsigned_maximums) +{ + EXPECT_EQ(clamp_to_int8(UINT16_MAX), INT8_MAX); + EXPECT_EQ(clamp_to_int8(UINT8_MAX - 0u), INT8_MAX); + EXPECT_EQ(clamp_to_int8(INT16_MAX - 1u), INT8_MAX); +} + +TEST(clamp_to_int16, unsigned_maximums) +{ + EXPECT_EQ(clamp_to_int16(UINT32_MAX), INT16_MAX); + EXPECT_EQ(clamp_to_int16(UINT16_MAX - 0u), INT16_MAX); + EXPECT_EQ(clamp_to_int16(UINT32_MAX - 1u), INT16_MAX); +} + +TEST(clamp_to_int32, unsigned_maximums) +{ + EXPECT_EQ(clamp_to_int32(UINT64_MAX), INT32_MAX); + EXPECT_EQ(clamp_to_int32(UINT32_MAX - 0u), INT32_MAX); + EXPECT_EQ(clamp_to_int32(UINT64_MAX - 1u), INT32_MAX); +} + +TEST(clamp_to_int8, unsigned_literals) +{ + EXPECT_EQ(clamp_to_int8(0u), 0); + EXPECT_EQ(clamp_to_int8(1u), 1); + EXPECT_EQ(clamp_to_int8(100u), 100); + EXPECT_EQ(clamp_to_int8(1'000u), INT8_MAX); +} + +TEST(clamp_to_int16, unsigned_literals) +{ + EXPECT_EQ(clamp_to_int16(0u), 0); + EXPECT_EQ(clamp_to_int16(10u), 10); + EXPECT_EQ(clamp_to_int16(1'000u), 1000); + EXPECT_EQ(clamp_to_int16(10'000u), 10'000); + EXPECT_EQ(clamp_to_int16(100'000u), INT16_MAX); +} + +TEST(clamp_to_int32, unsigned_literals) +{ + EXPECT_EQ(clamp_to_int32(0u), 0); + EXPECT_EQ(clamp_to_int32(100u), 100); + EXPECT_EQ(clamp_to_int32(1'000'000u), 1'000'000); + EXPECT_EQ(clamp_to_int32(1'000'000'000u), 1'000'000'000); + EXPECT_EQ(clamp_to_int32(10'000'000'000u), INT32_MAX); +} + } // namespace |