ryu
ryu copied to clipboard
s2f() and s2d() fail with trailing decimal zeros
It is easy to reproduce this in the unit tests:
// s2f_test.cc
TEST(S2fTest, TrailingDecimalZeros) {
EXPECT_S2F(1.f, "1");
EXPECT_S2F(1.f, "1.000");
EXPECT_S2F(1.f, "1.000000000"); // fail: INPUT_TOO_LONG
EXPECT_S2F(8388605.f, "8388605");
EXPECT_S2F(8388605.f, "8388605.00");
EXPECT_S2F(8388605.f, "8388605.000"); // fail: INPUT_TOO_LONG
}
// s2d_test.cc
TEST(S2dTest, TrailingDecimalZeros) {
EXPECT_S2D(1. , "1");
EXPECT_S2D(1. , "1.000");
EXPECT_S2D(1. , "1.0000000000000000");
EXPECT_S2D(1. , "1.00000000000000000"); // fail: INPUT_TOO_LONG
EXPECT_S2D(8388605., "8388605");
EXPECT_S2D(8388605., "8388605.000");
EXPECT_S2D(8388605., "8388605.0000000000");
EXPECT_S2D(8388605., "8388605.00000000000"); // fail: INPUT_TOO_LONG
}