summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2021-05-11 22:25:02 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2021-05-11 23:21:21 +0200
commit5d7251c7121cee8885fa9f2387c4a0625dd4ecee (patch)
tree2c7653675a46ef0782303e0eeb735f73dab0f965 /sc
parent2009af1c0fb4fead653dd7688347c15d74eaa1b0 (diff)
sc_ucalc: remove duplicated method
Change-Id: I720c40bfc218b3f442217d3bb7189fce1baaf4a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115449 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/ucalc.cxx35
-rw-r--r--sc/qa/unit/ucalc.hxx33
-rw-r--r--sc/qa/unit/ucalc_formula.cxx66
-rw-r--r--sc/qa/unit/ucalc_pivottable.cxx53
-rw-r--r--sc/qa/unit/ucalc_sharedformula.cxx90
-rw-r--r--sc/qa/unit/ucalc_sort.cxx64
6 files changed, 153 insertions, 188 deletions
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 2774772365b1..46220aa76f55 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -924,12 +924,11 @@ struct HoriIterCheck
const char* pVal;
};
-template<size_t Size>
-bool checkHorizontalIterator(ScDocument& rDoc, const char* pData[][Size], size_t nDataCount, const HoriIterCheck* pChecks, size_t nCheckCount)
+bool checkHorizontalIterator(ScDocument& rDoc, const std::vector<std::vector<const char*>>& rData, const HoriIterCheck* pChecks, size_t nCheckCount)
{
ScAddress aPos(0,0,0);
- Test::insertRangeData(&rDoc, aPos, pData, nDataCount);
- ScHorizontalCellIterator aIter(rDoc, 0, 0, 0, 1, nDataCount-1);
+ Test::insertRangeData(&rDoc, aPos, rData);
+ ScHorizontalCellIterator aIter(rDoc, 0, 0, 0, 1, rData.size() - 1);
SCCOL nCol;
SCROW nRow;
@@ -974,7 +973,7 @@ void Test::testHorizontalIterator()
{
// Raw data - mixed types
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ "A", "B" },
{ "C", "1" },
{ "D", "2" },
@@ -993,7 +992,7 @@ void Test::testHorizontalIterator()
};
bool bRes = checkHorizontalIterator(
- *m_pDoc, aData, SAL_N_ELEMENTS(aData), aChecks, SAL_N_ELEMENTS(aChecks));
+ *m_pDoc, aData, aChecks, SAL_N_ELEMENTS(aChecks));
if (!bRes)
CPPUNIT_FAIL("Failed on test mixed.");
@@ -1001,7 +1000,7 @@ void Test::testHorizontalIterator()
{
// Raw data - 'hole' data
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ "A", "B" },
{ "C", nullptr },
{ "D", "E" },
@@ -1016,7 +1015,7 @@ void Test::testHorizontalIterator()
};
bool bRes = checkHorizontalIterator(
- *m_pDoc, aData, SAL_N_ELEMENTS(aData), aChecks, SAL_N_ELEMENTS(aChecks));
+ *m_pDoc, aData, aChecks, SAL_N_ELEMENTS(aChecks));
if (!bRes)
CPPUNIT_FAIL("Failed on test hole.");
@@ -1024,7 +1023,7 @@ void Test::testHorizontalIterator()
{
// Very holy data
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ nullptr, "A" },
{ nullptr, nullptr },
{ nullptr, "1" },
@@ -1049,7 +1048,7 @@ void Test::testHorizontalIterator()
};
bool bRes = checkHorizontalIterator(
- *m_pDoc, aData, SAL_N_ELEMENTS(aData), aChecks, SAL_N_ELEMENTS(aChecks));
+ *m_pDoc, aData, aChecks, SAL_N_ELEMENTS(aChecks));
if (!bRes)
CPPUNIT_FAIL("Failed on test holy.");
@@ -1057,14 +1056,14 @@ void Test::testHorizontalIterator()
{
// Degenerate case
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ nullptr, nullptr },
{ nullptr, nullptr },
{ nullptr, nullptr },
};
bool bRes = checkHorizontalIterator(
- *m_pDoc, aData, SAL_N_ELEMENTS(aData), nullptr, 0);
+ *m_pDoc, aData, nullptr, 0);
if (!bRes)
CPPUNIT_FAIL("Failed on test degenerate.");
@@ -1072,7 +1071,7 @@ void Test::testHorizontalIterator()
{
// Data at end
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ nullptr, nullptr },
{ nullptr, nullptr },
{ nullptr, "A" },
@@ -1083,7 +1082,7 @@ void Test::testHorizontalIterator()
};
bool bRes = checkHorizontalIterator(
- *m_pDoc, aData, SAL_N_ELEMENTS(aData), aChecks, SAL_N_ELEMENTS(aChecks));
+ *m_pDoc, aData, aChecks, SAL_N_ELEMENTS(aChecks));
if (!bRes)
CPPUNIT_FAIL("Failed on test at end.");
@@ -1091,7 +1090,7 @@ void Test::testHorizontalIterator()
{
// Data in middle
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ nullptr, nullptr },
{ nullptr, nullptr },
{ nullptr, "A" },
@@ -1105,7 +1104,7 @@ void Test::testHorizontalIterator()
};
bool bRes = checkHorizontalIterator(
- *m_pDoc, aData, SAL_N_ELEMENTS(aData), aChecks, SAL_N_ELEMENTS(aChecks));
+ *m_pDoc, aData, aChecks, SAL_N_ELEMENTS(aChecks));
if (!bRes)
CPPUNIT_FAIL("Failed on test in middle.");
@@ -11693,7 +11692,7 @@ void Test::testFormulaToValue()
m_pDoc->InsertTab(0, "Test");
- const char* aData[][3] = {
+ std::vector<std::vector<const char*>> aData = {
{ "=1", "=RC[-1]*2", "=ISFORMULA(RC[-1])" },
{ "=2", "=RC[-1]*2", "=ISFORMULA(RC[-1])" },
{ "=3", "=RC[-1]*2", "=ISFORMULA(RC[-1])" },
@@ -11703,7 +11702,7 @@ void Test::testFormulaToValue()
};
ScAddress aPos(1,2,0); // B3
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
{
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index 5a0b1e2c5b5b..c265ca13db67 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -73,39 +73,6 @@ public:
static ScRange insertRangeData(ScDocument* pDoc, const ScAddress& rPos,
const std::vector<std::vector<const char*>>& rData);
- template <size_t Size>
- static ScRange insertRangeData(ScDocument* pDoc, const ScAddress& rPos,
- const char* aData[][Size], size_t nRowCount)
- {
- ScRange aRange(rPos);
- aRange.aEnd.SetCol(rPos.Col() + Size - 1);
- aRange.aEnd.SetRow(rPos.Row() + nRowCount - 1);
-
- clearRange(pDoc, aRange);
-
- for (size_t i = 0; i < Size; ++i)
- {
- for (size_t j = 0; j < nRowCount; ++j)
- {
- if (!aData[j][i])
- continue;
-
- SCCOL nCol = i + rPos.Col();
- SCROW nRow = j + rPos.Row();
- OUString aStr(aData[j][i], strlen(aData[j][i]), RTL_TEXTENCODING_UTF8);
-
- ScSetStringParam aParam; // Leave default.
- aParam.meStartListening = sc::NoListening;
- pDoc->SetString(nCol, nRow, rPos.Tab(), aStr, &aParam);
- }
- }
-
- pDoc->StartAllListeners(aRange);
-
- printRange(pDoc, aRange, "Range data content");
- return aRange;
- }
-
Test();
virtual ~Test() override;
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 30ece5cd5116..93cd3b5f24d9 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -4591,7 +4591,7 @@ void Test::testFuncCOUNTBLANK()
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
m_pDoc->InsertTab(0, "Formula");
- const char* aData[][4] = {
+ std::vector<std::vector<const char*>> aData = {
{ "1", nullptr, "=B1", "=\"\"" },
{ "2", nullptr, "=B2", "=\"\"" },
{ "A", nullptr, "=B3", "=\"\"" },
@@ -4601,7 +4601,7 @@ void Test::testFuncCOUNTBLANK()
};
ScAddress aPos(0,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
CPPUNIT_ASSERT_EQUAL(1.0, m_pDoc->GetValue(ScAddress(0,5,0)));
@@ -4613,7 +4613,7 @@ void Test::testFuncCOUNTBLANK()
clearSheet(m_pDoc, 0);
- const char* aData2[][2] = {
+ std::vector<std::vector<const char*>> aData2 = {
{ "1", "=COUNTBLANK(A1)" },
{ "A", "=COUNTBLANK(A2)" },
{ nullptr, "=COUNTBLANK(A3)" },
@@ -4621,7 +4621,7 @@ void Test::testFuncCOUNTBLANK()
{ "=A4" , "=COUNTBLANK(A5)" },
};
- aRange = insertRangeData(m_pDoc, aPos, aData2, SAL_N_ELEMENTS(aData2));
+ aRange = insertRangeData(m_pDoc, aPos, aData2);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
CPPUNIT_ASSERT_EQUAL(0.0, m_pDoc->GetValue(ScAddress(1,0,0)));
@@ -5149,14 +5149,14 @@ void Test::testFuncIF()
// references, data in A5:C8, matrix formula in D4 so there is no
// implicit intersection between formula and ranges.
{
- const char* aData[][3] = {
+ std::vector<std::vector<const char*>> aData = {
{ "1", "1", "16" },
{ "0", "1", "32" },
{ "1", "0", "64" },
{ "0", "0", "128" }
};
ScAddress aPos(0,4,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
}
m_pDoc->InsertMatrixFormula(3,3, 3,3, aMark, "=SUM(IF(A5:A8;IF(B5:B8;C5:C8;0);0))");
@@ -5270,7 +5270,7 @@ void Test::testFuncIFERROR()
}
const SCCOL nCols = 3;
- const char* aData2[][nCols] = {
+ std::vector<std::vector<const char*>> aData2 = {
{ "1", "2", "3" },
{ "4", "=1/0", "6" },
{ "7", "8", "9" }
@@ -5283,7 +5283,7 @@ void Test::testFuncIFERROR()
// Data in C1:E3
ScAddress aPos(2,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData2, SAL_N_ELEMENTS(aData2));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData2);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
// Array formula in F4:H6
@@ -5712,7 +5712,7 @@ void Test::testFuncVLOOKUP()
// scalar value parameter in a function that has a ReferenceOrForceArray
// type parameter somewhere else and formula is not in array mode,
// VLOOKUP(Value;ReferenceOrForceArray;...)
- const char* aData2[][5] = {
+ std::vector<std::vector<const char*>> aData2 = {
{ "1", "one", "3", "=VLOOKUP(C21:C24;A21:B24;2;0)", "three" },
{ "2", "two", "1", "=VLOOKUP(C21:C24;A21:B24;2;0)", "one" },
{ "3", "three", "4", "=VLOOKUP(C21:C24;A21:B24;2;0)", "four" },
@@ -5720,11 +5720,11 @@ void Test::testFuncVLOOKUP()
};
ScAddress aPos2(0,20,0);
- ScRange aRange2 = insertRangeData(m_pDoc, aPos2, aData2, SAL_N_ELEMENTS(aData2));
+ ScRange aRange2 = insertRangeData(m_pDoc, aPos2, aData2);
CPPUNIT_ASSERT_EQUAL(aPos2, aRange2.aStart);
aPos2.SetCol(3); // column D formula results
- for (size_t i=0; i < SAL_N_ELEMENTS(aData2); ++i)
+ for (size_t i=0; i < aData2.size(); ++i)
{
CPPUNIT_ASSERT_EQUAL( OUString::createFromAscii( aData2[i][4]), m_pDoc->GetString(aPos2));
aPos2.IncRow();
@@ -5991,7 +5991,7 @@ void Test::testFuncDATEDIF()
CPPUNIT_ASSERT_MESSAGE ("failed to insert sheet",
m_pDoc->InsertTab (0, "foo"));
- const char* aData[][5] = {
+ std::vector<std::vector<const char*>> aData = {
{ "2007-01-01", "2007-01-10", "d", "9", "=DATEDIF(A1;B1;C1)" } ,
{ "2007-01-01", "2007-01-31", "m", "0", "=DATEDIF(A2;B2;C2)" } ,
{ "2007-01-01", "2007-02-01", "m", "1", "=DATEDIF(A3;B3;C3)" } ,
@@ -6009,14 +6009,14 @@ void Test::testFuncDATEDIF()
{ "2007-01-02", "2007-01-01", "md", "Err:502", "=DATEDIF(A15;B15;C15)" } // fail date1 > date2
};
- clearRange( m_pDoc, ScRange(0, 0, 0, 4, SAL_N_ELEMENTS(aData), 0));
+ clearRange( m_pDoc, ScRange(0, 0, 0, 4, aData.size(), 0));
ScAddress aPos(0,0,0);
- ScRange aDataRange = insertRangeData( m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData( m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
m_pDoc->CalcAll();
- for (size_t i = 0; i < SAL_N_ELEMENTS(aData); ++i)
+ for (size_t i = 0; i < aData.size(); ++i)
{
OUString aVal = m_pDoc->GetString( 4, i, 0);
//std::cout << "row "<< i << ": " << OUStringToOString( aVal, RTL_TEXTENCODING_UTF8).getStr() << ", expected " << aData[i][3] << std::endl;
@@ -6350,13 +6350,13 @@ void Test::testFormulaDepTracking3()
m_pDoc->InsertTab(0, "Formula");
- const char* pData[][4] = {
+ std::vector<std::vector<const char*>> aData = {
{ "1", "2", "=SUM(A1:B1)", "=SUM(C1:C3)" },
{ "3", "4", "=SUM(A2:B2)", nullptr },
{ "5", "6", "=SUM(A3:B3)", nullptr },
};
- insertRangeData(m_pDoc, ScAddress(0,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(0,0,0), aData);
// Check the initial formula results.
CPPUNIT_ASSERT_EQUAL( 3.0, m_pDoc->GetValue(ScAddress(2,0,0)));
@@ -6432,7 +6432,7 @@ void Test::testFormulaDepTrackingDeleteCol()
m_pDoc->InsertTab(0, "Formula");
- const char* aData[][3] = {
+ std::vector<std::vector<const char*>> aData = {
{ "2", "=A1", "=B1" }, // not grouped
{ nullptr, nullptr, nullptr }, // empty row to separate the formula groups.
{ "3", "=A3", "=B3" }, // grouped
@@ -6440,7 +6440,7 @@ void Test::testFormulaDepTrackingDeleteCol()
};
ScAddress aPos(0,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
// Check the initial values.
@@ -6959,7 +6959,7 @@ void Test::testExternalRefUnresolved()
// Test error propagation of unresolved (not existing document) external
// references. Well, let's hope no build machine has such file with sheet...
- const char* aData[][1] = {
+ std::vector<std::vector<const char*>> aData = {
{ "='file:///NonExistingFilePath/AnyName.ods'#$NoSuchSheet.A1" },
{ "='file:///NonExistingFilePath/AnyName.ods'#$NoSuchSheet.A1+23" },
{ "='file:///NonExistingFilePath/AnyName.ods'#$NoSuchSheet.A1&\"W\"" },
@@ -6991,7 +6991,7 @@ void Test::testExternalRefUnresolved()
};
ScAddress aPos(0,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
std::vector<std::vector<const char*>> aOutputCheck = {
@@ -7159,14 +7159,14 @@ void Test::testFuncFORMULA()
m_pDoc->InsertTab(0, "Sheet1");
// Data in B1:D3
- const char* aData[][3] = {
+ std::vector<std::vector<const char*>> aData = {
{ "=A1", "=FORMULA(B1)", "=FORMULA(B1:B3)" },
{ nullptr, "=FORMULA(B2)", "=FORMULA(B1:B3)" },
{ "=A3", "=FORMULA(B3)", "=FORMULA(B1:B3)" },
};
ScAddress aPos(1,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
// Checks of C1:D3, where Cy==Dy, and D4:D6
@@ -7215,14 +7215,14 @@ void Test::testFuncTableRef()
{
// Populate "table" database range with headers and data in A1:B4
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ "Header1", "Header2" },
{ "1", "2" },
{ "4", "8" },
{ "16", "32" }
};
ScAddress aPos(0,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
}
@@ -7342,7 +7342,7 @@ void Test::testFuncTableRef()
// inserted column, B1:B4 plus a table formula in B6. The empty header
// should result in the internal table column name "Column2" that is
// used in the formula.
- const char* aData[][1] = {
+ std::vector<std::vector<const char*>> aData = {
{ "" },
{ "64" },
{ "128" },
@@ -7351,7 +7351,7 @@ void Test::testFuncTableRef()
{ pColumn2Formula }
};
ScAddress aPos(1,0,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
}
@@ -7393,13 +7393,13 @@ void Test::testFuncTableRef()
{
// Populate "hltable" database range with data in E10:F12
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ "1", "2" },
{ "4", "8" },
{ "16", "32" }
};
ScAddress aPos(4,9,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
}
@@ -7516,7 +7516,7 @@ void Test::testFuncTableRef()
// column, F10:F12 plus a table formula in F14. The new header should
// result in the internal table column name "Column3" that is used in
// the formula.
- const char* aData[][1] = {
+ std::vector<std::vector<const char*>> aData = {
{ "64" },
{ "128" },
{ "256" },
@@ -7524,7 +7524,7 @@ void Test::testFuncTableRef()
{ pColumn3Formula }
};
ScAddress aPos(5,9,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
}
@@ -8723,7 +8723,7 @@ void Test::testMatConcat()
}
{ // Data in A12:B16
- const char* aData[][2] = {
+ std::vector<std::vector<const char*>> aData = {
{ "q", "w" },
{ "a", "" },
{ "", "x" },
@@ -8732,7 +8732,7 @@ void Test::testMatConcat()
};
ScAddress aPos(0,11,0);
- ScRange aRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aRange.aStart);
}
// Matrix formula in C17:C21
diff --git a/sc/qa/unit/ucalc_pivottable.cxx b/sc/qa/unit/ucalc_pivottable.cxx
index 218e8e9dc942..027074cc4e2e 100644
--- a/sc/qa/unit/ucalc_pivottable.cxx
+++ b/sc/qa/unit/ucalc_pivottable.cxx
@@ -775,7 +775,7 @@ void Test::testPivotTableCache()
m_pDoc->InsertTab(0, "Data");
// Raw data
- const char* aData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "F1", "F2", "F3" },
{ "Z", "A", "30" },
{ "R", "A", "20" },
@@ -786,7 +786,7 @@ void Test::testPivotTableCache()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPCache aCache(*m_pDoc);
@@ -981,7 +981,7 @@ void Test::testPivotTableDuplicateDataFields()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "A", "45" },
{ "A", "5" },
@@ -1003,7 +1003,7 @@ void Test::testPivotTableDuplicateDataFields()
};
ScAddress aPos(2,2,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = createDPFromRange(
@@ -1076,7 +1076,7 @@ void Test::testPivotTableNormalGrouping()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "A", "1" },
{ "B", "2" },
@@ -1094,7 +1094,7 @@ void Test::testPivotTableNormalGrouping()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = createDPFromRange(
@@ -1225,7 +1225,7 @@ void Test::testPivotTableNumberGrouping()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Order", "Score" },
{ "43", "171" },
{ "18", "20" },
@@ -1254,7 +1254,7 @@ void Test::testPivotTableNumberGrouping()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = createDPFromRange(
@@ -1318,7 +1318,7 @@ void Test::testPivotTableDateGrouping()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Date", "Value" },
{ "2011-01-01", "1" },
{ "2011-03-02", "2" },
@@ -1337,7 +1337,7 @@ void Test::testPivotTableDateGrouping()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = createDPFromRange(
@@ -1490,7 +1490,7 @@ void Test::testPivotTableEmptyRows()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "A", "1" },
{ "B", "2" },
@@ -1505,7 +1505,7 @@ void Test::testPivotTableEmptyRows()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
// Extend the range downward to include some trailing empty rows.
@@ -1704,7 +1704,7 @@ void Test::testPivotTableCaseInsensitiveStrings()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "A", "1" },
{ "a", "2" },
@@ -1717,7 +1717,7 @@ void Test::testPivotTableCaseInsensitiveStrings()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = createDPFromRange(
@@ -1757,7 +1757,7 @@ void Test::testPivotTableNumStability()
FormulaGrammarSwitch aFGSwitch(m_pDoc, formula::FormulaGrammar::GRAM_ENGLISH_XL_R1C1);
// Raw Data
- const char* aData[][4] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Time Start", "Time End", "Total" },
{ "Sam", "07:48 AM", "09:00 AM", "=RC[-1]-RC[-2]" },
{ "Sam", "09:00 AM", "10:30 AM", "=RC[-1]-RC[-2]" },
@@ -1793,9 +1793,8 @@ void Test::testPivotTableNumStability()
m_pDoc->InsertTab(0, "Data");
m_pDoc->InsertTab(1, "Table");
- size_t const nRowCount = SAL_N_ELEMENTS(aData);
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, nRowCount);
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
// Insert formulas to manually calculate sums for each name.
m_pDoc->SetString(aDataRange.aStart.Col(), aDataRange.aEnd.Row()+1, aDataRange.aStart.Tab(), "=SUMIF(R[-23]C:R[-1]C;\"Dennis\";R[-23]C[3]:R[-1]C[3])");
@@ -1861,7 +1860,7 @@ void Test::testPivotTableFieldReference()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "A", "1" },
{ "B", "2" },
@@ -1876,7 +1875,7 @@ void Test::testPivotTableFieldReference()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = createDPFromRange(
@@ -2027,7 +2026,7 @@ void Test::testPivotTableDocFunc()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "Sun", "1" },
{ "Oracle", "2" },
@@ -2044,7 +2043,7 @@ void Test::testPivotTableDocFunc()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
std::unique_ptr<ScDPObject> pDPObj(createDPFromRange(
@@ -2095,7 +2094,7 @@ void Test::testFuncGETPIVOTDATA()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Value" },
{ "A", "1" },
{ "A", "2" },
@@ -2106,7 +2105,7 @@ void Test::testFuncGETPIVOTDATA()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = nullptr;
@@ -2251,7 +2250,7 @@ void Test::testFuncGETPIVOTDATALeafAccess()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Type", "Member", "Value" },
{ "A", "Anna", "1" },
{ "B", "Brittany", "2" },
@@ -2260,7 +2259,7 @@ void Test::testFuncGETPIVOTDATALeafAccess()
};
ScAddress aPos(1,1,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
ScDPObject* pDPObj = nullptr;
@@ -2504,7 +2503,7 @@ void Test::testPivotTableMedianFunc()
m_pDoc->InsertTab(1, "Table");
// Raw data
- const char* aData[][4] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Condition", "Day1Hit", "Day1Miss", "Day1FalseAlarm" },
{ "False Memory", "7", "3", "0" },
{ "Control", "10", "0", "1" },
@@ -2535,7 +2534,7 @@ void Test::testPivotTableMedianFunc()
};
ScAddress aPos(1, 1, 0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
std::unique_ptr<ScDPObject> pDPObj(createDPFromRange(
diff --git a/sc/qa/unit/ucalc_sharedformula.cxx b/sc/qa/unit/ucalc_sharedformula.cxx
index 20d111b3e2cd..3efd3fc448a3 100644
--- a/sc/qa/unit/ucalc_sharedformula.cxx
+++ b/sc/qa/unit/ucalc_sharedformula.cxx
@@ -280,12 +280,12 @@ void Test::testSharedFormulas()
aPos.Set(2,0,0);
{
// Insert data in C1:D2 and formulas in E1:E2
- const char* pData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "5", "1", "=C:C/D:D" },
{ "4", "2", "=C:C/D:D" }
};
- insertRangeData(m_pDoc, aPos, pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, aPos, aData);
}
aPos.Set(4,1,0);
pFC = m_pDoc->GetFormulaCell(aPos);
@@ -315,13 +315,13 @@ void Test::testSharedFormulasRefUpdate()
{
// Insert formulas that reference A10:A12 in B1:B3.
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=A10" },
{ "=A11" },
{ "=A12" }
};
- insertRangeData(m_pDoc, ScAddress(1,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(1,0,0), aData);
}
ASSERT_FORMULA_EQUAL(*m_pDoc, ScAddress(1,0,0), "A10", "Wrong formula in B1");
@@ -455,14 +455,14 @@ void Test::testSharedFormulasRefUpdateMove()
CPPUNIT_ASSERT_EQUAL(2.0, m_pDoc->GetValue(ScAddress(1,2,0)));
CPPUNIT_ASSERT_EQUAL(3.0, m_pDoc->GetValue(ScAddress(1,3,0)));
- const char* aData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=RC[-1]" },
{ "=RC[-1]" },
{ "=RC[-1]" }
};
// Set formulas in C2:C4 that reference B2:B4 individually.
- insertRangeData(m_pDoc, ScAddress(2,1,0), aData, SAL_N_ELEMENTS(aData));
+ insertRangeData(m_pDoc, ScAddress(2,1,0), aData);
// Check the formula results.
CPPUNIT_ASSERT_EQUAL(1.0, m_pDoc->GetValue(ScAddress(2,1,0)));
@@ -522,13 +522,13 @@ void Test::testSharedFormulasRefUpdateMove2()
{
// Set formulas in C2:C3 that reference B2:B3 individually, and F2:F3 to E2:E3.
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=RC[-1]" },
{ "=RC[-1]" }
};
- insertRangeData(m_pDoc, ScAddress(2,1,0), pData, SAL_N_ELEMENTS(pData));
- insertRangeData(m_pDoc, ScAddress(5,1,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(2,1,0), aData);
+ insertRangeData(m_pDoc, ScAddress(5,1,0), aData);
}
m_pDoc->CalcFormulaTree(); // calculate manually.
@@ -583,13 +583,13 @@ void Test::testSharedFormulasRefUpdateRange()
{
// Insert formulas to B3:B5.
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=SUM($A$3:$A$5)" },
{ "=SUM($A$3:$A$5)" },
{ "=SUM($A$3:$A$5)" }
};
- insertRangeData(m_pDoc, ScAddress(1,2,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(1,2,0), aData);
}
ASSERT_FORMULA_EQUAL(*m_pDoc, ScAddress(1,2,0), "SUM($A$3:$A$5)", "Wrong formula");
@@ -665,7 +665,7 @@ void Test::testSharedFormulasRefUpdateRangeDeleteRow()
ScRange aWholeArea(0, 0, 0, 100, 100, 0); // Large enough for all references used in the test.
- const char* aData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "1", "2", "=SUM(A1:B1)" },
{ "3", "4", "=SUM(A2:B2)" },
{ nullptr, nullptr, nullptr },
@@ -673,7 +673,7 @@ void Test::testSharedFormulasRefUpdateRangeDeleteRow()
{ "7", "8", "=SUM(A5:B5)" }
};
- insertRangeData(m_pDoc, ScAddress(0,0,0), aData, SAL_N_ELEMENTS(aData));
+ insertRangeData(m_pDoc, ScAddress(0,0,0), aData);
// Check initial formula values.
CPPUNIT_ASSERT_EQUAL( 3.0, m_pDoc->GetValue(ScAddress(2,0,0)));
@@ -800,14 +800,14 @@ void Test::testSharedFormulasRefUpdateExternal()
{
// Insert formula cells in A7:A10 of the host document, referencing A1:A3
// of the external document.
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "='file:///extdata.fake'#$Data.A1" },
{ "='file:///extdata.fake'#$Data.A2" },
{ "='file:///extdata.fake'#$Data.A3" },
{ "=COUNTA('file:///extdata.fake'#$Data.A1:A3)" }
};
- insertRangeData(m_pDoc, ScAddress(0,6,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(0,6,0), aData);
}
// Check the formula results.
@@ -926,14 +926,14 @@ void Test::testSharedFormulasInsertRow()
{
// Set formula cells in B1:B4 all referencing A4 as absolute reference.
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=$A$4" },
{ "=$A$4" },
{ "=$A$4" },
{ "=$A$4" }
};
- insertRangeData(m_pDoc, ScAddress(1,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(1,0,0), aData);
}
// Insert a new row at row 3.
@@ -969,7 +969,7 @@ void Test::testSharedFormulasDeleteRows()
{
// Fill data cells A1:A20 and formula cells B1:B20. Formulas in
// B1:B10 and B11:B20 should be different.
- const char* pData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "0", "=RC[-1]+1" },
{ "1", "=RC[-1]+1" },
{ "2", "=RC[-1]+1" },
@@ -992,7 +992,7 @@ void Test::testSharedFormulasDeleteRows()
{ "19", "=RC[-1]+11" }
};
- insertRangeData(m_pDoc, ScAddress(0,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(0,0,0), aData);
}
// B1:B10 should be shared.
@@ -1698,13 +1698,13 @@ void Test::testSharedFormulaAbsCellListener()
m_pDoc->SetValue(ScAddress(0,0,0), 1.0);
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=$A$1" },
{ "=$A$1" },
{ "=$A$1" }
};
- insertRangeData(m_pDoc, ScAddress(1,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(1,0,0), aData);
// A1 should have 3 listeners listening into it.
const SvtBroadcaster* pBC = m_pDoc->GetBroadcaster(ScAddress(0,0,0));
@@ -1747,14 +1747,14 @@ void Test::testSharedFormulaUnshareAreaListeners()
m_pDoc->InsertTab(0, "Test");
- const char* pData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=SUM(B1:B2)", "1" },
{ "=SUM(B2:B3)", "2" },
{ "=SUM(B3:B4)", "4" },
{ nullptr, "8" }
};
- insertRangeData(m_pDoc, ScAddress(0,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(0,0,0), aData);
// Check that A1:A3 is a formula group.
const ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(0,0,0));
@@ -1775,14 +1775,14 @@ void Test::testSharedFormulaUnshareAreaListeners()
{
// Data in A2:C6
const ScAddress aOrgPos(0,1,0);
- const char* pData2[][3] = {
+ const std::vector<std::vector<const char*>> aData2 = {
{ "=SUM(B2:C2)", "1", "2" },
{ "=SUM(B3:C3)", "4", "8" },
{ "=SUM(B4:C4)", "16", "32" },
{ "=SUM(B5:C5)", "64", "128" },
{ "=SUM(B6:C6)", "256", "512" },
};
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Check that A2:A6 is a formula group.
pFC = m_pDoc->GetFormulaCell(aOrgPos);
@@ -1875,7 +1875,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
ScAddress aPos( ScAddress::UNINITIALIZED);
ScFormulaCell* pCell;
std::vector<ScFormulaCell*> aCells;
- const char* pData2[][3] = {
+ const std::vector<std::vector<const char*>> aData2 = {
{ "=SUM(B3:C3)", "1", "2" },
{ "=SUM(B4:C4)", "4", "8" },
{ "=SUM(B5:C5)", "16", "32" },
@@ -1883,7 +1883,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
{ "=SUM(B7:C7)", "256", "512" },
};
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Add grouping formulas in A1:A2, keep A3:A7
aPos = ScAddress(0,0,0);
@@ -1908,7 +1908,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Add formulas in A1:A2, keep A3:A7
aPos = ScAddress(0,0,0);
@@ -1939,7 +1939,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Add formula in A2, overwrite A3, keep A4:A7
aPos = ScAddress(0,1,0);
@@ -1970,7 +1970,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Overwrite A3:A4, keep A5:A7
aPos = ScAddress(0,2,0);
@@ -2002,7 +2002,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Keep A3, overwrite A4:A5, keep A6:A7
aPos = ScAddress(0,3,0);
@@ -2038,7 +2038,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Keep A3:A4, overwrite A5:A6, keep A7
aPos = ScAddress(0,4,0);
@@ -2074,7 +2074,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Keep A3:A5, overwrite A6:A7
aPos = ScAddress(0,5,0);
@@ -2106,7 +2106,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Keep A3:A6, overwrite A7, add A8
aPos = ScAddress(0,6,0);
@@ -2138,7 +2138,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Keep A3:A7, add A8:A9
aPos = ScAddress(0,7,0);
@@ -2170,7 +2170,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Keep A3:A7, add grouping formulas in A8:A9
aPos = ScAddress(0,7,0);
@@ -2196,7 +2196,7 @@ void Test::testSharedFormulaUnshareAreaListeners()
clearRange(m_pDoc, ScRange( 0,0,0, 2,8,0));
- insertRangeData(m_pDoc, aOrgPos, pData2, SAL_N_ELEMENTS(pData2));
+ insertRangeData(m_pDoc, aOrgPos, aData2);
// Overwrite grouping formulas in A4:A5
aPos = ScAddress(0,3,0);
@@ -2233,17 +2233,17 @@ void Test::testSharedFormulaListenerDeleteArea()
m_pDoc->InsertTab(0, "Test0");
m_pDoc->InsertTab(1, "Test1");
- const char* pData0[][3] = {
+ const std::vector<std::vector<const char*>> aData0 = {
{ "", "", "=Test1.C1" },
{ "", "", "=Test1.C2" }
};
- const char* pData1[][3] = {
+ const std::vector<std::vector<const char*>> aData1 = {
{ "=Test0.A1", "=Test0.B1", "=SUM(A1:B1)" },
{ "=Test0.A2", "=Test0.B2", "=SUM(A2:B2)" },
};
- insertRangeData(m_pDoc, ScAddress(0,0,0), pData0, SAL_N_ELEMENTS(pData0));
- insertRangeData(m_pDoc, ScAddress(0,0,1), pData1, SAL_N_ELEMENTS(pData1));
+ insertRangeData(m_pDoc, ScAddress(0,0,0), aData0);
+ insertRangeData(m_pDoc, ScAddress(0,0,1), aData1);
// Check that Test1.A1:A2 and Test1.B1:B2 are formula groups.
const ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(0,0,1));
@@ -2276,7 +2276,7 @@ void Test::testSharedFormulaUpdateOnReplacement()
m_pDoc->InsertTab(0, "Test");
- const char* pData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "1" },
{ "=SUM($A$1:$A1)" },
{ "=SUM($A$1:$A2)" },
@@ -2287,7 +2287,7 @@ void Test::testSharedFormulaUpdateOnReplacement()
{ "=SUM($A$1:$A7)" }
};
- insertRangeData(m_pDoc, ScAddress(0,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData(m_pDoc, ScAddress(0,0,0), aData);
// Check that A2:A8 is a formula group.
const ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(0,1,0));
@@ -2431,12 +2431,12 @@ void Test::testSharedFormulaDeleteTopCell()
m_pDoc->InsertTab(0, "Test");
- const char* pData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "=SUM(B$1:B$2)", "1" },
{ "=SUM(B$1:B$2)", "2" }
};
- insertRangeData( m_pDoc, ScAddress(0,0,0), pData, SAL_N_ELEMENTS(pData));
+ insertRangeData( m_pDoc, ScAddress(0,0,0), aData);
// Check that A1:A2 is a formula group.
const ScFormulaCell* pFC = m_pDoc->GetFormulaCell( ScAddress(0,0,0));
diff --git a/sc/qa/unit/ucalc_sort.cxx b/sc/qa/unit/ucalc_sort.cxx
index d63bab256367..8ff3cf58e60d 100644
--- a/sc/qa/unit/ucalc_sort.cxx
+++ b/sc/qa/unit/ucalc_sort.cxx
@@ -42,15 +42,15 @@ void Test::testSort()
ScAddress aPos(0,0,0);
{
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "2", "4" },
{ "4", "1" },
{ "1", "2" },
{ "1", "23" },
};
- clearRange(m_pDoc, ScRange(0, 0, 0, 1, SAL_N_ELEMENTS(aData), 0));
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ clearRange(m_pDoc, ScRange(0, 0, 0, 1, aData.size(), 0));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
}
@@ -82,7 +82,7 @@ void Test::testSort()
clearRange(m_pDoc, ScRange(0, 0, 0, 1, 9, 0)); // Clear A1:B10.
{
// 0 = empty cell
- const char* aData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Title" },
{ nullptr },
{ nullptr },
@@ -93,7 +93,7 @@ void Test::testSort()
{ "123" }
};
- aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
}
@@ -141,7 +141,7 @@ void Test::testSortHorizontal()
// Test case from fdo#78079.
// 0 = empty cell
- const char* aData[][4] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "table", "has UNIQUE", "Publish to EC2", "flag" },
{ "w2gi.mobilehit", "Yes", "No", "=CONCATENATE(B2;\"-\";C2)" },
{ "w2gi.visitors", "No", "No", "=CONCATENATE(B3;\"-\";C3)" },
@@ -149,7 +149,7 @@ void Test::testSortHorizontal()
};
// Insert raw data into A1:D4.
- ScRange aDataRange = insertRangeData(m_pDoc, ScAddress(0,0,0), aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, ScAddress(0,0,0), aData);
CPPUNIT_ASSERT_EQUAL(OUString("A1:D4"), aDataRange.Format(*m_pDoc, ScRefFlags::VALID));
// Check the formula values.
@@ -204,12 +204,12 @@ void Test::testSortHorizontalWholeColumn()
m_pDoc->InsertTab(0, "Sort");
// 0 = empty cell
- const char* aData[][5] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "4", "2", "47", "a", "9" }
};
// Insert row data to C1:G1.
- ScRange aSortRange = insertRangeData(m_pDoc, ScAddress(2,0,0), aData, SAL_N_ELEMENTS(aData));
+ ScRange aSortRange = insertRangeData(m_pDoc, ScAddress(2,0,0), aData);
CPPUNIT_ASSERT_EQUAL(4.0, m_pDoc->GetValue(ScAddress(2,0,0)));
CPPUNIT_ASSERT_EQUAL(2.0, m_pDoc->GetValue(ScAddress(3,0,0)));
CPPUNIT_ASSERT_EQUAL(47.0, m_pDoc->GetValue(ScAddress(4,0,0)));
@@ -1040,7 +1040,7 @@ void Test::testSortRefUpdate4_Impl()
m_pDoc->InsertTab(2, "Lesson2");
{
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Note" },
{ "Student1", "1" },
{ "Student2", "2" },
@@ -1051,13 +1051,13 @@ void Test::testSortRefUpdate4_Impl()
SCTAB nTab = 1;
ScAddress aPos(0,0,nTab);
- clearRange(m_pDoc, ScRange(0, 0, nTab, 1, SAL_N_ELEMENTS(aData), nTab));
- ScRange aLesson1Range = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ clearRange(m_pDoc, ScRange(0, 0, nTab, 1, aData.size(), nTab));
+ ScRange aLesson1Range = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aLesson1Range.aStart);
}
{
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Note" },
{ "=Lesson1.A2", "3" },
{ "=Lesson1.A3", "4" },
@@ -1068,14 +1068,14 @@ void Test::testSortRefUpdate4_Impl()
SCTAB nTab = 2;
ScAddress aPos(0,0,nTab);
- clearRange(m_pDoc, ScRange(0, 0, nTab, 1, SAL_N_ELEMENTS(aData), nTab));
- ScRange aLesson2Range = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ clearRange(m_pDoc, ScRange(0, 0, nTab, 1, aData.size(), nTab));
+ ScRange aLesson2Range = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aLesson2Range.aStart);
}
ScRange aSortRange;
{
- const char* aData[][4] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Name", "Lesson1", "Lesson2", "Average" },
{ "=Lesson1.A2", "=Lesson1.B2", "=Lesson2.B2", "=AVERAGE(B2:C2)" },
{ "=Lesson1.A3", "=Lesson1.B3", "=Lesson2.B3", "=AVERAGE(B3:C3)" },
@@ -1086,8 +1086,8 @@ void Test::testSortRefUpdate4_Impl()
SCTAB nTab = 0;
ScAddress aPos(0,0,nTab);
- clearRange(m_pDoc, ScRange(0, 0, nTab, 1, SAL_N_ELEMENTS(aData), nTab));
- aSortRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ clearRange(m_pDoc, ScRange(0, 0, nTab, 1, aData.size(), nTab));
+ aSortRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aSortRange.aStart);
}
@@ -1241,7 +1241,7 @@ void Test::testSortRefUpdate5()
};
ScRange aSortRange;
{
- const char* aData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Date", "Volatile", "Order" },
{ "1999-05-05", "=TODAY()-$A2", "4" },
{ "1994-10-18", "=TODAY()-$A3", "1" },
@@ -1251,8 +1251,8 @@ void Test::testSortRefUpdate5()
SCTAB nTab = 0;
ScAddress aPos(0,0,nTab);
- clearRange(m_pDoc, ScRange(0, 0, nTab, 2, SAL_N_ELEMENTS(aData), nTab));
- aSortRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ clearRange(m_pDoc, ScRange(0, 0, nTab, 2, aData.size(), nTab));
+ aSortRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aSortRange.aStart);
// Actual results and expected sorted results.
@@ -1335,7 +1335,7 @@ void Test::testSortRefUpdate6()
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
m_pDoc->InsertTab(0, "Sort");
- const char* aData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "Order", "Value", "1" },
{ "9", "1", "=C1+B2" },
{ "1", "2", "=C2+B3" },
@@ -1343,7 +1343,7 @@ void Test::testSortRefUpdate6()
};
ScAddress aPos(0,0,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aDataRange.aStart);
{
@@ -1474,13 +1474,13 @@ void Test::testSortBroadcaster()
m_pDoc->InsertTab(0, "Sort");
{
- const char* aData[][7] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "1", nullptr, nullptr, "=B1", "=$B$1", "=SUM(A1:B1)", "=SUM($A$1:$B$1)" },
{ "2", "8", nullptr, "=B2", "=$B$2", "=SUM(A2:B2)", "=SUM($A$2:$B$2)" },
};
ScAddress aPos(0,0,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aDataRange.aStart);
{
@@ -1561,7 +1561,7 @@ void Test::testSortBroadcaster()
// The same for sort by column. Start data at A5.
{
- const char* aData[][2] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "1", "2" },
{ nullptr, "8" },
{ nullptr, nullptr },
@@ -1572,7 +1572,7 @@ void Test::testSortBroadcaster()
};
ScAddress aPos(0,4,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aDataRange.aStart);
{
@@ -1674,13 +1674,13 @@ void Test::testSortBroadcastBroadcaster()
m_pDoc->InsertTab(0, "Sort");
{
- const char* aData[][3] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "1", "=A1", "=B1" },
{ "2", "=A2", "=B2" },
};
ScAddress aPos(0,0,0);
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL(aPos, aDataRange.aStart);
{
@@ -1892,13 +1892,13 @@ void Test::testSortImages()
ScAddress aPos(0,0,0);
{
- const char* aData[][1] = {
+ const std::vector<std::vector<const char*>> aData = {
{ "2" },
{ "1" },
};
- clearRange(m_pDoc, ScRange(0, 0, 0, 1, SAL_N_ELEMENTS(aData), 0));
- ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ clearRange(m_pDoc, ScRange(0, 0, 0, 1, aData.size(), 0));
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData);
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
}