Add some unit tests for StringToFloat().
Change-Id: Ia6c6022af4fcc560f0cb93da89cb6a4b8e2439ac
Reviewed-on: https://pdfium-review.googlesource.com/c/46431
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcrt/fx_string_unittest.cpp b/core/fxcrt/fx_string_unittest.cpp
index 3059de3..578bda5 100644
--- a/core/fxcrt/fx_string_unittest.cpp
+++ b/core/fxcrt/fx_string_unittest.cpp
@@ -53,3 +53,26 @@
EXPECT_EQ(0x10000u, wstr2.GetLength());
EXPECT_EQ(wstr, wstr2);
}
+
+TEST(fxstring, StringToFloat) {
+ EXPECT_FLOAT_EQ(0.0f, StringToFloat(""));
+ EXPECT_FLOAT_EQ(0.0f, StringToFloat("0"));
+ EXPECT_FLOAT_EQ(0.0f, StringToFloat("0.0"));
+ EXPECT_FLOAT_EQ(0.0f, StringToFloat("-0.0"));
+
+ EXPECT_FLOAT_EQ(0.25f, StringToFloat("0.25"));
+ EXPECT_FLOAT_EQ(-0.25f, StringToFloat("-0.25"));
+
+ EXPECT_FLOAT_EQ(100.0f, StringToFloat("100"));
+ EXPECT_FLOAT_EQ(100.0f, StringToFloat("100.0"));
+ EXPECT_FLOAT_EQ(100.0f, StringToFloat(" 100.0"));
+ EXPECT_FLOAT_EQ(-100.0f, StringToFloat("-100.0000"));
+
+ EXPECT_FLOAT_EQ(3.402823e+38f,
+ StringToFloat("340282300000000000000000000000000000000"));
+ EXPECT_FLOAT_EQ(-3.402823e+38f,
+ StringToFloat("-340282300000000000000000000000000000000"));
+
+ EXPECT_FLOAT_EQ(1.000000119f, StringToFloat("1.000000119"));
+ EXPECT_FLOAT_EQ(1.999999881f, StringToFloat("1.999999881"));
+}