From d4e00bd47328c8d12b5b36d32192ca398e200592 Mon Sep 17 00:00:00 2001 From: Simon Gene Gottlieb Date: Tue, 16 Jul 2024 13:38:25 +0200 Subject: [PATCH] fix: rename fp_to_string to FpToString to match coding style --- include/yaml-cpp/emitter.h | 2 +- include/yaml-cpp/fp_to_string.h | 20 +- include/yaml-cpp/node/convert.h | 2 +- test/fp_to_string_test.cpp | 340 ++++++++++++++++---------------- 4 files changed, 182 insertions(+), 182 deletions(-) diff --git a/include/yaml-cpp/emitter.h b/include/yaml-cpp/emitter.h index bc8f726..3756be1 100644 --- a/include/yaml-cpp/emitter.h +++ b/include/yaml-cpp/emitter.h @@ -181,7 +181,7 @@ inline Emitter& Emitter::WriteStreamable(T value) { } if (!special) { - stream << fp_to_string(value, stream.precision()); + stream << FpToString(value, stream.precision()); } m_stream << stream.str(); diff --git a/include/yaml-cpp/fp_to_string.h b/include/yaml-cpp/fp_to_string.h index 79618ee..2244f43 100644 --- a/include/yaml-cpp/fp_to_string.h +++ b/include/yaml-cpp/fp_to_string.h @@ -26,13 +26,13 @@ namespace fp_formatting { * * Example: * std::array buffer; - * auto ct = convertToChars(buffer.begin(), buffer.end(), 23, 3); + * auto ct = ConvertToChars(buffer.begin(), buffer.end(), 23, 3); * assert(ct = 3); * assert(buffer[0] == '0'); * assert(buffer[1] == '2'); * assert(buffer[2] == '3'); */ -inline auto convertToChars(char* begin, char* end, size_t value, int width=1) -> int { +inline auto ConvertToChars(char* begin, char* end, size_t value, int width=1) -> int { assert(width >= 1); assert(end >= begin); // end must be after begin assert(end-begin >= width); // Buffer must be large enough @@ -62,7 +62,7 @@ inline auto convertToChars(char* begin, char* end, size_t value, int width=1) -> * converts a value 'v' to a string. Uses dragonbox for formatting. */ template -auto fp_to_string(T v, int precision = 0) -> std::string { +auto FpToString(T v, int precision = 0) -> std::string { // assert(precision > 0); // hardcoded constant, at which exponent should switch to a scientific notation int const lowerExponentThreshold = -5; @@ -81,7 +81,7 @@ auto fp_to_string(T v, int precision = 0) -> std::string { auto r = jkj::dragonbox::to_decimal(v); auto digits = std::array{}; // max digits of size_t is 20. - auto digits_ct = convertToChars(digits.data(), digits.data() + digits.size(), r.significand); + auto digits_ct = ConvertToChars(digits.data(), digits.data() + digits.size(), r.significand); // check if requested precision is lower than // required digits for exact representation @@ -136,7 +136,7 @@ auto fp_to_string(T v, int precision = 0) -> std::string { *(output_ptr++) = 'e'; *(output_ptr++) = (exponent>=0)?'+':'-'; auto exp_digits = std::array{}; - auto exp_digits_ct = convertToChars(exp_digits.data(), exp_digits.data() + exp_digits.size(), std::abs(exponent), /*.precision=*/ 2); + auto exp_digits_ct = ConvertToChars(exp_digits.data(), exp_digits.data() + exp_digits.size(), std::abs(exponent), /*.precision=*/ 2); for (int i{0}; i < exp_digits_ct; ++i) { *(output_ptr++) = exp_digits[i]; } @@ -184,18 +184,18 @@ auto fp_to_string(T v, int precision = 0) -> std::string { } } -inline auto fp_to_string(float v, size_t precision = 0) -> std::string { - return detail::fp_formatting::fp_to_string(v, precision); +inline auto FpToString(float v, size_t precision = 0) -> std::string { + return detail::fp_formatting::FpToString(v, precision); } -inline auto fp_to_string(double v, size_t precision = 0) -> std::string { - return detail::fp_formatting::fp_to_string(v, precision); +inline auto FpToString(double v, size_t precision = 0) -> std::string { + return detail::fp_formatting::FpToString(v, precision); } /** * dragonbox only works for floats/doubles not long double */ -inline auto fp_to_string(long double v, size_t precision = std::numeric_limits::max_digits10) -> std::string { +inline auto FpToString(long double v, size_t precision = std::numeric_limits::max_digits10) -> std::string { std::stringstream ss; ss.precision(precision); ss.imbue(std::locale("C")); diff --git a/include/yaml-cpp/node/convert.h b/include/yaml-cpp/node/convert.h index 224b5d9..3761f79 100644 --- a/include/yaml-cpp/node/convert.h +++ b/include/yaml-cpp/node/convert.h @@ -130,7 +130,7 @@ inner_encode(const T& rhs, std::stringstream& stream){ stream << ".inf"; } } else { - stream << fp_to_string(rhs, stream.precision()); + stream << FpToString(rhs, stream.precision()); } } diff --git a/test/fp_to_string_test.cpp b/test/fp_to_string_test.cpp index 2d6296a..e7c1dcc 100644 --- a/test/fp_to_string_test.cpp +++ b/test/fp_to_string_test.cpp @@ -19,223 +19,223 @@ static std::string convert_with_stringstream(T v, size_t precision = 0) { // Caution: Test involving 'convert_with_stringstream' are based on std::stringstream // having certain printing behavior, if these changes, the unit test might fail. -// This is not a fault of fp_to_string just a weakness of the way these +// This is not a fault of FpToString just a weakness of the way these // tests are constructed TEST(FpToStringTest, conversion_double) { - // Issue motivating fp_to_string function, + // Issue motivating FpToString function, // https://github.com/jbeder/yaml-cpp/issues/1289 // Original problem at hand: - EXPECT_EQ("34.34", fp_to_string(34.34)); - EXPECT_EQ("56.56", fp_to_string(56.56)); - EXPECT_EQ("12.12", fp_to_string(12.12)); - EXPECT_EQ("78.78", fp_to_string(78.78)); + EXPECT_EQ("34.34", FpToString(34.34)); + EXPECT_EQ("56.56", FpToString(56.56)); + EXPECT_EQ("12.12", FpToString(12.12)); + EXPECT_EQ("78.78", FpToString(78.78)); // Special challenge with rounding // https://github.com/jbeder/yaml-cpp/issues/1289#issuecomment-2211705536 - EXPECT_EQ("1.54743e+26", fp_to_string(1.5474250491e+26f)); - EXPECT_EQ(convert_with_stringstream(1.5474250491e+26f), fp_to_string(1.5474250491e+26f)); - EXPECT_EQ("1.5474251e+26", fp_to_string(1.5474250491e+26f, 8)); + EXPECT_EQ("1.54743e+26", FpToString(1.5474250491e+26f)); + EXPECT_EQ(convert_with_stringstream(1.5474250491e+26f), FpToString(1.5474250491e+26f)); + EXPECT_EQ("1.5474251e+26", FpToString(1.5474250491e+26f, 8)); // prints the same way as std::stringstream - EXPECT_EQ(convert_with_stringstream(1.), fp_to_string(1.)); - EXPECT_EQ(convert_with_stringstream(1e0), fp_to_string(1e0)); - EXPECT_EQ(convert_with_stringstream(1e1), fp_to_string(1e1)); - EXPECT_EQ(convert_with_stringstream(1e2), fp_to_string(1e2)); - EXPECT_EQ(convert_with_stringstream(1e3), fp_to_string(1e3)); - EXPECT_EQ(convert_with_stringstream(1e4), fp_to_string(1e4)); - EXPECT_EQ(convert_with_stringstream(1e5), fp_to_string(1e5)); - EXPECT_EQ(convert_with_stringstream(1e6), fp_to_string(1e6)); - EXPECT_EQ(convert_with_stringstream(1e7), fp_to_string(1e7)); - EXPECT_EQ(convert_with_stringstream(1e8), fp_to_string(1e8)); - EXPECT_EQ(convert_with_stringstream(1e9), fp_to_string(1e9)); + EXPECT_EQ(convert_with_stringstream(1.), FpToString(1.)); + EXPECT_EQ(convert_with_stringstream(1e0), FpToString(1e0)); + EXPECT_EQ(convert_with_stringstream(1e1), FpToString(1e1)); + EXPECT_EQ(convert_with_stringstream(1e2), FpToString(1e2)); + EXPECT_EQ(convert_with_stringstream(1e3), FpToString(1e3)); + EXPECT_EQ(convert_with_stringstream(1e4), FpToString(1e4)); + EXPECT_EQ(convert_with_stringstream(1e5), FpToString(1e5)); + EXPECT_EQ(convert_with_stringstream(1e6), FpToString(1e6)); + EXPECT_EQ(convert_with_stringstream(1e7), FpToString(1e7)); + EXPECT_EQ(convert_with_stringstream(1e8), FpToString(1e8)); + EXPECT_EQ(convert_with_stringstream(1e9), FpToString(1e9)); // Print by default values below 1e6 without scientific notation - EXPECT_EQ("1", fp_to_string(1.)); - EXPECT_EQ("1", fp_to_string(1e0)); - EXPECT_EQ("10", fp_to_string(1e1)); - EXPECT_EQ("100", fp_to_string(1e2)); - EXPECT_EQ("1000", fp_to_string(1e3)); - EXPECT_EQ("10000", fp_to_string(1e4)); - EXPECT_EQ("100000", fp_to_string(1e5)); - EXPECT_EQ("1e+06", fp_to_string(1e6)); - EXPECT_EQ("1e+07", fp_to_string(1e7)); - EXPECT_EQ("1e+08", fp_to_string(1e8)); - EXPECT_EQ("1e+09", fp_to_string(1e9)); + EXPECT_EQ("1", FpToString(1.)); + EXPECT_EQ("1", FpToString(1e0)); + EXPECT_EQ("10", FpToString(1e1)); + EXPECT_EQ("100", FpToString(1e2)); + EXPECT_EQ("1000", FpToString(1e3)); + EXPECT_EQ("10000", FpToString(1e4)); + EXPECT_EQ("100000", FpToString(1e5)); + EXPECT_EQ("1e+06", FpToString(1e6)); + EXPECT_EQ("1e+07", FpToString(1e7)); + EXPECT_EQ("1e+08", FpToString(1e8)); + EXPECT_EQ("1e+09", FpToString(1e9)); // prints the same way as std::stringstream - EXPECT_EQ(convert_with_stringstream(1.), fp_to_string(1.)); - EXPECT_EQ(convert_with_stringstream(1e-0), fp_to_string(1e-0)); - EXPECT_EQ(convert_with_stringstream(1e-1), fp_to_string(1e-1)); - EXPECT_EQ(convert_with_stringstream(1e-2), fp_to_string(1e-2)); - EXPECT_EQ(convert_with_stringstream(1e-3), fp_to_string(1e-3)); - EXPECT_EQ(convert_with_stringstream(1e-4), fp_to_string(1e-4)); - EXPECT_EQ(convert_with_stringstream(1e-5), fp_to_string(1e-5)); - EXPECT_EQ(convert_with_stringstream(1e-6), fp_to_string(1e-6)); - EXPECT_EQ(convert_with_stringstream(1e-7), fp_to_string(1e-7)); - EXPECT_EQ(convert_with_stringstream(1e-8), fp_to_string(1e-8)); - EXPECT_EQ(convert_with_stringstream(1e-9), fp_to_string(1e-9)); + EXPECT_EQ(convert_with_stringstream(1.), FpToString(1.)); + EXPECT_EQ(convert_with_stringstream(1e-0), FpToString(1e-0)); + EXPECT_EQ(convert_with_stringstream(1e-1), FpToString(1e-1)); + EXPECT_EQ(convert_with_stringstream(1e-2), FpToString(1e-2)); + EXPECT_EQ(convert_with_stringstream(1e-3), FpToString(1e-3)); + EXPECT_EQ(convert_with_stringstream(1e-4), FpToString(1e-4)); + EXPECT_EQ(convert_with_stringstream(1e-5), FpToString(1e-5)); + EXPECT_EQ(convert_with_stringstream(1e-6), FpToString(1e-6)); + EXPECT_EQ(convert_with_stringstream(1e-7), FpToString(1e-7)); + EXPECT_EQ(convert_with_stringstream(1e-8), FpToString(1e-8)); + EXPECT_EQ(convert_with_stringstream(1e-9), FpToString(1e-9)); // Print by default values above 1e-5 without scientific notation - EXPECT_EQ("1", fp_to_string(1.)); - EXPECT_EQ("1", fp_to_string(1e-0)); - EXPECT_EQ("0.1", fp_to_string(1e-1)); - EXPECT_EQ("0.01", fp_to_string(1e-2)); - EXPECT_EQ("0.001", fp_to_string(1e-3)); - EXPECT_EQ("0.0001", fp_to_string(1e-4)); - EXPECT_EQ("1e-05", fp_to_string(1e-5)); - EXPECT_EQ("1e-06", fp_to_string(1e-6)); - EXPECT_EQ("1e-07", fp_to_string(1e-7)); - EXPECT_EQ("1e-08", fp_to_string(1e-8)); - EXPECT_EQ("1e-09", fp_to_string(1e-9)); + EXPECT_EQ("1", FpToString(1.)); + EXPECT_EQ("1", FpToString(1e-0)); + EXPECT_EQ("0.1", FpToString(1e-1)); + EXPECT_EQ("0.01", FpToString(1e-2)); + EXPECT_EQ("0.001", FpToString(1e-3)); + EXPECT_EQ("0.0001", FpToString(1e-4)); + EXPECT_EQ("1e-05", FpToString(1e-5)); + EXPECT_EQ("1e-06", FpToString(1e-6)); + EXPECT_EQ("1e-07", FpToString(1e-7)); + EXPECT_EQ("1e-08", FpToString(1e-8)); + EXPECT_EQ("1e-09", FpToString(1e-9)); // changing precision has the same effect as std::stringstream - EXPECT_EQ(convert_with_stringstream(123., 1), fp_to_string(123., 1)); - EXPECT_EQ(convert_with_stringstream(1234567., 7), fp_to_string(1234567., 7)); - EXPECT_EQ(convert_with_stringstream(12345.67, 7), fp_to_string(12345.67, 7)); - EXPECT_EQ(convert_with_stringstream(1234567e-9, 7), fp_to_string(1234567e-9, 7)); - EXPECT_EQ(convert_with_stringstream(1234567e-9, 1), fp_to_string(1234567e-9, 1)); + EXPECT_EQ(convert_with_stringstream(123., 1), FpToString(123., 1)); + EXPECT_EQ(convert_with_stringstream(1234567., 7), FpToString(1234567., 7)); + EXPECT_EQ(convert_with_stringstream(12345.67, 7), FpToString(12345.67, 7)); + EXPECT_EQ(convert_with_stringstream(1234567e-9, 7), FpToString(1234567e-9, 7)); + EXPECT_EQ(convert_with_stringstream(1234567e-9, 1), FpToString(1234567e-9, 1)); // known example that is difficult to round - EXPECT_EQ("1", fp_to_string(0.9999, 2)); - EXPECT_EQ("-1", fp_to_string(-0.9999, 2)); + EXPECT_EQ("1", FpToString(0.9999, 2)); + EXPECT_EQ("-1", FpToString(-0.9999, 2)); // some more random tests - EXPECT_EQ("1.25", fp_to_string(1.25)); - EXPECT_EQ("34.34", fp_to_string(34.34)); - EXPECT_EQ("1e+20", fp_to_string(1e+20)); - EXPECT_EQ("1.1e+20", fp_to_string(1.1e+20)); - EXPECT_EQ("1e-20", fp_to_string(1e-20)); - EXPECT_EQ("1.1e-20", fp_to_string(1.1e-20)); - EXPECT_EQ("1e-20", fp_to_string(0.1e-19)); - EXPECT_EQ("1.1e-20", fp_to_string(0.11e-19)); + EXPECT_EQ("1.25", FpToString(1.25)); + EXPECT_EQ("34.34", FpToString(34.34)); + EXPECT_EQ("1e+20", FpToString(1e+20)); + EXPECT_EQ("1.1e+20", FpToString(1.1e+20)); + EXPECT_EQ("1e-20", FpToString(1e-20)); + EXPECT_EQ("1.1e-20", FpToString(1.1e-20)); + EXPECT_EQ("1e-20", FpToString(0.1e-19)); + EXPECT_EQ("1.1e-20", FpToString(0.11e-19)); - EXPECT_EQ("19", fp_to_string(18.9, 2)); - EXPECT_EQ("20", fp_to_string(19.9, 2)); - EXPECT_EQ("2e+01", fp_to_string(19.9, 1)); - EXPECT_EQ("1.2e-05", fp_to_string(1.234e-5, 2)); - EXPECT_EQ("1.3e-05", fp_to_string(1.299e-5, 2)); + EXPECT_EQ("19", FpToString(18.9, 2)); + EXPECT_EQ("20", FpToString(19.9, 2)); + EXPECT_EQ("2e+01", FpToString(19.9, 1)); + EXPECT_EQ("1.2e-05", FpToString(1.234e-5, 2)); + EXPECT_EQ("1.3e-05", FpToString(1.299e-5, 2)); - EXPECT_EQ("-1", fp_to_string(-1.)); - EXPECT_EQ("-1.25", fp_to_string(-1.25)); - EXPECT_EQ("-34.34", fp_to_string(-34.34)); - EXPECT_EQ("-1e+20", fp_to_string(-1e+20)); - EXPECT_EQ("-1.1e+20", fp_to_string(-1.1e+20)); - EXPECT_EQ("-1e-20", fp_to_string(-1e-20)); - EXPECT_EQ("-1.1e-20", fp_to_string(-1.1e-20)); - EXPECT_EQ("-1e-20", fp_to_string(-0.1e-19)); - EXPECT_EQ("-1.1e-20", fp_to_string(-0.11e-19)); + EXPECT_EQ("-1", FpToString(-1.)); + EXPECT_EQ("-1.25", FpToString(-1.25)); + EXPECT_EQ("-34.34", FpToString(-34.34)); + EXPECT_EQ("-1e+20", FpToString(-1e+20)); + EXPECT_EQ("-1.1e+20", FpToString(-1.1e+20)); + EXPECT_EQ("-1e-20", FpToString(-1e-20)); + EXPECT_EQ("-1.1e-20", FpToString(-1.1e-20)); + EXPECT_EQ("-1e-20", FpToString(-0.1e-19)); + EXPECT_EQ("-1.1e-20", FpToString(-0.11e-19)); - EXPECT_EQ("-19", fp_to_string(-18.9, 2)); - EXPECT_EQ("-20", fp_to_string(-19.9, 2)); - EXPECT_EQ("-2e+01", fp_to_string(-19.9, 1)); - EXPECT_EQ("-1.2e-05", fp_to_string(-1.234e-5, 2)); - EXPECT_EQ("-1.3e-05", fp_to_string(-1.299e-5, 2)); + EXPECT_EQ("-19", FpToString(-18.9, 2)); + EXPECT_EQ("-20", FpToString(-19.9, 2)); + EXPECT_EQ("-2e+01", FpToString(-19.9, 1)); + EXPECT_EQ("-1.2e-05", FpToString(-1.234e-5, 2)); + EXPECT_EQ("-1.3e-05", FpToString(-1.299e-5, 2)); } TEST(FpToStringTest, conversion_float) { - // Issue motivating fp_to_string function, + // Issue motivating FpToString function, // https://github.com/jbeder/yaml-cpp/issues/1289 // Original problem at hand: - EXPECT_EQ("34.34", fp_to_string(34.34f)); - EXPECT_EQ("56.56", fp_to_string(56.56f)); - EXPECT_EQ("12.12", fp_to_string(12.12f)); - EXPECT_EQ("78.78", fp_to_string(78.78f)); + EXPECT_EQ("34.34", FpToString(34.34f)); + EXPECT_EQ("56.56", FpToString(56.56f)); + EXPECT_EQ("12.12", FpToString(12.12f)); + EXPECT_EQ("78.78", FpToString(78.78f)); // prints the same way as std::stringstream - EXPECT_EQ(convert_with_stringstream(1.f), fp_to_string(1.f)); - EXPECT_EQ(convert_with_stringstream(1e0f), fp_to_string(1e0f)); - EXPECT_EQ(convert_with_stringstream(1e1f), fp_to_string(1e1f)); - EXPECT_EQ(convert_with_stringstream(1e2f), fp_to_string(1e2f)); - EXPECT_EQ(convert_with_stringstream(1e3f), fp_to_string(1e3f)); - EXPECT_EQ(convert_with_stringstream(1e4f), fp_to_string(1e4f)); - EXPECT_EQ(convert_with_stringstream(1e5f), fp_to_string(1e5f)); - EXPECT_EQ(convert_with_stringstream(1e6f), fp_to_string(1e6f)); - EXPECT_EQ(convert_with_stringstream(1e7f), fp_to_string(1e7f)); - EXPECT_EQ(convert_with_stringstream(1e8f), fp_to_string(1e8f)); - EXPECT_EQ(convert_with_stringstream(1e9f), fp_to_string(1e9f)); + EXPECT_EQ(convert_with_stringstream(1.f), FpToString(1.f)); + EXPECT_EQ(convert_with_stringstream(1e0f), FpToString(1e0f)); + EXPECT_EQ(convert_with_stringstream(1e1f), FpToString(1e1f)); + EXPECT_EQ(convert_with_stringstream(1e2f), FpToString(1e2f)); + EXPECT_EQ(convert_with_stringstream(1e3f), FpToString(1e3f)); + EXPECT_EQ(convert_with_stringstream(1e4f), FpToString(1e4f)); + EXPECT_EQ(convert_with_stringstream(1e5f), FpToString(1e5f)); + EXPECT_EQ(convert_with_stringstream(1e6f), FpToString(1e6f)); + EXPECT_EQ(convert_with_stringstream(1e7f), FpToString(1e7f)); + EXPECT_EQ(convert_with_stringstream(1e8f), FpToString(1e8f)); + EXPECT_EQ(convert_with_stringstream(1e9f), FpToString(1e9f)); // Print by default values below 1e6 without scientific notation - EXPECT_EQ("1", fp_to_string(1.f)); - EXPECT_EQ("1", fp_to_string(1e0f)); - EXPECT_EQ("10", fp_to_string(1e1f)); - EXPECT_EQ("100", fp_to_string(1e2f)); - EXPECT_EQ("1000", fp_to_string(1e3f)); - EXPECT_EQ("10000", fp_to_string(1e4f)); - EXPECT_EQ("100000", fp_to_string(1e5f)); - EXPECT_EQ("1e+06", fp_to_string(1e6f)); - EXPECT_EQ("1e+07", fp_to_string(1e7f)); - EXPECT_EQ("1e+08", fp_to_string(1e8f)); - EXPECT_EQ("1e+09", fp_to_string(1e9f)); + EXPECT_EQ("1", FpToString(1.f)); + EXPECT_EQ("1", FpToString(1e0f)); + EXPECT_EQ("10", FpToString(1e1f)); + EXPECT_EQ("100", FpToString(1e2f)); + EXPECT_EQ("1000", FpToString(1e3f)); + EXPECT_EQ("10000", FpToString(1e4f)); + EXPECT_EQ("100000", FpToString(1e5f)); + EXPECT_EQ("1e+06", FpToString(1e6f)); + EXPECT_EQ("1e+07", FpToString(1e7f)); + EXPECT_EQ("1e+08", FpToString(1e8f)); + EXPECT_EQ("1e+09", FpToString(1e9f)); // prints the same way as std::stringstream - EXPECT_EQ(convert_with_stringstream(1.f), fp_to_string(1.f)); - EXPECT_EQ(convert_with_stringstream(1e-0f), fp_to_string(1e-0f)); - EXPECT_EQ(convert_with_stringstream(1e-1f), fp_to_string(1e-1f)); - EXPECT_EQ(convert_with_stringstream(1e-2f), fp_to_string(1e-2f)); - EXPECT_EQ(convert_with_stringstream(1e-3f), fp_to_string(1e-3f)); - EXPECT_EQ(convert_with_stringstream(1e-4f), fp_to_string(1e-4f)); - EXPECT_EQ(convert_with_stringstream(1e-5f), fp_to_string(1e-5f)); - EXPECT_EQ(convert_with_stringstream(1e-6f), fp_to_string(1e-6f)); - EXPECT_EQ(convert_with_stringstream(1e-7f), fp_to_string(1e-7f)); - EXPECT_EQ(convert_with_stringstream(1e-8f), fp_to_string(1e-8f)); - EXPECT_EQ(convert_with_stringstream(1e-9f), fp_to_string(1e-9f)); + EXPECT_EQ(convert_with_stringstream(1.f), FpToString(1.f)); + EXPECT_EQ(convert_with_stringstream(1e-0f), FpToString(1e-0f)); + EXPECT_EQ(convert_with_stringstream(1e-1f), FpToString(1e-1f)); + EXPECT_EQ(convert_with_stringstream(1e-2f), FpToString(1e-2f)); + EXPECT_EQ(convert_with_stringstream(1e-3f), FpToString(1e-3f)); + EXPECT_EQ(convert_with_stringstream(1e-4f), FpToString(1e-4f)); + EXPECT_EQ(convert_with_stringstream(1e-5f), FpToString(1e-5f)); + EXPECT_EQ(convert_with_stringstream(1e-6f), FpToString(1e-6f)); + EXPECT_EQ(convert_with_stringstream(1e-7f), FpToString(1e-7f)); + EXPECT_EQ(convert_with_stringstream(1e-8f), FpToString(1e-8f)); + EXPECT_EQ(convert_with_stringstream(1e-9f), FpToString(1e-9f)); // Print by default values above 1e-5 without scientific notation - EXPECT_EQ("1", fp_to_string(1.f)); - EXPECT_EQ("1", fp_to_string(1e-0f)); - EXPECT_EQ("0.1", fp_to_string(1e-1f)); - EXPECT_EQ("0.01", fp_to_string(1e-2f)); - EXPECT_EQ("0.001", fp_to_string(1e-3f)); - EXPECT_EQ("0.0001", fp_to_string(1e-4f)); - EXPECT_EQ("1e-05", fp_to_string(1e-5f)); - EXPECT_EQ("1e-06", fp_to_string(1e-6f)); - EXPECT_EQ("1e-07", fp_to_string(1e-7f)); - EXPECT_EQ("1e-08", fp_to_string(1e-8f)); - EXPECT_EQ("1e-09", fp_to_string(1e-9f)); + EXPECT_EQ("1", FpToString(1.f)); + EXPECT_EQ("1", FpToString(1e-0f)); + EXPECT_EQ("0.1", FpToString(1e-1f)); + EXPECT_EQ("0.01", FpToString(1e-2f)); + EXPECT_EQ("0.001", FpToString(1e-3f)); + EXPECT_EQ("0.0001", FpToString(1e-4f)); + EXPECT_EQ("1e-05", FpToString(1e-5f)); + EXPECT_EQ("1e-06", FpToString(1e-6f)); + EXPECT_EQ("1e-07", FpToString(1e-7f)); + EXPECT_EQ("1e-08", FpToString(1e-8f)); + EXPECT_EQ("1e-09", FpToString(1e-9f)); // changing precision has the same effect as std::stringstream - EXPECT_EQ(convert_with_stringstream(123.f, 1), fp_to_string(123.f, 1)); - EXPECT_EQ(convert_with_stringstream(1234567.f, 7), fp_to_string(1234567.f, 7)); - EXPECT_EQ(convert_with_stringstream(12345.67f, 7), fp_to_string(12345.67f, 7)); - EXPECT_EQ(convert_with_stringstream(1234567e-9f, 7), fp_to_string(1234567e-9f, 7)); - EXPECT_EQ(convert_with_stringstream(1234567e-9f, 1), fp_to_string(1234567e-9f, 1)); + EXPECT_EQ(convert_with_stringstream(123.f, 1), FpToString(123.f, 1)); + EXPECT_EQ(convert_with_stringstream(1234567.f, 7), FpToString(1234567.f, 7)); + EXPECT_EQ(convert_with_stringstream(12345.67f, 7), FpToString(12345.67f, 7)); + EXPECT_EQ(convert_with_stringstream(1234567e-9f, 7), FpToString(1234567e-9f, 7)); + EXPECT_EQ(convert_with_stringstream(1234567e-9f, 1), FpToString(1234567e-9f, 1)); // known example that is difficult to round - EXPECT_EQ("1", fp_to_string(0.9999f, 2)); - EXPECT_EQ("-1", fp_to_string(-0.9999f, 2)); + EXPECT_EQ("1", FpToString(0.9999f, 2)); + EXPECT_EQ("-1", FpToString(-0.9999f, 2)); // some more random tests - EXPECT_EQ("1.25", fp_to_string(1.25f)); - EXPECT_EQ("34.34", fp_to_string(34.34f)); - EXPECT_EQ("1e+20", fp_to_string(1e+20f)); - EXPECT_EQ("1.1e+20", fp_to_string(1.1e+20f)); - EXPECT_EQ("1e-20", fp_to_string(1e-20f)); - EXPECT_EQ("1.1e-20", fp_to_string(1.1e-20f)); - EXPECT_EQ("1e-20", fp_to_string(0.1e-19f)); - EXPECT_EQ("1.1e-20", fp_to_string(0.11e-19f)); + EXPECT_EQ("1.25", FpToString(1.25f)); + EXPECT_EQ("34.34", FpToString(34.34f)); + EXPECT_EQ("1e+20", FpToString(1e+20f)); + EXPECT_EQ("1.1e+20", FpToString(1.1e+20f)); + EXPECT_EQ("1e-20", FpToString(1e-20f)); + EXPECT_EQ("1.1e-20", FpToString(1.1e-20f)); + EXPECT_EQ("1e-20", FpToString(0.1e-19f)); + EXPECT_EQ("1.1e-20", FpToString(0.11e-19f)); - EXPECT_EQ("19", fp_to_string(18.9f, 2)); - EXPECT_EQ("20", fp_to_string(19.9f, 2)); - EXPECT_EQ("2e+01", fp_to_string(19.9f, 1)); - EXPECT_EQ("1.2e-05", fp_to_string(1.234e-5f, 2)); - EXPECT_EQ("1.3e-05", fp_to_string(1.299e-5f, 2)); + EXPECT_EQ("19", FpToString(18.9f, 2)); + EXPECT_EQ("20", FpToString(19.9f, 2)); + EXPECT_EQ("2e+01", FpToString(19.9f, 1)); + EXPECT_EQ("1.2e-05", FpToString(1.234e-5f, 2)); + EXPECT_EQ("1.3e-05", FpToString(1.299e-5f, 2)); - EXPECT_EQ("-1", fp_to_string(-1.f)); - EXPECT_EQ("-1.25", fp_to_string(-1.25f)); - EXPECT_EQ("-34.34", fp_to_string(-34.34f)); - EXPECT_EQ("-1e+20", fp_to_string(-1e+20f)); - EXPECT_EQ("-1.1e+20", fp_to_string(-1.1e+20f)); - EXPECT_EQ("-1e-20", fp_to_string(-1e-20f)); - EXPECT_EQ("-1.1e-20", fp_to_string(-1.1e-20f)); - EXPECT_EQ("-1e-20", fp_to_string(-0.1e-19f)); - EXPECT_EQ("-1.1e-20", fp_to_string(-0.11e-19f)); + EXPECT_EQ("-1", FpToString(-1.f)); + EXPECT_EQ("-1.25", FpToString(-1.25f)); + EXPECT_EQ("-34.34", FpToString(-34.34f)); + EXPECT_EQ("-1e+20", FpToString(-1e+20f)); + EXPECT_EQ("-1.1e+20", FpToString(-1.1e+20f)); + EXPECT_EQ("-1e-20", FpToString(-1e-20f)); + EXPECT_EQ("-1.1e-20", FpToString(-1.1e-20f)); + EXPECT_EQ("-1e-20", FpToString(-0.1e-19f)); + EXPECT_EQ("-1.1e-20", FpToString(-0.11e-19f)); - EXPECT_EQ("-19", fp_to_string(-18.9f, 2)); - EXPECT_EQ("-20", fp_to_string(-19.9f, 2)); - EXPECT_EQ("-2e+01", fp_to_string(-19.9f, 1)); - EXPECT_EQ("-1.2e-05", fp_to_string(-1.234e-5f, 2)); - EXPECT_EQ("-1.3e-05", fp_to_string(-1.299e-5f, 2)); + EXPECT_EQ("-19", FpToString(-18.9f, 2)); + EXPECT_EQ("-20", FpToString(-19.9f, 2)); + EXPECT_EQ("-2e+01", FpToString(-19.9f, 1)); + EXPECT_EQ("-1.2e-05", FpToString(-1.234e-5f, 2)); + EXPECT_EQ("-1.3e-05", FpToString(-1.299e-5f, 2)); } } // namespace