sc/qa/unit/parallelism.cxx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
New commits: commit 11535357df4e4ec828435229ff784b9868ee583a Author: Tor Lillqvist <t...@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(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits