[Libreoffice-commits] core.git: sc/qa

Tor Lillqvist tml at collabora.com
Mon Aug 14 06:37:27 UTC 2017


 sc/qa/unit/parallelism.cxx |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

New commits:
commit 11535357df4e4ec828435229ff784b9868ee583a
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Aug 14 09:30:27 2017 +0300

    Test division and especially error handling
    
    Change-Id: Ife4396bf8856178194497b724d4635468a58994d

diff --git a/sc/qa/unit/parallelism.cxx b/sc/qa/unit/parallelism.cxx
index da5346e1eb5b..0f4ccaad5e01 100644
--- a/sc/qa/unit/parallelism.cxx
+++ b/sc/qa/unit/parallelism.cxx
@@ -44,9 +44,11 @@ public:
     void getNewDocShell(ScDocShellRef& rDocShellRef);
 
     void testSUMIFS();
+    void testDivision();
 
     CPPUNIT_TEST_SUITE(ScParallelismTest);
     CPPUNIT_TEST(testSUMIFS);
+    CPPUNIT_TEST(testDivision);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -163,6 +165,33 @@ void ScParallelismTest::testSUMIFS()
     m_pDoc->DeleteTab(0);
 }
 
+void ScParallelismTest::testDivision()
+{
+    m_pDoc->InsertTab(0, "1");
+
+    for (auto i = 1; i < 1000; i++)
+    {
+        /*A*/ m_pDoc->SetValue(0, i, 0, i);
+        /*B*/ m_pDoc->SetValue(1, i, 0, i%10);
+        /*C*/ m_pDoc->SetFormula(ScAddress(2, i, 0),
+                                 "=A" + OUString::number(i+1) + "/B" + OUString::number(i+1),
+                                 formula::FormulaGrammar::GRAM_NATIVE_UI);
+    }
+
+    m_xDocShell->DoHardRecalc();
+
+    for (auto i = 1; i < 1000; i++)
+    {
+        OString sMessage = "At row " + OString::number(i+1);
+        if (i%10)
+            CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(sMessage.getStr(), static_cast<double>(i)/(i%10), m_pDoc->GetValue(2, i, 0), 1e-10);
+        else
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), OUString("#DIV/0!"), m_pDoc->GetString(2, i, 0));
+    }
+
+    m_pDoc->DeleteTab(0);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(ScParallelismTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();


More information about the Libreoffice-commits mailing list