From 07797559153a330ca66ade146b47f2a2b0657c64 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Wed, 17 May 2017 19:08:20 +0200 Subject: Add some unit tests for rtl_math_StringFormat_G Change-Id: I010c35905789d2c5f60f7f1c4d9ad4caf60146ee --- sal/qa/rtl/math/test-rtl-math.cxx | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'sal/qa') diff --git a/sal/qa/rtl/math/test-rtl-math.cxx b/sal/qa/rtl/math/test-rtl-math.cxx index f9f041a17f95..fa118b9f3467 100644 --- a/sal/qa/rtl/math/test-rtl-math.cxx +++ b/sal/qa/rtl/math/test-rtl-math.cxx @@ -203,6 +203,39 @@ public: rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, '.', true); CPPUNIT_ASSERT_EQUAL( OUString("9.00719925474099E+015"), aRes); + + // Test rtl_math_StringFormat_G + + fVal = 0.001234567; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, 3, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("0.00123"), aRes); + + fVal = 123.4567; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, 3, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("123"), aRes); + + fVal = 123.4567; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, 4, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("123.5"), aRes); + + fVal = 99.6; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, 3, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("99.6"), aRes); + + // Expected could be 1E+03 (as 999.6 rounded to 3 significant digits + // results in 1000 with an exponent equal to significant digits). + // Currently we don't and output 1000 instead, negligible. + fVal = 999.6; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, 3, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("1000"), aRes); + + fVal = 9999.6; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, 3, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("1E+004"), aRes); + + fVal = 12345.6789; + aRes = rtl::math::doubleToUString( fVal, rtl_math_StringFormat_G, -3, '.', true); + CPPUNIT_ASSERT_EQUAL( OUString("1.2E+004"), aRes); } void test_approx() { -- cgit