[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