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

Eike Rathke erack at redhat.com
Mon Mar 5 21:54:38 UTC 2018


 sc/qa/unit/ucalc.hxx         |    2 ++
 sc/qa/unit/ucalc_formula.cxx |   19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

New commits:
commit ba490001c2d82c1172854ca16d7099b19e29cb60
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Mar 5 22:50:07 2018 +0100

    Unit test for tdf#116216
    
    Change-Id: Icd2e37c279db43b792e84b3aae64c16db0c4834b

diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index 630e9b09b0a0..6718e10a4248 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -186,6 +186,7 @@ public:
     void testFuncNUMBERVALUE();
     void testFuncLEN();
     void testFuncLOOKUP();
+    void testFuncLOOKUParrayWithError();
     void testFuncVLOOKUP();
     void testFuncMATCH();
     void testFuncCELL();
@@ -607,6 +608,7 @@ public:
     CPPUNIT_TEST(testFuncNUMBERVALUE);
     CPPUNIT_TEST(testFuncLEN);
     CPPUNIT_TEST(testFuncLOOKUP);
+    CPPUNIT_TEST(testFuncLOOKUParrayWithError);
     CPPUNIT_TEST(testFuncVLOOKUP);
     CPPUNIT_TEST(testFuncMATCH);
     CPPUNIT_TEST(testFuncCELL);
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index a67ef5063dcd..639dac3527db 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -4773,6 +4773,25 @@ void Test::testFuncLOOKUP()
     m_pDoc->DeleteTab(0);
 }
 
+void Test::testFuncLOOKUParrayWithError()
+{
+    sc::AutoCalcSwitch aACSwitch(*m_pDoc, true);
+    m_pDoc->InsertTab(0, "Test");
+
+    std::vector<std::vector<const char*>> aData = {
+        { "x", "y", "z" },
+        { "a", "b", "c" }
+    };
+    insertRangeData(m_pDoc, ScAddress(2,1,0), aData);               // C2:E3
+    m_pDoc->SetString(0,0,0, "=LOOKUP(2;1/(C2:E2<>\"\");C3:E3)");   // A1
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Should find match for last column.", OUString("c"), m_pDoc->GetString(0,0,0));
+    m_pDoc->SetString(4,1,0, "");                                   // E2
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Should find match for second last column.", OUString("b"), m_pDoc->GetString(0,0,0));
+
+    m_pDoc->DeleteTab(0);
+}
+
 void Test::testFuncVLOOKUP()
 {
     // VLOOKUP


More information about the Libreoffice-commits mailing list