stdio fmt: fix %g tests to match glibc, add more tests

This commit is contained in:
Gavin Hayes 2022-08-17 23:36:11 -04:00
parent b4d07616a3
commit e506e71b0e

View file

@ -70,12 +70,24 @@ TEST(fmt, g) {
EXPECT_STREQ("+1", gc(xasprintf("%+g", 1.))); EXPECT_STREQ("+1", gc(xasprintf("%+g", 1.)));
EXPECT_STREQ("-1", gc(xasprintf("%g", -1.))); EXPECT_STREQ("-1", gc(xasprintf("%g", -1.)));
EXPECT_STREQ("10", gc(xasprintf("%g", 10.))); EXPECT_STREQ("10", gc(xasprintf("%g", 10.)));
EXPECT_STREQ("10", gc(xasprintf("%.0g", 10.)));
EXPECT_STREQ("-10", gc(xasprintf("%g", -10.))); EXPECT_STREQ("-10", gc(xasprintf("%g", -10.)));
EXPECT_STREQ("-10", gc(xasprintf("%.0g", -10.))); EXPECT_STREQ("1e+01", gc(xasprintf("%.0g", 10.)));
EXPECT_STREQ("-1e+01", gc(xasprintf("%.0g", -10.)));
EXPECT_STREQ("1", gc(xasprintf("%.0g", 1.0)));
EXPECT_STREQ("1e-05", gc(xasprintf("%.0g", 0.00001)));
EXPECT_STREQ("0.0001", gc(xasprintf("%.0g", 0.0001)));
EXPECT_STREQ("1e+01", gc(xasprintf("%.1g", 10.)));
EXPECT_STREQ("-1e+01", gc(xasprintf("%.1g", -10.)));
EXPECT_STREQ("1", gc(xasprintf("%.1g", 1.0)));
EXPECT_STREQ("1e-05", gc(xasprintf("%.1g", 0.00001)));
EXPECT_STREQ("0.0001", gc(xasprintf("%.1g", 0.0001)));
EXPECT_STREQ("0.007812", gc(xasprintf("%.4g", 0.0078125)));
EXPECT_STREQ("0.023438", gc(xasprintf("%.5g", 0.0234375)));
EXPECT_STREQ("1e+100", gc(xasprintf("%g", 1e100))); EXPECT_STREQ("1e+100", gc(xasprintf("%g", 1e100)));
EXPECT_STREQ("1e-100", gc(xasprintf("%g", 1e-100))); EXPECT_STREQ("1e-100", gc(xasprintf("%g", 1e-100)));
EXPECT_STREQ("-1e-100", gc(xasprintf("%g", -1e-100))); EXPECT_STREQ("-1e-100", gc(xasprintf("%g", -1e-100)));
EXPECT_STREQ("0.123456", gc(xasprintf("%g", 0.1234564)));
EXPECT_STREQ("0.123457", gc(xasprintf("%g", 0.1234566)));
EXPECT_STREQ("3.14159", gc(xasprintf("%g", 0x1.921fb54442d1846ap+1))); EXPECT_STREQ("3.14159", gc(xasprintf("%g", 0x1.921fb54442d1846ap+1)));
EXPECT_STREQ("0", gc(xasprintf("%g", 0.))); EXPECT_STREQ("0", gc(xasprintf("%g", 0.)));
EXPECT_STREQ("-0", gc(xasprintf("%g", -0.))); EXPECT_STREQ("-0", gc(xasprintf("%g", -0.)));