From ccd1cef028eda7fce0cc36f0428911efa9435182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Fri, 5 May 2017 17:30:01 +0200 Subject: [PATCH] [poincare] Comment tests Change-Id: Ie41b2df890b63b738cb8b7c5f529bb7ed5411fd8 --- poincare/test/complex.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/poincare/test/complex.cpp b/poincare/test/complex.cpp index bd3a74ddf..dd67180ef 100644 --- a/poincare/test/complex.cpp +++ b/poincare/test/complex.cpp @@ -37,7 +37,8 @@ void assert_float_converts_to(float f, const char * result, Expression::FloatDis } QUIZ_CASE(poincare_complex_to_text) { - assert_float_converts_to(123.456f, "1.23456E2"); //FIXME: Only 6 significant digits? + /* We expect 7 significative numbers but do not display 0 */ + assert_float_converts_to(123.456f, "1.23456E2"); assert_float_converts_to(1.234567891011f, "1.234568"); assert_float_converts_to(2.0f, "2"); assert_float_converts_to(123456789.0f, "1.234568E8"); @@ -47,12 +48,20 @@ QUIZ_CASE(poincare_complex_to_text) { assert_float_converts_to(-0.000123456789f, "-1.234568E-4"); assert_float_converts_to(0.0f, "0"); assert_float_converts_to(10000000000000000000000000000.0f, "1E28"); - assert_float_converts_to(10000000000000000000000000000.0f, "1E28", Decimal); // FIXME: Explain. Would overflow? + /* Converting 10000000000000000000000000000.0f into a decimal display would + * overflow the number of significant digits set to 7. When this is the case, the + * display mode is automatically set to scientific. */ + assert_float_converts_to(10000000000000000000000000000.0f, "1E28", Decimal); assert_float_converts_to(1000000.0f, "1000000", Decimal); assert_float_converts_to(10000000.0f, "1E7", Decimal); assert_float_converts_to(0.000001f, "0.000001", Decimal); - assert_float_converts_to(0.0000001f, "1E-7", Decimal); // FIXME: Explain. Would overflow? - assert_float_converts_to(-0.00000000000000000000000000000000909090964f, "-9.090897E-33", Decimal); // FIXME: explain why it is not -9.090964 ? + /* Converting 0.00000001f into a decimal display would also overflow the + * number of significant digits set to 7. */ + assert_float_converts_to(0.0000001f, "1E-7", Decimal); + /* The conversion of -0.00000000000000000000000000000000909090964f does not + * give the exact right number because of float represention. The closest + * exact representation is -9.090897E-33. */ + assert_float_converts_to(-0.00000000000000000000000000000000909090964f, "-9.090897E-33"); // FIXME: explain why it is not -9.090964 ? assert_float_converts_to(123.421f, "123.4", Decimal, 4, 6); assert_float_converts_to(123.421f, "1.2E2", Decimal, 5, 6); }