dev/null                                      |binary
 sc/qa/unit/data/ods/opencl/financial/XIRR.ods |binary
 sc/qa/unit/opencl-test.cxx                    |   27 ++++++++++++--------------
 3 files changed, 13 insertions(+), 14 deletions(-)

New commits:
commit 4eecf0cdf2e2e0c4c94ee4b3d15d4084bca516b9
Author: Kohei Yoshida <kohei.yosh...@collabora.com>
Date:   Mon Mar 17 18:19:07 2014 -0400

    fdo#76140: Reimplement XIRR OpenCL test.
    
    1) Use ods format and store the expected formula results as numeric cells,
       to avoid having to load the same file twice (which is slower).
    
    2) Use rtl::math::approxEqual to evaluate two numbers that may be subject
       to numerical instability especially when the expected values are very
       small.
    
    Change-Id: Ie08e91f797065f4593f996df3541da84019cc53c
    (cherry picked from commit ca25cdcb398f200ce5d53286eea02d49d8d1c5f4)

diff --git a/sc/qa/unit/data/ods/opencl/financial/XIRR.ods 
b/sc/qa/unit/data/ods/opencl/financial/XIRR.ods
new file mode 100644
index 0000000..a9d2476
Binary files /dev/null and b/sc/qa/unit/data/ods/opencl/financial/XIRR.ods 
differ
diff --git a/sc/qa/unit/data/xls/opencl/financial/XIRR.xls 
b/sc/qa/unit/data/xls/opencl/financial/XIRR.xls
deleted file mode 100644
index b9a87ef..0000000
Binary files a/sc/qa/unit/data/xls/opencl/financial/XIRR.xls and /dev/null 
differ
diff --git a/sc/qa/unit/opencl-test.cxx b/sc/qa/unit/opencl-test.cxx
index 843c9a9..9def7e8 100644
--- a/sc/qa/unit/opencl-test.cxx
+++ b/sc/qa/unit/opencl-test.cxx
@@ -3405,28 +3405,27 @@ void ScOpenclTest:: testFinancialXirrFormula()
 {
     if (!detectOpenCLDevice())
         return;
-    ScDocShellRef xDocSh = loadDoc("opencl/financial/XIRR.", XLS);
+
+    ScDocShellRef xDocSh = loadDoc("opencl/financial/XIRR.", ODS);
+    CPPUNIT_ASSERT(xDocSh.Is());
     ScDocument *pDoc = xDocSh->GetDocument();
-    CPPUNIT_ASSERT(pDoc);
     enableOpenCL();
     pDoc->CalcAll();
-    ScDocShellRef xDocShRes = loadDoc("opencl/financial/XIRR.", XLS);
-    ScDocument *pDocRes = xDocShRes->GetDocument();
-    CPPUNIT_ASSERT(pDocRes);
-    for (SCROW i = 0; i <= 9; ++i)
+
+    for (SCROW i = 1; i <= 10; ++i)
     {
-        double fLibre = pDoc->GetValue(ScAddress(2, i, 0));
-        double fExcel = pDocRes->GetValue(ScAddress(2, i, 0));
-        CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
+        double fFormula  = pDoc->GetValue(ScAddress(2, i, 0));
+        double fExpected = pDoc->GetValue(ScAddress(3, i, 0));
+        CPPUNIT_ASSERT(rtl::math::approxEqual(fExpected, fFormula));
     }
-    for (SCROW i = 18; i <= 26; ++i)
+    for (SCROW i = 18; i <= 27; ++i)
     {
-        double fLibre = pDoc->GetValue(ScAddress(2, i, 0));
-        double fExcel = pDocRes->GetValue(ScAddress(2, i, 0));
-        CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
+        double fFormula = pDoc->GetValue(ScAddress(2, i, 0));
+        double fExpected = pDoc->GetValue(ScAddress(3, i, 0));
+        CPPUNIT_ASSERT(rtl::math::approxEqual(fExpected, fFormula));
     }
+
     xDocSh->DoClose();
-    xDocShRes->DoClose();
 }
 //[AMLOEXT-139]
 void ScOpenclTest::testStatisticalFormulaChiSqDist()
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to