unit test for matrix concatenation with empty elements, tdf#101137

Change-Id: I7594b8860e4fb4117c9d448dcde6e198a8b04863
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index acc99cb..6322c14 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -7255,6 +7255,40 @@ void Test::testMatConcat()
            CPPUNIT_ASSERT_EQUAL(OUString(OUString::number(nCol * (nRow - 12)) + OUString::number(nCol * (nRow - 12))), aStr);
        }
    }

    {   // Data in A12:B16
        const char* aData[][2] = {
            { "q", "w" },
            { "a",  "" },
            {  "", "x" },
            {  "",  "" },
            { "e", "r" },
        };

        ScAddress aPos(0,11,0);
        ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
        CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
    }
    // Matrix formula in C17:C21
    m_pDoc->InsertMatrixFormula(2, 16, 2, 20, aMark, "=A12:A16&B12:B16");
    // Check proper concatenation including empty cells.
    OUString aStr;
    ScAddress aPos(2,16,0);
    aStr = m_pDoc->GetString(aPos);
    CPPUNIT_ASSERT_EQUAL(OUString("qw"),aStr);
    aPos.IncRow();
    aStr = m_pDoc->GetString(aPos);
    CPPUNIT_ASSERT_EQUAL(OUString("a"),aStr);
    aPos.IncRow();
    aStr = m_pDoc->GetString(aPos);
    CPPUNIT_ASSERT_EQUAL(OUString("x"),aStr);
    aPos.IncRow();
    aStr = m_pDoc->GetString(aPos);
    CPPUNIT_ASSERT_EQUAL(OUString(""),aStr);
    aPos.IncRow();
    aStr = m_pDoc->GetString(aPos);
    CPPUNIT_ASSERT_EQUAL(OUString("er"),aStr);

    m_pDoc->DeleteTab(0);
}