diff --git a/include/util/string_util.hpp b/include/util/string_util.hpp index ae881c514..874a1d284 100644 --- a/include/util/string_util.hpp +++ b/include/util/string_util.hpp @@ -10,53 +10,6 @@ namespace osrm::util { -// precision: position after decimal point -// length: maximum number of digits including comma and decimals -// work with negative values to prevent overflowing when taking -value -template char *printInt(char *buffer, int value) -{ - static_assert(length > 0, "length must be positive"); - static_assert(precision > 0, "precision must be positive"); - - const bool minus = [&value] - { - if (value >= 0) - { - value = -value; - return false; - } - return true; - }(); - - buffer += length - 1; - for (int i = 0; i < precision; ++i) - { - *buffer = '0' - (value % 10); - value /= 10; - --buffer; - } - *buffer = '.'; - --buffer; - - for (int i = precision + 1; i < length; ++i) - { - *buffer = '0' - (value % 10); - value /= 10; - if (value == 0) - { - break; - } - --buffer; - } - - if (minus) - { - --buffer; - *buffer = '-'; - } - return buffer; -} - inline bool RequiresJSONStringEscaping(const std::string &string) { for (const char letter : string) diff --git a/unit_tests/util/string_util.cpp b/unit_tests/util/string_util.cpp index f027ca8e1..b3470644a 100644 --- a/unit_tests/util/string_util.cpp +++ b/unit_tests/util/string_util.cpp @@ -2,7 +2,7 @@ #include -#include +#include BOOST_AUTO_TEST_SUITE(string_util) @@ -27,20 +27,4 @@ BOOST_AUTO_TEST_CASE(json_escaping) BOOST_CHECK(!RequiresJSONStringEscaping("Aleja Solidarnosci")); } -BOOST_AUTO_TEST_CASE(print_int) -{ - const std::string input{"\b\\"}; - char buffer[12]; - buffer[11] = 0; // zero termination - std::string output = printInt<11, 8>(buffer, 314158976); - BOOST_CHECK_EQUAL(output, "3.14158976"); - - buffer[11] = 0; - output = printInt<11, 8>(buffer, 0); - BOOST_CHECK_EQUAL(output, "0.00000000"); - - output = printInt<11, 8>(buffer, -314158976); - BOOST_CHECK_EQUAL(output, "-3.14158976"); -} - BOOST_AUTO_TEST_SUITE_END()