summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-10-22 16:04:09 +0200
committerEike Rathke <erack@redhat.com>2015-10-22 16:06:57 +0200
commit3e06388b686e1c4f8547787baababf7ec1d0eec8 (patch)
tree5876c4a87915daa84d221cadbe5e7f8495796906 /sc
parentd491ae5692f0b1fb4653510e694bbf5227375858 (diff)
unit test for tdf#95226
Change-Id: Ica252d3477e3a630777a59d64bfea7afb29351cd
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/ucalc_formula.cxx36
1 files changed, 36 insertions, 0 deletions
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index fb4b9202ae80..fda104e912dc 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -3804,6 +3804,42 @@ void Test::testFuncIFERROR()
aChecks[i].pFormula, OUString::createFromAscii( aChecks[i].pResult), aResult);
}
+ const SCCOL nCols = 3;
+ const char* aData2[][nCols] = {
+ { "1", "2", "3" },
+ { "4", "=1/0", "6" },
+ { "7", "8", "9" }
+ };
+ const char* aCheck2[][nCols] = {
+ { "1", "2", "3" },
+ { "4", "Error","6" },
+ { "7", "8", "9" }
+ };
+
+ // Data in C1:E3
+ ScAddress aPos(2,0,0);
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData2, SAL_N_ELEMENTS(aData2));
+ CPPUNIT_ASSERT(aRange.aStart == aPos);
+
+ // Array formula in F4:H6
+ const SCROW nElems2 = SAL_N_ELEMENTS(aCheck2);
+ const SCCOL nStartCol = aPos.Col() + nCols;
+ const SCROW nStartRow = aPos.Row() + nElems2;
+ m_pDoc->InsertMatrixFormula( nStartCol, nStartRow, nStartCol+nCols, nStartRow+nElems2, aMark,
+ "=IFERROR(C1:E3;\"Error\")", NULL);
+
+ m_pDoc->CalcAll();
+
+ for (SCCOL nCol = nStartCol; nCol < nStartCol + nCols; ++nCol)
+ {
+ for (SCROW nRow = nStartRow; nRow < nStartRow + nElems2; ++nRow)
+ {
+ OUString aResult = m_pDoc->GetString( nCol, nRow, 0);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "IFERROR array result",
+ OUString::createFromAscii( aCheck2[nRow-nStartRow][nCol-nStartCol]), aResult);
+ }
+ }
+
m_pDoc->DeleteTab(0);
}