Added to_string_rounded_freq() function (#1271)

* Added to_string_rounded_freq function

* Added to_string_rounded_freq function

* Clang

* Clang try #2

* Use constexpr for pow10 array

* Additional string_format test cases

* Specify std=c++17 for g++ versions that default to an older standard

* Corrected string_format test cases
This commit is contained in:
Mark Thompson 2023-07-14 13:38:02 -05:00 committed by GitHub
parent 4985d836ea
commit 61cb57e48d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 71 additions and 8 deletions

View file

@ -32,13 +32,41 @@ TEST_CASE("to_string_dec_uint64 returns correct value.") {
CHECK_EQ(to_string_dec_uint64(1'234'567'891), "1234567891");
}
/*TEST_CASE("to_string_freq returns correct value.") {
CHECK_EQ(to_string_freq(0), "0");
CHECK_EQ(to_string_freq(1), "1");
CHECK_EQ(to_string_freq(1'000'000), "1000000");
TEST_CASE("to_string_freq returns correct value.") {
CHECK_EQ(to_string_freq(0), " 0");
CHECK_EQ(to_string_freq(1), " 1");
CHECK_EQ(to_string_freq(1'000'000), " 1000000");
CHECK_EQ(to_string_freq(1'234'567'890), "1234567890");
CHECK_EQ(to_string_freq(1'234'567'891), "1234567891");
}*/
}
TEST_CASE("to_string_short_freq returns correct value.") {
CHECK_EQ(to_string_short_freq(0), " 0.0000");
CHECK_EQ(to_string_short_freq(49), " 0.0000");
CHECK_EQ(to_string_short_freq(50), " 0.0001");
CHECK_EQ(to_string_short_freq(1'000'049), " 1.0000");
CHECK_EQ(to_string_short_freq(1'000'050), " 1.0001");
CHECK_EQ(to_string_short_freq(1'234'567'850), "1234.5679");
CHECK_EQ(to_string_short_freq(1'234'567'849), "1234.5678");
}
TEST_CASE("to_string_rounded_freq returns correct value.") {
CHECK_EQ(to_string_rounded_freq(0, 0), "0");
CHECK_EQ(to_string_rounded_freq(0, 2), "0.00");
CHECK_EQ(to_string_rounded_freq(49, 4), "0.0000");
CHECK_EQ(to_string_rounded_freq(50, 4), "0.0001");
CHECK_EQ(to_string_rounded_freq(23'456, 4), "0.0235");
CHECK_EQ(to_string_rounded_freq(1'000'000, 4), "1.0000");
CHECK_EQ(to_string_rounded_freq(1'000'567'849, 4), "1000.5678");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 0), "1234");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 1), "1234.6");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 2), "1234.57");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 3), "1234.568");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 4), "1234.5679");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 5), "1234.56789");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 6), "1234.567891");
CHECK_EQ(to_string_rounded_freq(1'234'567'891, 9), "1234.567891");
}
TEST_CASE("trim removes whitespace.") {
CHECK(trim(" foo\n") == "foo");