summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2022-03-04 20:42:59 +0100
committerLuboš Luňák <l.lunak@collabora.com>2022-03-05 08:30:59 +0100
commit31e0ada711a008d7841a2da243ce50bc49c6c857 (patch)
tree3e8ef03b84cabc09417f5fe5e95a06afee86c9a9
parent16b4525e8770ca457c8b33f08c5f9ef5f35ef62e (diff)
remove more hardcoded sheet sizes from Calc tests
E.g. sctablesheetobj test had the limits hardcoded, even as actual numbers. Apparently some tests cannot easily access global settings, but this at least makes it easy to check all tests after modifying ScSheetLimits::CreateDefault(). Change-Id: I6cff577fb01b1ea262dcd1f9fde24e114e19abdc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131040 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
-rw-r--r--sc/CppunitTest_sc_tablecolumnsobj.mk3
-rw-r--r--sc/CppunitTest_sc_tablerowsobj.mk3
-rw-r--r--sc/CppunitTest_sc_tablesheetobj.mk3
-rw-r--r--sc/inc/sheetlimits.hxx9
-rw-r--r--sc/qa/extras/sctablecolumnsobj.cxx4
-rw-r--r--sc/qa/extras/sctablerowsobj.cxx4
-rw-r--r--sc/qa/extras/sctablesheetobj.cxx7
-rw-r--r--sc/qa/unit/mark_test.cxx146
-rw-r--r--sc/qa/unit/rangelst_test.cxx2
-rw-r--r--sc/qa/unit/ucalc.cxx2
-rw-r--r--sc/qa/unit/ucalc_formula.cxx2
-rw-r--r--sc/source/core/data/documen2.cxx16
12 files changed, 115 insertions, 86 deletions
diff --git a/sc/CppunitTest_sc_tablecolumnsobj.mk b/sc/CppunitTest_sc_tablecolumnsobj.mk
index 04d41985aa22..29e65d860830 100644
--- a/sc/CppunitTest_sc_tablecolumnsobj.mk
+++ b/sc/CppunitTest_sc_tablecolumnsobj.mk
@@ -22,12 +22,15 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_tablecolumnsobj, \
$(eval $(call gb_CppunitTest_use_libraries,sc_tablecolumnsobj, \
cppu \
sal \
+ salhelper \
+ sc \
subsequenttest \
test \
unotest \
))
$(eval $(call gb_CppunitTest_set_include,sc_tablecolumnsobj,\
+ -I$(SRCDIR)/sc/inc \
$$(INCLUDE) \
))
diff --git a/sc/CppunitTest_sc_tablerowsobj.mk b/sc/CppunitTest_sc_tablerowsobj.mk
index 4c82243b4f1a..ffbd3850aebd 100644
--- a/sc/CppunitTest_sc_tablerowsobj.mk
+++ b/sc/CppunitTest_sc_tablerowsobj.mk
@@ -22,12 +22,15 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_tablerowsobj, \
$(eval $(call gb_CppunitTest_use_libraries,sc_tablerowsobj, \
cppu \
sal \
+ salhelper \
+ sc \
subsequenttest \
test \
unotest \
))
$(eval $(call gb_CppunitTest_set_include,sc_tablerowsobj,\
+ -I$(SRCDIR)/sc/inc \
$$(INCLUDE) \
))
diff --git a/sc/CppunitTest_sc_tablesheetobj.mk b/sc/CppunitTest_sc_tablesheetobj.mk
index 44e72d112bc8..52f7f427b27a 100644
--- a/sc/CppunitTest_sc_tablesheetobj.mk
+++ b/sc/CppunitTest_sc_tablesheetobj.mk
@@ -22,12 +22,15 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_tablesheetobj, \
$(eval $(call gb_CppunitTest_use_libraries,sc_tablesheetobj, \
cppu \
sal \
+ salhelper \
+ sc \
subsequenttest \
test \
unotest \
))
$(eval $(call gb_CppunitTest_set_include,sc_tablesheetobj,\
+ -I$(SRCDIR)/sc/inc \
$$(INCLUDE) \
))
diff --git a/sc/inc/sheetlimits.hxx b/sc/inc/sheetlimits.hxx
index cbc017c9d10e..1d1410b9056a 100644
--- a/sc/inc/sheetlimits.hxx
+++ b/sc/inc/sheetlimits.hxx
@@ -31,12 +31,13 @@ struct ScSheetLimits final : public salhelper::SimpleReferenceObject
ScSheetLimits(SCCOL nMaxCol, SCROW nMaxRow)
: mnMaxCol(nMaxCol)
- , mnMaxRow(nMaxRow){}
-
- [[nodiscard]] bool ValidCol(SCCOL nCol) const
+ , mnMaxRow(nMaxRow)
{
- return ::ValidCol(nCol, mnMaxCol);
}
+
+ SC_DLLPUBLIC static ScSheetLimits CreateDefault();
+
+ [[nodiscard]] bool ValidCol(SCCOL nCol) const { return ::ValidCol(nCol, mnMaxCol); }
[[nodiscard]] bool ValidRow(SCROW nRow) const { return ::ValidRow(nRow, mnMaxRow); }
[[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const
{
diff --git a/sc/qa/extras/sctablecolumnsobj.cxx b/sc/qa/extras/sctablecolumnsobj.cxx
index 406e559489fa..ccb96f7c786d 100644
--- a/sc/qa/extras/sctablecolumnsobj.cxx
+++ b/sc/qa/extras/sctablecolumnsobj.cxx
@@ -29,6 +29,8 @@
#include <com/sun/star/uno/Reference.hxx>
+#include <sheetlimits.hxx>
+
using namespace css;
namespace sc_apitest
@@ -90,7 +92,7 @@ private:
ScTableColumnsObj::ScTableColumnsObj()
: CalcUnoApiTest("/sc/qa/extras/testdocuments")
, XElementAccess(cppu::UnoType<table::XCellRange>::get())
- , XIndexAccess(1024)
+ , XIndexAccess(ScSheetLimits::CreateDefault().GetMaxColCount())
, XNameAccess("ABC")
, XServiceInfo("ScTableColumnsObj", "com.sun.star.table.TableColumns")
{
diff --git a/sc/qa/extras/sctablerowsobj.cxx b/sc/qa/extras/sctablerowsobj.cxx
index 5efe6bc64cac..419a326f48cd 100644
--- a/sc/qa/extras/sctablerowsobj.cxx
+++ b/sc/qa/extras/sctablerowsobj.cxx
@@ -28,6 +28,8 @@
#include <cppu/unotype.hxx>
+#include <sheetlimits.hxx>
+
using namespace css;
using namespace css::uno;
@@ -79,7 +81,7 @@ private:
ScTableRowsObj::ScTableRowsObj()
: CalcUnoApiTest("/sc/qa/extras/testdocuments")
, XElementAccess(cppu::UnoType<table::XCellRange>::get())
- , XIndexAccess(1048576)
+ , XIndexAccess(ScSheetLimits::CreateDefault().GetMaxRowCount())
, XServiceInfo("ScTableRowsObj", "com.sun.star.table.TableRows")
{
}
diff --git a/sc/qa/extras/sctablesheetobj.cxx b/sc/qa/extras/sctablesheetobj.cxx
index 3179ae54d2d3..055de3babb2b 100644
--- a/sc/qa/extras/sctablesheetobj.cxx
+++ b/sc/qa/extras/sctablesheetobj.cxx
@@ -48,6 +48,8 @@
#include <com/sun/star/sheet/XSpreadsheet.hpp>
#include <com/sun/star/table/CellRangeAddress.hpp>
+#include <sheetlimits.hxx>
+
using namespace css;
using namespace css::uno;
@@ -248,7 +250,10 @@ private:
ScTableSheetObj::ScTableSheetObj():
CalcUnoApiTest("/sc/qa/extras/testdocuments"),
apitest::XCellSeries(1, 0),
- apitest::XFormulaQuery(table::CellRangeAddress(0, 0, 0, 1023, 1048575), table::CellRangeAddress(0, 0, 0, 1023, 1048575), 0, 0),
+ apitest::XFormulaQuery(
+ table::CellRangeAddress(0, 0, 0, ScSheetLimits::CreateDefault().MaxCol(), ScSheetLimits::CreateDefault().MaxRow()),
+ table::CellRangeAddress(0, 0, 0, ScSheetLimits::CreateDefault().MaxCol(), ScSheetLimits::CreateDefault().MaxRow()),
+ 0, 0),
apitest::XReplaceable("searchReplaceString", "replaceReplaceString"),
apitest::XSearchable("test", 4)
{
diff --git a/sc/qa/unit/mark_test.cxx b/sc/qa/unit/mark_test.cxx
index 55a13cb0da57..bca735aae202 100644
--- a/sc/qa/unit/mark_test.cxx
+++ b/sc/qa/unit/mark_test.cxx
@@ -96,7 +96,8 @@ class Test : public CppUnit::TestFixture
public:
void testSimpleMark( const ScRange& rRange, const ScRange& rSelectionCover,
const ScRangeList& rLeftEnvelope, const ScRangeList& rRightEnvelope,
- const ScRangeList& rTopEnvelope, const ScRangeList& rBottomEnvelope );
+ const ScRangeList& rTopEnvelope, const ScRangeList& rBottomEnvelope,
+ const ScSheetLimits& rLimits );
void testSimpleMark_Simple();
void testSimpleMark_Column();
void testSimpleMark_Row();
@@ -147,10 +148,10 @@ static void lcl_GetSortedRanges( const ScRangeList& rRangeList, ScRangeList& rRa
void Test::testSimpleMark( const ScRange& rRange, const ScRange& rSelectionCover,
const ScRangeList& rLeftEnvelope, const ScRangeList& rRightEnvelope,
- const ScRangeList& rTopEnvelope, const ScRangeList& rBottomEnvelope )
+ const ScRangeList& rTopEnvelope, const ScRangeList& rBottomEnvelope,
+ const ScSheetLimits& rLimits )
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData aMark(aSheetLimits);
+ ScMarkData aMark(rLimits);
CPPUNIT_ASSERT( !aMark.IsMarked() );
CPPUNIT_ASSERT( !aMark.IsMultiMarked() );
@@ -168,29 +169,29 @@ void Test::testSimpleMark( const ScRange& rRange, const ScRange& rSelectionCover
SCCOL nOutCol2 = rRange.aStart.Col() - 1;
CPPUNIT_ASSERT( aMark.IsCellMarked( nMidCol, nMidRow ) );
- if ( ValidCol( nOutCol1, MAXCOL ) && ValidRow( nOutRow1, MAXROW ) )
+ if ( ValidCol( nOutCol1, rLimits.MaxCol() ) && ValidRow( nOutRow1, rLimits.MaxRow() ) )
CPPUNIT_ASSERT( !aMark.IsCellMarked( nOutCol1, nOutRow1 ) );
- if ( ValidCol( nOutCol2, MAXCOL ) && ValidRow( nOutRow2, MAXROW ) )
+ if ( ValidCol( nOutCol2, rLimits.MaxCol() ) && ValidRow( nOutRow2, rLimits.MaxRow() ) )
CPPUNIT_ASSERT( !aMark.IsCellMarked( nOutCol2, nOutRow2 ) );
- if ( ValidRow( nOutRow1, MAXROW ) )
+ if ( ValidRow( nOutRow1, rLimits.MaxRow() ) )
CPPUNIT_ASSERT( !aMark.IsCellMarked( nMidCol, nOutRow1 ) );
- if ( ValidCol( nOutCol1, MAXCOL ) )
+ if ( ValidCol( nOutCol1, rLimits.MaxCol() ) )
CPPUNIT_ASSERT( !aMark.IsCellMarked( nOutCol1, nMidRow ) );
- if ( ValidRow( nOutRow2, MAXROW ) )
+ if ( ValidRow( nOutRow2, rLimits.MaxRow() ) )
CPPUNIT_ASSERT( !aMark.IsCellMarked( nMidCol, nOutRow2 ) );
- if ( ValidCol( nOutCol2, MAXCOL ) )
+ if ( ValidCol( nOutCol2, rLimits.MaxCol() ) )
CPPUNIT_ASSERT( !aMark.IsCellMarked( nOutCol2, nMidRow ) );
- if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW )
+ if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == rLimits.MaxRow() )
CPPUNIT_ASSERT( aMark.IsColumnMarked( nMidCol ) );
else
CPPUNIT_ASSERT( !aMark.IsColumnMarked( nMidCol ) );
- if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL )
+ if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == rLimits.MaxCol() )
CPPUNIT_ASSERT( aMark.IsRowMarked( nMidRow ) );
else
CPPUNIT_ASSERT( !aMark.IsRowMarked( nMidRow ) );
@@ -206,58 +207,65 @@ void Test::testSimpleMark( const ScRange& rRange, const ScRange& rSelectionCover
void Test::testSimpleMark_Simple()
{
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
testSimpleMark( ScRange( 10, 15, 0, 20, 30, 0 ), // Simple range
ScRange( 9, 14, 0, 21, 31, 0 ), // Cover
ScRangeList( ScRange( 9, 15, 0, 9, 30, 0 ) ), // Left envelope
ScRangeList( ScRange( 21, 15, 0, 21, 30, 0 ) ), // Right envelope
ScRangeList( ScRange( 10, 14, 0, 20, 14, 0 ) ), // Top envelope
- ScRangeList( ScRange( 10, 31, 0, 20, 31, 0 ) ) ); // Bottom envelope
+ ScRangeList( ScRange( 10, 31, 0, 20, 31, 0 ) ), // Bottom envelope
+ limits );
}
void Test::testSimpleMark_Column()
{
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
// Column 10, rows from 15 to 30
testSimpleMark( ScRange( 10, 15, 0, 10, 30, 0 ), // Simple range
ScRange( 9, 14, 0, 11, 31, 0 ), // Cover
ScRangeList( ScRange( 9, 15, 0, 9, 30, 0 ) ), // Left envelope
ScRangeList( ScRange( 11, 15, 0, 11, 30, 0 ) ), // Right envelope
ScRangeList( ScRange( 10, 14, 0, 10, 14, 0 ) ), // Top envelope
- ScRangeList( ScRange( 10, 31, 0, 10, 31, 0 ) ) ); // Bottom envelope
+ ScRangeList( ScRange( 10, 31, 0, 10, 31, 0 ) ), // Bottom envelope
+ limits );
// Full Column 10
- testSimpleMark( ScRange( 10, 0, 0, 10, MAXROW, 0 ), // Simple range
- ScRange( 9, 0, 0, 11, MAXROW, 0 ), // Cover
- ScRangeList( ScRange( 9, 0, 0, 9, MAXROW, 0 ) ), // Left envelope
- ScRangeList( ScRange( 11, 0, 0, 11, MAXROW, 0 ) ), // Right envelope
+ testSimpleMark( ScRange( 10, 0, 0, 10, limits.MaxRow(), 0 ), // Simple range
+ ScRange( 9, 0, 0, 11, limits.MaxRow(), 0 ), // Cover
+ ScRangeList( ScRange( 9, 0, 0, 9, limits.MaxRow(), 0 ) ), // Left envelope
+ ScRangeList( ScRange( 11, 0, 0, 11, limits.MaxRow(), 0 ) ), // Right envelope
ScRangeList(), // Top envelope
- ScRangeList()); // Bottom envelope
+ ScRangeList(), // Bottom envelope
+ limits );
}
void Test::testSimpleMark_Row()
{
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
// Row 15, cols from 10 to 20
testSimpleMark( ScRange( 10, 15, 0, 20, 15, 0 ), // Simple range
ScRange( 9, 14, 0, 21, 16, 0 ), // Cover
ScRangeList( ScRange( 9, 15, 0, 9, 15, 0 ) ), // Left envelope
ScRangeList( ScRange( 21, 15, 0, 21, 15, 0 ) ), // Right envelope
ScRangeList( ScRange( 10, 14, 0, 20, 14, 0 ) ), // Top envelope
- ScRangeList( ScRange( 10, 16, 0, 20, 16, 0 ) ) ); // Bottom envelope
+ ScRangeList( ScRange( 10, 16, 0, 20, 16, 0 ) ), // Bottom envelope
+ limits );
// Full Row 15
- testSimpleMark( ScRange( 0, 15, 0, MAXCOL, 15, 0 ), // Simple range
- ScRange( 0, 14, 0, MAXCOL, 16, 0 ), // Cover
+ testSimpleMark( ScRange( 0, 15, 0, limits.MaxCol(), 15, 0 ), // Simple range
+ ScRange( 0, 14, 0, limits.MaxCol(), 16, 0 ), // Cover
ScRangeList(), // Left envelope
ScRangeList(), // Right envelope
- ScRangeList( ScRange( 0, 14, 0, MAXCOL, 14, 0 ) ), // Top envelope
- ScRangeList( ScRange( 0, 16, 0, MAXCOL, 16, 0 ) ) ); // Bottom envelope
+ ScRangeList( ScRange( 0, 14, 0, limits.MaxCol(), 14, 0 ) ), // Top envelope
+ ScRangeList( ScRange( 0, 16, 0, limits.MaxCol(), 16, 0 ) ), // Bottom envelope
+ limits );
}
void Test::testMultiMark( const MultiMarkTestData& rMarksData )
{
-
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData aMark(aSheetLimits);
- ScMultiSel aMultiSel(aSheetLimits);
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
+ ScMarkData aMark(limits);
+ ScMultiSel aMultiSel(limits);
CPPUNIT_ASSERT( !aMark.IsMarked() );
CPPUNIT_ASSERT( !aMark.IsMultiMarked() );
CPPUNIT_ASSERT_EQUAL( SCCOL(0), aMultiSel.GetMultiSelectionCount() );
@@ -286,13 +294,13 @@ void Test::testMultiMark( const MultiMarkTestData& rMarksData )
for ( const auto& rCol : rAreaTestData.aColumnsWithFullMarks )
{
CPPUNIT_ASSERT( aMark.IsColumnMarked( rCol ) );
- CPPUNIT_ASSERT( aMultiSel.IsAllMarked( rCol, 0, MAXROW ) );
+ CPPUNIT_ASSERT( aMultiSel.IsAllMarked( rCol, 0, limits.MaxRow() ) );
}
for ( const auto& rCol : rAreaTestData.aColumnsWithoutFullMarks )
{
CPPUNIT_ASSERT( !aMark.IsColumnMarked( rCol ) );
- CPPUNIT_ASSERT( !aMultiSel.IsAllMarked( rCol, 0, MAXROW ) );
+ CPPUNIT_ASSERT( !aMultiSel.IsAllMarked( rCol, 0, limits.MaxRow() ) );
}
for ( const auto& rRow : rAreaTestData.aRowsWithFullMarks )
@@ -415,6 +423,7 @@ void Test::testMultiMark( const MultiMarkTestData& rMarksData )
void Test::testMultiMark_FourRanges()
{
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
MultiMarkTestData aData;
MarkTestData aSingle1;
@@ -449,7 +458,7 @@ void Test::testMultiMark_FourRanges()
aSingle1.aNextMarked.emplace_back( 15, 1, 0, 1, 5, 0 ); // Search down
aSingle1.aNextMarked.emplace_back( 15, 15, 0, 0, 10, 0 ); // Search up
- aSingle1.aNextMarked.emplace_back( 15, 15, 0, 1, MAXROWCOUNT, 0 ); // Search down fail
+ aSingle1.aNextMarked.emplace_back( 15, 15, 0, 1, limits.GetMaxRowCount(), 0 ); // Search down fail
aSingle1.aNextMarked.emplace_back( 15, 4, 0, 0, -1, 0 ); // Search up fail
aSingle1.aColumnsWithAtLeastOneMark.push_back( 10 );
@@ -495,7 +504,7 @@ void Test::testMultiMark_FourRanges()
aSingle2.aNextMarked.emplace_back( 27, 16, 0, 0, 15, 0 ); // up ok
aSingle2.aNextMarked.emplace_back( 27, 4, 0, 1, 7, 0 ); // down ok
aSingle2.aNextMarked.emplace_back( 27, 4, 0, 0, -1, 0 ); // up fail
- aSingle2.aNextMarked.emplace_back( 27, 16, 0, 1, MAXROWCOUNT, 0 ); // down fail
+ aSingle2.aNextMarked.emplace_back( 27, 16, 0, 1, limits.GetMaxRowCount(), 0 ); // down fail
aSingle2.aColumnsWithAtLeastOneMark = aSingle1.aColumnsWithAtLeastOneMark;
aSingle2.aColumnsWithAtLeastOneMark.push_back( 25 );
@@ -510,7 +519,7 @@ void Test::testMultiMark_FourRanges()
// Full row = 20
MarkTestData aSingle3;
- aSingle3.aRange = ScRange( 0, 20, 0, MAXCOL, 20, 0 );
+ aSingle3.aRange = ScRange( 0, 20, 0, limits.MaxCol(), 20, 0 );
aSingle3.bMark = true;
aSingle3.aInsideAddresses = aSingle2.aInsideAddresses;
@@ -525,13 +534,13 @@ void Test::testMultiMark_FourRanges()
aSingle3.aRowsWithFullMarks.push_back( 20 );
aSingle3.aRangesWithFullMarks = aSingle2.aRangesWithFullMarks;
- aSingle3.aRangesWithFullMarks.emplace_back( 0, 20, 0, MAXCOL, 20, 0 );
+ aSingle3.aRangesWithFullMarks.emplace_back( 0, 20, 0, limits.MaxCol(), 20, 0 );
aSingle3.aRangesWithFullMarks.emplace_back( 15, 20, 0, 55, 20, 0 );
aSingle3.aNextMarked.emplace_back( 15, 16, 0, 0, 10, 0 ); // up ok
aSingle3.aNextMarked.emplace_back( 15, 16, 0, 1, 20, 0 ); // down ok
aSingle3.aNextMarked.emplace_back( 22, 15, 0, 0, -1, 0 ); // up fail
- aSingle3.aNextMarked.emplace_back( 22, 25, 0, 1, MAXROWCOUNT, 0 ); // down fail
+ aSingle3.aNextMarked.emplace_back( 22, 25, 0, 1, limits.GetMaxRowCount(), 0 ); // down fail
aSingle3.aColumnsWithAtLeastOneMark = aSingle2.aColumnsWithAtLeastOneMark;
aSingle3.aColumnsWithAtLeastOneMark.push_back( 39 );
@@ -539,7 +548,7 @@ void Test::testMultiMark_FourRanges()
// Full col = 35
MarkTestData aSingle4;
- aSingle4.aRange = ScRange( 35, 0, 0, 35, MAXROW, 0 );
+ aSingle4.aRange = ScRange( 35, 0, 0, 35, limits.MaxRow(), 0 );
aSingle4.bMark = true;
aSingle4.aInsideAddresses = aSingle3.aInsideAddresses;
@@ -556,7 +565,7 @@ void Test::testMultiMark_FourRanges()
aSingle4.aRowsWithFullMarks.push_back( 20 );
aSingle4.aRangesWithFullMarks = aSingle3.aRangesWithFullMarks;
- aSingle4.aRangesWithFullMarks.emplace_back( 35, 0, 0, 35, MAXROW, 0 );
+ aSingle4.aRangesWithFullMarks.emplace_back( 35, 0, 0, 35, limits.MaxRow(), 0 );
aSingle4.aRangesWithFullMarks.emplace_back( 35, 10, 0, 35, 25, 0 );
// Add the rectangle data to aData
@@ -565,26 +574,26 @@ void Test::testMultiMark_FourRanges()
aData.aMarks.push_back( aSingle3 );
aData.aMarks.push_back( aSingle4 );
- aData.aSelectionCover = ScRange( 0, 0, 0, MAXCOL, MAXROW, 0 );
+ aData.aSelectionCover = ScRange( 0, 0, 0, limits.MaxCol(), limits.MaxRow(), 0 );
aData.aLeftEnvelope.push_back( ScRange( 9, 5, 0, 9, 10, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 24, 7, 0, 24, 15, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 34, 0, 0, 34, 19, 0 ) );
- aData.aLeftEnvelope.push_back( ScRange( 34, 21, 0, 34, MAXROW, 0 ) );
+ aData.aLeftEnvelope.push_back( ScRange( 34, 21, 0, 34, limits.MaxRow(), 0 ) );
aData.aRightEnvelope.push_back( ScRange( 21, 5, 0, 21, 10, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 31, 7, 0, 31, 15, 0 ) );
aData.aRightEnvelope.push_back( ScRange( 36, 0, 0, 36, 19, 0 ) );
- aData.aRightEnvelope.push_back( ScRange( 36, 21, 0, 36, MAXROW, 0 ) );
+ aData.aRightEnvelope.push_back( ScRange( 36, 21, 0, 36, limits.MaxRow(), 0 ) );
aData.aTopEnvelope.push_back( ScRange( 10, 4, 0, 20, 4, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 25, 6, 0, 30, 6, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 0, 19, 0, 34, 19, 0 ) );
- aData.aTopEnvelope.push_back( ScRange( 36, 19, 0, MAXCOL, 19, 0 ) );
+ aData.aTopEnvelope.push_back( ScRange( 36, 19, 0, limits.MaxCol(), 19, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 10, 11, 0, 20, 11, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 25, 16, 0, 30, 16, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 0, 21, 0, 34, 21, 0 ) );
- aData.aBottomEnvelope.push_back( ScRange( 36, 21, 0, MAXCOL, 21, 0 ) );
+ aData.aBottomEnvelope.push_back( ScRange( 36, 21, 0, limits.MaxCol(), 21, 0 ) );
MarkArrayTestData aMarkArrayTestData1;
aMarkArrayTestData1.nCol = 5;
@@ -610,7 +619,7 @@ void Test::testMultiMark_FourRanges()
MarkArrayTestData aMarkArrayTestData6;
aMarkArrayTestData6.nCol = 35;
- aMarkArrayTestData6.aMarkedRowSegs.emplace_back( 0, MAXROW );
+ aMarkArrayTestData6.aMarkedRowSegs.emplace_back( 0, limits.MaxRow() );
MarkArrayTestData aMarkArrayTestData7;
aMarkArrayTestData7.nCol = 40;
@@ -627,7 +636,7 @@ void Test::testMultiMark_FourRanges()
aData.aColsWithOneMark.emplace_back( 5, 20, 0, 0, 20, 0 );
aData.aColsWithOneMark.emplace_back( 22, 20, 0, 0, 20, 0 );
aData.aColsWithOneMark.emplace_back( 32, 20, 0, 0, 20, 0 );
- aData.aColsWithOneMark.emplace_back( 35, 0, 0, 0, MAXROW, 0 );
+ aData.aColsWithOneMark.emplace_back( 35, 0, 0, 0, limits.MaxRow(), 0 );
aData.aColsWithOneMark.emplace_back( 50, 20, 0, 0, 20, 0 );
aData.aColsWithoutOneMark.push_back( 10 );
@@ -642,7 +651,7 @@ void Test::testMultiMark_FourRanges()
aData.aColsAllMarked.emplace_back( 10, 20, 0, 0, 20, 0 );
aData.aColsAllMarked.emplace_back( 25, 7, 0, 0, 15, 0 );
aData.aColsAllMarked.emplace_back( 30, 7, 0, 0, 15, 0 );
- aData.aColsAllMarked.emplace_back( 35, 0, 0, 0, MAXROW, 0 );
+ aData.aColsAllMarked.emplace_back( 35, 0, 0, 0, limits.MaxRow(), 0 );
aData.aColsAllMarked.emplace_back( 100, 20, 0, 0, 20, 0 );
aData.aColsNotAllMarked.emplace_back( 5, 5, 0, 0, 25, 0 );
@@ -676,11 +685,12 @@ void Test::testMultiMark_FourRanges()
void Test::testMultiMark_NegativeMarking()
{
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
MultiMarkTestData aData;
// Create full row = 5
MarkTestData aSingle1;
- aSingle1.aRange = ScRange( 0, 5, 0, MAXCOL, 5, 0 );
+ aSingle1.aRange = ScRange( 0, 5, 0, limits.MaxCol(), 5, 0 );
aSingle1.bMark = true;
// Create rectangle ( 10, 8, 25, 20 )
@@ -690,7 +700,7 @@ void Test::testMultiMark_NegativeMarking()
// Create full row = 12
MarkTestData aSingle3;
- aSingle3.aRange = ScRange( 0, 12, 0, MAXCOL, 12, 0 );
+ aSingle3.aRange = ScRange( 0, 12, 0, limits.MaxCol(), 12, 0 );
aSingle3.bMark = true;
// Create deselection rectangle ( 17, 5, 20, 5 )
@@ -765,7 +775,7 @@ void Test::testMultiMark_NegativeMarking()
aData.aMarks.push_back( aSingle4 );
aData.aMarks.push_back( aSingle5 );
- aData.aSelectionCover = ScRange( 0, 4, 0, MAXCOL, 21, 0 );
+ aData.aSelectionCover = ScRange( 0, 4, 0, limits.MaxCol(), 21, 0 );
aData.aLeftEnvelope.push_back( ScRange( 9, 8, 0, 9, 11, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 9, 13, 0, 9, 20, 0 ) );
aData.aLeftEnvelope.push_back( ScRange( 18, 10, 0, 18, 14, 0 ) );
@@ -777,17 +787,17 @@ void Test::testMultiMark_NegativeMarking()
aData.aRightEnvelope.push_back( ScRange( 26, 13, 0, 26, 20, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 0, 4, 0, 16, 4, 0 ) );
- aData.aTopEnvelope.push_back( ScRange( 21, 4, 0, MAXCOL, 4, 0 ) );
+ aData.aTopEnvelope.push_back( ScRange( 21, 4, 0, limits.MaxCol(), 4, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 10, 7, 0, 25, 7, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 0, 11, 0, 9, 11, 0 ) );
- aData.aTopEnvelope.push_back( ScRange( 26, 11, 0, MAXCOL, 11, 0 ) );
+ aData.aTopEnvelope.push_back( ScRange( 26, 11, 0, limits.MaxCol(), 11, 0 ) );
aData.aTopEnvelope.push_back( ScRange( 15, 14, 0, 18, 14, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 0, 6, 0, 16, 6, 0 ) );
- aData.aBottomEnvelope.push_back( ScRange( 21, 6, 0, MAXCOL, 6, 0 ) );
+ aData.aBottomEnvelope.push_back( ScRange( 21, 6, 0, limits.MaxCol(), 6, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 15, 10, 0, 18, 10, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 0, 13, 0, 9, 13, 0 ) );
- aData.aBottomEnvelope.push_back( ScRange( 26, 13, 0, MAXCOL, 13, 0 ) );
+ aData.aBottomEnvelope.push_back( ScRange( 26, 13, 0, limits.MaxCol(), 13, 0 ) );
aData.aBottomEnvelope.push_back( ScRange( 10, 21, 0, 25, 21, 0 ) );
aData.aColsWithOneMark.emplace_back( 19, 8, 0, 0, 20, 0 );
@@ -834,8 +844,7 @@ void Test::testMultiMark_NegativeMarking()
void Test::testInsertTabBeforeSelected()
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData aMark(aSheetLimits);
+ ScMarkData aMark(ScSheetLimits::CreateDefault());
aMark.SelectOneTable(0);
aMark.InsertTab(0);
CPPUNIT_ASSERT_EQUAL(SCTAB(1), aMark.GetSelectCount());
@@ -844,8 +853,7 @@ void Test::testInsertTabBeforeSelected()
void Test::testInsertTabAfterSelected()
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData aMark(aSheetLimits);
+ ScMarkData aMark(ScSheetLimits::CreateDefault());
aMark.SelectOneTable(0);
aMark.InsertTab(1);
CPPUNIT_ASSERT_EQUAL(SCTAB(1), aMark.GetSelectCount());
@@ -854,8 +862,7 @@ void Test::testInsertTabAfterSelected()
void Test::testDeleteTabBeforeSelected()
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData aMark(aSheetLimits);
+ ScMarkData aMark(ScSheetLimits::CreateDefault());
aMark.SelectOneTable(1);
aMark.DeleteTab(0);
CPPUNIT_ASSERT_EQUAL(SCTAB(1), aMark.GetSelectCount());
@@ -864,8 +871,7 @@ void Test::testDeleteTabBeforeSelected()
void Test::testDeleteTabAfterSelected()
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData aMark(aSheetLimits);
+ ScMarkData aMark(ScSheetLimits::CreateDefault());
aMark.SelectOneTable(0);
aMark.DeleteTab(1);
CPPUNIT_ASSERT_EQUAL(SCTAB(1), aMark.GetSelectCount());
@@ -882,17 +888,17 @@ void Test::testScMarkArraySearch_check(const ScMarkArray & ar, SCROW nRow, bool
void Test::testScMarkArraySearch()
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
// empty
{
- ScMarkArray ar(aSheetLimits);
+ ScMarkArray ar(limits);
testScMarkArraySearch_check(ar, -1, true, 0);
testScMarkArraySearch_check(ar, 100, true, 0);
}
// one range
{
- ScMarkArray ar(aSheetLimits);
+ ScMarkArray ar(limits);
ar.SetMarkArea(10, 20, true);
// 0-9,10-20,21+
@@ -913,7 +919,7 @@ void Test::testScMarkArraySearch()
// three ranges
{
- ScMarkArray ar(aSheetLimits);
+ ScMarkArray ar(limits);
ar.SetMarkArea(10, 20, true);
ar.SetMarkArea(21, 30, true);
ar.SetMarkArea(50, 100, true);
@@ -934,7 +940,7 @@ void Test::testScMarkArraySearch()
// three single-row ranges
{
- ScMarkArray ar(aSheetLimits);
+ ScMarkArray ar(limits);
ar.SetMarkArea(4, 4, true);
ar.SetMarkArea(6, 6, true);
ar.SetMarkArea(8, 8, true);
@@ -954,8 +960,8 @@ void Test::testScMarkArraySearch()
// one range
{
- ScMarkArray ar(aSheetLimits);
- ar.SetMarkArea(10, MAXROW, true);
+ ScMarkArray ar(limits);
+ ar.SetMarkArea(10, limits.MaxRow(), true);
// 0-10,11+
@@ -969,14 +975,14 @@ void Test::testScMarkArraySearch()
testScMarkArraySearch_check(ar, 11, true, 1);
testScMarkArraySearch_check(ar, 12, true, 1);
testScMarkArraySearch_check(ar, 200, true, 1);
- testScMarkArraySearch_check(ar, MAXROW, true, 1);
+ testScMarkArraySearch_check(ar, limits.MaxRow(), true, 1);
}
}
void Test::testIsAllMarked()
{
- ScSheetLimits aSheetLimits(MAXCOL, MAXROW);
- ScMarkData mark(aSheetLimits);
+ ScSheetLimits limits( ScSheetLimits::CreateDefault());
+ ScMarkData mark(limits);
ScRange range1( ScAddress( 5, 10, 0 ), ScAddress( 15, 20, 0 ));
ScRange range2( ScAddress( 2, 2, 0 ), ScAddress( 25, 30, 0 ));
CPPUNIT_ASSERT( !mark.IsAllMarked( range1 ));
diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx
index b6a3e3c2d830..040c8835aac1 100644
--- a/sc/qa/unit/rangelst_test.cxx
+++ b/sc/qa/unit/rangelst_test.cxx
@@ -254,7 +254,7 @@ void Test::testDeleteArea_2Ranges()
void Test::testDeleteArea_2Ranges_Case2()
{
ScRangeList aList(ScRange(1,1,0,1,5,0));
- aList.DeleteArea(0,3,0,MAXCOL,3,0);
+ aList.DeleteArea(0,3,0,ScSheetLimits::CreateDefault().MaxCol(),3,0);
for(SCROW nRow = 1; nRow <= 5; ++nRow)
{
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 1d02913dab9c..980fd23d783d 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -6671,7 +6671,7 @@ void Test::testInsertColumnsWithFormulaCells()
CPPUNIT_ASSERT_MESSAGE("Columns 2, 4 and 6 should contain formula cells.", equals(aExpected, aCols));
// Insert 2 columns at column A to shift everything to right by 2.
- m_pDoc->InsertCol(0, 0, MAXROW, 0, 0, 2);
+ m_pDoc->InsertCol(0, 0, m_pDoc->MaxRow(), 0, 0, 2);
aExpected = { 4, 6, 8 };
aCols = m_pDoc->QueryColumnsWithFormulaCells(0);
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index a1790bb930c9..9b26d2cbc4b0 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -810,7 +810,7 @@ void TestFormula::testFormulaParseReference()
// Both columns at sheet bounds and relative => convert to absolute => entire row reference.
aRange.aStart.SetTab(0);
- nRes = aRange.Parse(m_pDoc->MaxCol() == MAXCOL ? "A2:AMJ2" : "A2:XFD2", *m_pDoc, formula::FormulaGrammar::CONV_OOO);
+ nRes = aRange.Parse("A2:" + m_pDoc->MaxColAsString() + "2", *m_pDoc, formula::FormulaGrammar::CONV_OOO);
CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & ScRefFlags::VALID));
CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(0), aRange.aStart.Tab());
CPPUNIT_ASSERT_EQUAL(static_cast<SCCOL>(0), aRange.aStart.Col());
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 34e137dd576e..8cb7b1726376 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -94,15 +94,19 @@ using namespace com::sun::star;
const sal_uInt16 ScDocument::nSrcVer = SC_CURRENT_VERSION;
-static ScSheetLimits* CreateSheetLimits()
+ScSheetLimits ScSheetLimits::CreateDefault()
{
#if HAVE_FEATURE_JUMBO_SHEETS
- const ScDefaultsOptions& rOpt = SC_MOD()->GetDefaultsOptions();
- if (rOpt.GetInitJumboSheets())
- return new ScSheetLimits(MAXCOL_JUMBO, MAXROW_JUMBO);
+ bool jumboSheets = false;
+ if( SC_MOD())
+ jumboSheets = SC_MOD()->GetDefaultsOptions().GetInitJumboSheets();
+ else
+ assert( getenv("LO_TESTNAME") != nullptr ); // in unittests
+ if (jumboSheets)
+ return ScSheetLimits(MAXCOL_JUMBO, MAXROW_JUMBO);
else
#endif
- return new ScSheetLimits(MAXCOL, MAXROW);
+ return ScSheetLimits(MAXCOL, MAXROW);
}
ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) :
@@ -115,7 +119,7 @@ ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) :
mpPrinter( nullptr ),
mpVirtualDevice_100th_mm( nullptr ),
pFormatExchangeList( nullptr ),
- mxSheetLimits(CreateSheetLimits()),
+ mxSheetLimits(new ScSheetLimits(ScSheetLimits::CreateDefault())),
pFormulaTree( nullptr ),
pEOFormulaTree( nullptr ),
pFormulaTrack( nullptr ),