diff options
Diffstat (limited to 'llvm/unittests/ADT/APFloatTest.cpp')
| -rw-r--r-- | llvm/unittests/ADT/APFloatTest.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/APFloatTest.cpp b/llvm/unittests/ADT/APFloatTest.cpp index 280a0862ccc..a0d3e97c3ec 100644 --- a/llvm/unittests/ADT/APFloatTest.cpp +++ b/llvm/unittests/ADT/APFloatTest.cpp @@ -849,6 +849,22 @@ TEST(APFloatTest, fromDecimalString) { EXPECT_EQ(2.71828, convertToDoubleFromString("2.71828")); } +TEST(APFloatTest, fromToStringSpecials) { + auto roundTrip = [] (const char* str) { + return convertToString(convertToDoubleFromString(str), 0, 3).c_str(); + }; + EXPECT_STREQ("+Inf", roundTrip("+Inf")); + EXPECT_STREQ("+Inf", roundTrip("INFINITY")); + EXPECT_STREQ("+Inf", roundTrip("inf")); + EXPECT_STREQ("-Inf", roundTrip("-Inf")); + EXPECT_STREQ("-Inf", roundTrip("-INFINITY")); + EXPECT_STREQ("-Inf", roundTrip("-inf")); + EXPECT_STREQ("NaN", roundTrip("NaN")); + EXPECT_STREQ("NaN", roundTrip("nan")); + EXPECT_STREQ("NaN", roundTrip("-NaN")); + EXPECT_STREQ("NaN", roundTrip("-nan")); +} + TEST(APFloatTest, fromHexadecimalString) { EXPECT_EQ( 1.0, APFloat(APFloat::IEEEdouble(), "0x1p0").convertToDouble()); EXPECT_EQ(+1.0, APFloat(APFloat::IEEEdouble(), "+0x1p0").convertToDouble()); |

