Skip to content

Commit fa343ed

Browse files
authored
Merge pull request InsightSoftwareConsortium#5248 from N-Dekker/Use-UnsignedPower-in-NumberToString
BUG: Replace `pow` with `Math::UnsignedPower` in NumberToString GTest
2 parents 6a5db85 + 762b472 commit fa343ed

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

Modules/Core/Common/test/itkNumberToStringGTest.cxx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
// First include the header file to be tested:
2020
#include "itkNumberToString.h"
21+
#include "itkMath.h"
2122
#include <gtest/gtest.h>
22-
#include <cmath> // For std::pow.
2323

2424
namespace
2525
{
@@ -91,22 +91,22 @@ Test_decimal_notation_supports_up_to_twentyone_digits()
9191
const itk::NumberToString<TValue> numberToString{};
9292
const auto message = std::string("Floating point type: ") + floatingPointTypeName<TValue>;
9393

94-
for (int8_t exponent{ 20 }; exponent > 0; --exponent)
94+
for (uint64_t exponent{ 20 }; exponent > 0; --exponent)
9595
{
96-
const TValue power_of_ten{ std::pow(TValue{ 10 }, static_cast<TValue>(exponent)) };
96+
const TValue power_of_ten{ static_cast<TValue>(itk::Math::UnsignedPower(10, exponent - 1)) * TValue{ 10 } };
9797

9898
// Test +/- 10 ^ exponent
9999
EXPECT_EQ(numberToString(power_of_ten), '1' + std::string(exponent, '0')) << message;
100100
EXPECT_EQ(numberToString(-power_of_ten), "-1" + std::string(exponent, '0')) << message;
101101
}
102102

103-
for (int8_t exponent{ -6 }; exponent < 0; ++exponent)
103+
for (uint64_t exponent{ 6 }; exponent > 0; --exponent)
104104
{
105-
const TValue power_of_ten{ std::pow(TValue{ 10 }, static_cast<TValue>(exponent)) };
105+
const TValue power_of_ten{ TValue{ 1 } / static_cast<TValue>(itk::Math::UnsignedPower(10, exponent)) };
106106

107-
// Test +/- 10 ^ exponent
108-
EXPECT_EQ(numberToString(power_of_ten), "0." + std::string(-1 - exponent, '0') + '1') << message;
109-
EXPECT_EQ(numberToString(-power_of_ten), "-0." + std::string(-1 - exponent, '0') + '1') << message;
107+
// Test +/- 10 ^ -exponent
108+
EXPECT_EQ(numberToString(power_of_ten), "0." + std::string(exponent - 1, '0') + '1') << message;
109+
EXPECT_EQ(numberToString(-power_of_ten), "-0." + std::string(exponent - 1, '0') + '1') << message;
110110
}
111111
}
112112

0 commit comments

Comments
 (0)