summaryrefslogtreecommitdiffstats
path: root/sc/qa/unit/ucalc.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/qa/unit/ucalc.hxx')
-rw-r--r--sc/qa/unit/ucalc.hxx887
1 files changed, 887 insertions, 0 deletions
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
new file mode 100644
index 000000000..2f2b8bc55
--- /dev/null
+++ b/sc/qa/unit/ucalc.hxx
@@ -0,0 +1,887 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_SC_QA_UNIT_UCALC_HXX
+#define INCLUDED_SC_QA_UNIT_UCALC_HXX
+
+#include <test/bootstrapfixture.hxx>
+#include <docsh.hxx>
+#include <document.hxx>
+#include <stringutil.hxx>
+#include <memory>
+
+struct TestImpl;
+class ScUndoPaste;
+class ScUndoCut;
+
+/**
+ * Temporarily set formula grammar.
+ */
+class FormulaGrammarSwitch
+{
+ ScDocument* mpDoc;
+ formula::FormulaGrammar::Grammar meOldGrammar;
+
+public:
+ FormulaGrammarSwitch(ScDocument* pDoc, formula::FormulaGrammar::Grammar eGrammar);
+ ~FormulaGrammarSwitch();
+};
+
+class Test : public test::BootstrapFixture
+{
+public:
+ struct RangeNameDef
+ {
+ const char* mpName;
+ const char* mpExpr;
+ sal_uInt16 mnIndex;
+ };
+
+ static ScDocShell* findLoadedDocShellByName(const OUString& rName);
+ static bool insertRangeNames(ScDocument* pDoc, ScRangeName* pNames, const RangeNameDef* p,
+ const RangeNameDef* pEnd);
+ static void printRange(ScDocument* pDoc, const ScRange& rRange, const char* pCaption);
+ static void clearRange(ScDocument* pDoc, const ScRange& rRange);
+ static void clearSheet(ScDocument* pDoc, SCTAB nTab);
+ static ScUndoCut* cutToClip(ScDocShell& rDocSh, const ScRange& rRange, ScDocument* pClipDoc,
+ bool bCreateUndo);
+ static void copyToClip(ScDocument* pSrcDoc, const ScRange& rRange, ScDocument* pClipDoc);
+ static void pasteFromClip(ScDocument* pDestDoc, const ScRange& rDestRange,
+ ScDocument* pClipDoc);
+ static void pasteOneCellFromClip(ScDocument* pDestDoc, const ScRange& rDestRange,
+ ScDocument* pClipDoc,
+ InsertDeleteFlags eFlags = InsertDeleteFlags::ALL);
+ static ScUndoPaste* createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange,
+ ScDocumentUniquePtr pUndoDoc);
+
+ /**
+ * Enable or disable expand reference options which controls how
+ * references in formula are expanded when inserting rows or columns.
+ */
+ static void setExpandRefs(bool bExpand);
+
+ static void setCalcAsShown(ScDocument* pDoc, bool bCalcAsShown);
+
+ void checkPrecisionAsShown(OUString& rCode, double fValue, double fExpectedRoundVal);
+
+ 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;
+
+ ScDocShell& getDocShell();
+
+ /** Get a separate new ScDocShell with ScDocument that suits unit test needs. */
+ void getNewDocShell(ScDocShellRef& rDocShellRef);
+ /** Close such new ScDocShell. */
+ void closeDocShell(ScDocShellRef& rDocShellRef);
+
+ virtual void setUp() override;
+ virtual void tearDown() override;
+
+ void testCollator();
+ void testSharedStringPool();
+ void testSharedStringPoolUndoDoc();
+ void testRangeList();
+ void testMarkData();
+ void testInput();
+ void testColumnIterator();
+ void testDocStatistics();
+ void testRowForHeight();
+
+ /**
+ * The 'data entries' data is a list of strings used for suggestions as
+ * the user types in new cell value.
+ */
+ void testDataEntries();
+
+ /**
+ * Selection function is responsible for displaying quick calculation
+ * results in the status bar.
+ */
+ void testSelectionFunction();
+
+ void testMarkedCellIteration();
+
+ void testFormulaCreateStringFromTokens();
+ void testFormulaParseReference();
+ void testFetchVectorRefArray();
+ void testGroupConverter3D();
+ void testFormulaHashAndTag();
+ void testFormulaTokenEquality();
+ void testFormulaRefData();
+ void testFormulaCompiler();
+ void testFormulaCompilerJumpReordering();
+ void testFormulaCompilerImplicitIntersection2Param();
+ void testFormulaCompilerImplicitIntersection1ParamNoChange();
+ void testFormulaCompilerImplicitIntersection1ParamWithChange();
+ void testFormulaCompilerImplicitIntersection1NoGroup();
+ void testFormulaCompilerImplicitIntersectionOperators();
+ void testFormulaRefUpdate();
+ void testFormulaRefUpdateRange();
+ void testFormulaRefUpdateSheets();
+ void testFormulaRefUpdateSheetsDelete();
+ void testFormulaRefUpdateInsertRows();
+ void testFormulaRefUpdateInsertColumns();
+ void testFormulaRefUpdateMove();
+ void testFormulaRefUpdateMoveUndo();
+ void testFormulaRefUpdateMoveUndo2();
+ void testFormulaRefUpdateMoveUndo3NonShared();
+ void testFormulaRefUpdateMoveUndo3Shared();
+ void testFormulaRefUpdateMoveUndoDependents();
+ void testFormulaRefUpdateMoveUndo4();
+ void testFormulaRefUpdateMoveToSheet();
+ void testFormulaRefUpdateDeleteContent();
+ void testFormulaRefUpdateDeleteAndShiftLeft();
+ void testFormulaRefUpdateDeleteAndShiftLeft2();
+ void testFormulaRefUpdateDeleteAndShiftUp();
+ void testFormulaRefUpdateName();
+ void testFormulaRefUpdateNameMove();
+ void testFormulaRefUpdateNameExpandRef();
+ void testFormulaRefUpdateNameExpandRef2();
+ void testFormulaRefUpdateNameDeleteRow();
+ void testFormulaRefUpdateNameCopySheet();
+ void testFormulaRefUpdateNameCopySheetCheckTab(SCTAB Tab, bool bCheckNames);
+ void testFormulaRefUpdateSheetLocalMove();
+ void testFormulaRefUpdateNameDelete();
+ void testFormulaRefUpdateValidity();
+ void testTokenArrayRefUpdateMove();
+ void testSingleCellCopyColumnLabel();
+ void testIntersectionOpExcel();
+ void testMultipleOperations();
+ void testFuncCOLUMN();
+ void testFuncCOUNT();
+ void testFuncCOUNTBLANK();
+ void testFuncROW();
+ void testFuncSUM();
+ void testFuncPRODUCT();
+ void testFuncSUMPRODUCT();
+ void testFuncSUMXMY2();
+ void testFuncMIN();
+ void testFuncN();
+ void testFuncCOUNTIF();
+ void testFuncNUMBERVALUE();
+ void testFuncLEN();
+ void testFuncLOOKUP();
+ void testFuncLOOKUParrayWithError();
+ void testFuncVLOOKUP();
+ void testFuncMATCH();
+ void testFuncCELL();
+ void testFuncDATEDIF();
+ void testFuncINDIRECT();
+ void testFuncINDIRECT2();
+ void testFunc_MATCH_INDIRECT();
+ void testFuncIF();
+ void testFuncCHOOSE();
+ void testFuncIFERROR();
+ void testFuncSHEET();
+ void testFuncNOW();
+ void testFuncGETPIVOTDATA();
+ void testFuncGETPIVOTDATALeafAccess();
+ void testMatrixOp();
+ void testFuncRangeOp();
+ void testFuncFORMULA();
+ void testFuncTableRef();
+ void testFuncFTEST();
+ void testFuncFTESTBug();
+ void testFuncCHITEST();
+ void testFuncTTEST();
+ void testFuncSUMX2PY2();
+ void testFuncSUMX2MY2();
+ void testFuncGCD();
+ void testFuncLCM();
+ void testFuncSUMSQ();
+ void testFuncMDETERM();
+ void testFuncSUMIFS();
+ void testFuncRefListArraySUBTOTAL();
+ void testFuncJumpMatrixArrayIF();
+ void testFuncJumpMatrixArrayOFFSET();
+ void testMatConcat();
+ void testMatConcatReplication();
+ void testRefR1C1WholeCol();
+ void testRefR1C1WholeRow();
+ void testIterations();
+
+ void testExternalRef();
+ void testExternalRefFunctions();
+ void testExternalRangeName();
+ void testExternalRefUnresolved();
+
+ void testCopyToDocument();
+
+ void testHorizontalIterator();
+ void testValueIterator();
+ void testHorizontalAttrIterator();
+
+ /**
+ * Basic test for formula dependency tracking.
+ */
+ void testFormulaDepTracking();
+
+ /**
+ * Another test for formula dependency tracking, inspired by fdo#56278.
+ */
+ void testFormulaDepTracking2();
+
+ void testFormulaDepTracking3();
+
+ void testFormulaDepTrackingDeleteRow();
+
+ void testFormulaDepTrackingDeleteCol();
+
+ void testFormulaMatrixResultUpdate();
+
+ /**
+ * More direct test for cell broadcaster management, used to track formula
+ * dependencies.
+ */
+ void testCellBroadcaster();
+
+ void testFuncParam();
+ void testNamedRange();
+ void testInsertNameList();
+ void testCSV();
+ void testMatrix();
+ void testMatrixComparisonWithErrors();
+ void testMatrixConditionalBooleanResult();
+ void testEnterMixedMatrix();
+ void testMatrixEditable();
+
+ /**
+ * Basic test for pivot tables.
+ */
+ void testPivotTable();
+
+ /**
+ * Test against unwanted automatic format detection on field names and
+ * field members in pivot tables.
+ */
+ void testPivotTableLabels();
+
+ /**
+ * Make sure that we set cells displaying date values numeric cells,
+ * rather than text cells. Grouping by date or number functionality
+ * depends on this.
+ */
+ void testPivotTableDateLabels();
+
+ /**
+ * Test for pivot table's filtering functionality by page fields.
+ */
+ void testPivotTableFilters();
+
+ /**
+ * Test for pivot table's named source range.
+ */
+ void testPivotTableNamedSource();
+
+ /**
+ * Test for pivot table cache. Each dimension in the pivot cache stores
+ * only unique values that are sorted in ascending order.
+ */
+ void testPivotTableCache();
+
+ /**
+ * Test for pivot table containing data fields that reference the same
+ * source field but different functions.
+ */
+ void testPivotTableDuplicateDataFields();
+
+ void testPivotTableNormalGrouping();
+ void testPivotTableNumberGrouping();
+ void testPivotTableDateGrouping();
+ void testPivotTableEmptyRows();
+ void testPivotTableTextNumber();
+
+ /**
+ * Test for checking that pivot table treats strings in a case insensitive
+ * manner.
+ */
+ void testPivotTableCaseInsensitiveStrings();
+
+ /**
+ * Test for pivot table's handling of double-precision numbers that are
+ * very close together.
+ */
+ void testPivotTableNumStability();
+
+ /**
+ * Test for pivot table that include field with various non-default field
+ * references.
+ */
+ void testPivotTableFieldReference();
+
+ /**
+ * Test pivot table functionality performed via ScDBDocFunc.
+ */
+ void testPivotTableDocFunc();
+
+ /**
+ * Test pivot table per-field repeat item labels functionality
+ */
+ void testPivotTableRepeatItemLabels();
+
+ /**
+ * Test DPCollection public methods
+ */
+ void testPivotTableDPCollection();
+
+ /**
+ * Test pivot table median function
+ */
+ void testPivotTableMedianFunc();
+
+ void testCellCopy();
+ void testSheetCopy();
+ void testSheetMove();
+ void testDataArea();
+ void testAutofilter();
+ void testAutoFilterTimeValue();
+ void testAdvancedFilter();
+ void testCopyPaste();
+ void testCopyPasteAsLink();
+ void testCopyPasteTranspose();
+ void testCopyPasteMultiRange();
+ void testCopyPasteSkipEmpty();
+ void testCopyPasteSkipEmpty2();
+ void testCopyPasteSkipEmptyConditionalFormatting();
+ void testCutPasteRefUndo();
+ void testCutPasteGroupRefUndo();
+ void testMoveRefBetweenSheets();
+ void testUndoCut();
+ void testMoveBlock();
+ void testCopyPasteRelativeFormula();
+ void testCopyPasteRepeatOneFormula();
+ void testCopyPasteMixedReferenceFormula();
+ void testMergedCells();
+ void testUpdateReference();
+ void testSearchCells();
+ void testSharedFormulas();
+ void testSharedFormulasRefUpdate();
+ void testSharedFormulasRefUpdateMove();
+ void testSharedFormulasRefUpdateMove2();
+ void testSharedFormulasRefUpdateRange();
+ void testSharedFormulasRefUpdateRangeDeleteRow();
+ void testSharedFormulasRefUpdateExternal();
+ void testSharedFormulasInsertRow();
+ void testSharedFormulasDeleteRows();
+ void testSharedFormulasDeleteColumns();
+ void testSharedFormulasRefUpdateMoveSheets();
+ void testSharedFormulasRefUpdateCopySheets();
+ void testSharedFormulasRefUpdateDeleteSheets();
+ void testSharedFormulasCopyPaste();
+ void testSharedFormulaInsertColumn();
+ void testSharedFormulaMoveBlock();
+ void testSharedFormulaUpdateOnNamedRangeChange();
+ void testSharedFormulaUpdateOnDBChange();
+ void testSharedFormulaAbsCellListener();
+ void testSharedFormulaUnshareAreaListeners();
+ void testSharedFormulaListenerDeleteArea();
+ void testSharedFormulaUpdateOnReplacement();
+ void testSharedFormulaDeleteTopCell();
+ void testSharedFormulaCutCopyMoveIntoRef();
+ void testSharedFormulaCutCopyMoveWithRef();
+ void testSharedFormulaCutCopyMoveWithinRun();
+ void testSharedFormulaInsertShift();
+ void testFormulaPosition();
+ void testFormulaWizardSubformula();
+
+ void testMixData();
+
+ /**
+ * Make sure the sheet streams are invalidated properly.
+ */
+ void testStreamValid();
+
+ /**
+ * Test built-in cell functions to make sure their categories and order
+ * are correct.
+ */
+ void testFunctionLists();
+
+ void testGraphicsInGroup();
+ void testGraphicsOnSheetMove();
+
+ /**
+ * Test toggling relative/absolute flag of cell and cell range references.
+ * This corresponds with hitting Shift-F4 while the cursor is on a formula
+ * cell.
+ */
+ void testToggleRefFlag();
+
+ /**
+ * Test to make sure correct precedent / dependent cells are obtained when
+ * preparing to jump to them.
+ */
+ void testJumpToPrecedentsDependents();
+
+ void testSetBackgroundColor();
+ void testRenameTable();
+
+ void testAutoFill();
+ void testAutoFillSimple();
+ void testCopyPasteFormulas();
+ void testCopyPasteFormulasExternalDoc();
+ void testCopyPasteReferencesExternalDoc(); // tdf#106456
+
+ void testFindAreaPosVertical();
+ void testFindAreaPosColRight();
+ void testShiftCells();
+
+ void testSort();
+ void testSortHorizontal();
+ void testSortHorizontalWholeColumn();
+ void testSortSingleRow();
+ void testSortWithFormulaRefs();
+ void testSortWithStrings();
+ void testSortInFormulaGroup();
+ void testSortWithCellFormats();
+ void testSortRefUpdate();
+ void testSortRefUpdate2();
+ void testSortRefUpdate3();
+ void testSortRefUpdate4();
+ void testSortRefUpdate4_Impl();
+ void testSortRefUpdate5();
+ void testSortRefUpdate6();
+ void testSortBroadcaster();
+ void testSortBroadcastBroadcaster();
+ void testSortOutOfPlaceResult();
+ void testSortPartialFormulaGroup();
+ void testSortImages();
+
+ void testNoteBasic();
+ void testNoteDeleteRow();
+ void testNoteDeleteCol();
+ void testNoteLifeCycle();
+ void testNoteCopyPaste();
+ void testNoteContainsNotesInRange();
+ void testAreasWithNotes();
+ void testAnchoredRotatedShape();
+ void testCellTextWidth();
+ void testEditTextIterator();
+
+ // conditional format tests
+ // mostly in ucalc_condformat.cxx
+ void testCondFormatINSDEL();
+ void testCondFormatInsertRow();
+ void testCondFormatInsertCol();
+ void testCondFormatInsertDeleteSheets();
+ void testCondCopyPaste();
+ void testCondCopyPasteSingleCell(); //e.g. fdo#82503
+ void testCondCopyPasteSingleCellToRange(); //e.g. fdo#82503
+ void testCondCopyPasteSingleCellIntoSameFormatRange(); // e.g., tdf#95295
+ void testCondCopyPasteSingleRowToRange(); //e.g. tdf#106242
+ void testCondCopyPasteSingleRowToRange2();
+ void testCondCopyPasteSheetBetweenDoc();
+ void testCondCopyPasteSheet();
+ void testIconSet();
+ void testDataBarLengthAutomaticAxis();
+ void testDataBarLengthMiddleAxis();
+
+ // Tests for the ScFormulaListener class
+ void testFormulaListenerSingleCellToSingleCell();
+ void testFormulaListenerMultipleCellsToSingleCell();
+ void testFormulaListenerSingleCellToMultipleCells();
+ void testFormulaListenerMultipleCellsToMultipleCells();
+ void testFormulaListenerUpdateInsertTab();
+ void testFormulaListenerUpdateDeleteTab();
+
+ // Check that the Listeners are correctly updated when we
+ // call an operation
+ void testCondFormatUpdateMoveTab();
+ void testCondFormatUpdateDeleteTab();
+ void testCondFormatUpdateInsertTab();
+ void testCondFormatUpdateReference();
+ void testCondFormatUpdateReferenceDelRow();
+ void testCondFormatUpdateReferenceInsRow();
+
+ void testCondFormatEndsWithStr();
+ void testCondFormatEndsWithVal();
+
+ void testCondFormatUndoList();
+ void testMultipleSingleCellCondFormatCopyPaste();
+ void testDeduplicateMultipleCondFormats();
+ void testCondFormatListenToOwnRange();
+ void testCondFormatVolatileFunctionRecalc();
+
+ void testImportStream();
+ void testDeleteContents();
+ void testTransliterateText();
+
+ void testFormulaToValue();
+ void testFormulaToValue2();
+
+ void testColumnFindEditCells();
+ void testSetStringAndNote();
+
+ // tdf#80137
+ void testCopyPasteMatrixFormula();
+ void testUndoDataAnchor();
+ void testFormulaErrorPropagation();
+ void testSetFormula();
+ void testMultipleDataCellsInRange();
+
+ void testTdf97369();
+ void testTdf97587();
+
+ void testEmptyCalcDocDefaults();
+
+ void testPrecisionAsShown();
+ void testProtectedSheetEditByRow();
+ void testProtectedSheetEditByColumn();
+ void testFuncRowsHidden();
+ void testInsertColCellStoreEventSwap();
+ void testFormulaAfterDeleteRows();
+
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(testCollator);
+ CPPUNIT_TEST(testSharedStringPool);
+ CPPUNIT_TEST(testSharedStringPoolUndoDoc);
+ CPPUNIT_TEST(testRangeList);
+ CPPUNIT_TEST(testMarkData);
+ CPPUNIT_TEST(testInput);
+ CPPUNIT_TEST(testColumnIterator);
+ CPPUNIT_TEST(testDocStatistics);
+ CPPUNIT_TEST(testRowForHeight);
+ CPPUNIT_TEST(testDataEntries);
+ CPPUNIT_TEST(testSelectionFunction);
+ CPPUNIT_TEST(testMarkedCellIteration);
+ CPPUNIT_TEST(testFormulaCreateStringFromTokens);
+ CPPUNIT_TEST(testFormulaParseReference);
+ CPPUNIT_TEST(testFetchVectorRefArray);
+ CPPUNIT_TEST(testGroupConverter3D);
+ // CPPUNIT_TEST(testFormulaHashAndTag);
+ CPPUNIT_TEST(testFormulaTokenEquality);
+ CPPUNIT_TEST(testFormulaRefData);
+ CPPUNIT_TEST(testFormulaCompiler);
+ CPPUNIT_TEST(testFormulaCompilerJumpReordering);
+ CPPUNIT_TEST(testFormulaCompilerImplicitIntersection2Param);
+ CPPUNIT_TEST(testFormulaCompilerImplicitIntersection1ParamNoChange);
+ CPPUNIT_TEST(testFormulaCompilerImplicitIntersection1ParamWithChange);
+ CPPUNIT_TEST(testFormulaCompilerImplicitIntersection1NoGroup);
+ CPPUNIT_TEST(testFormulaCompilerImplicitIntersectionOperators);
+ CPPUNIT_TEST(testFormulaRefUpdate);
+ CPPUNIT_TEST(testFormulaRefUpdateRange);
+ CPPUNIT_TEST(testFormulaRefUpdateSheets);
+ CPPUNIT_TEST(testFormulaRefUpdateSheetsDelete);
+ CPPUNIT_TEST(testFormulaRefUpdateInsertRows);
+ CPPUNIT_TEST(testFormulaRefUpdateInsertColumns);
+ CPPUNIT_TEST(testFormulaRefUpdateMove);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveUndo);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveUndo2);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveUndo3NonShared);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveUndo3Shared);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveUndoDependents);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveUndo4);
+ CPPUNIT_TEST(testFormulaRefUpdateMoveToSheet);
+ CPPUNIT_TEST(testFormulaRefUpdateDeleteContent);
+ CPPUNIT_TEST(testFormulaRefUpdateDeleteAndShiftLeft);
+ CPPUNIT_TEST(testFormulaRefUpdateDeleteAndShiftLeft2);
+ CPPUNIT_TEST(testFormulaRefUpdateDeleteAndShiftUp);
+ CPPUNIT_TEST(testFormulaRefUpdateName);
+ CPPUNIT_TEST(testFormulaRefUpdateNameMove);
+ CPPUNIT_TEST(testFormulaRefUpdateNameExpandRef);
+ CPPUNIT_TEST(testFormulaRefUpdateNameExpandRef2);
+ CPPUNIT_TEST(testFormulaRefUpdateNameDeleteRow);
+ CPPUNIT_TEST(testFormulaRefUpdateNameCopySheet);
+ CPPUNIT_TEST(testFormulaRefUpdateSheetLocalMove);
+ CPPUNIT_TEST(testFormulaRefUpdateNameDelete);
+ CPPUNIT_TEST(testFormulaRefUpdateValidity);
+ CPPUNIT_TEST(testTokenArrayRefUpdateMove);
+ CPPUNIT_TEST(testIntersectionOpExcel);
+ CPPUNIT_TEST(testMultipleOperations);
+ CPPUNIT_TEST(testFuncCOLUMN);
+ CPPUNIT_TEST(testFuncCOUNT);
+ CPPUNIT_TEST(testFuncCOUNTBLANK);
+ CPPUNIT_TEST(testFuncROW);
+ CPPUNIT_TEST(testFuncSUM);
+ CPPUNIT_TEST(testFuncPRODUCT);
+ CPPUNIT_TEST(testFuncSUMPRODUCT);
+ CPPUNIT_TEST(testFuncSUMXMY2);
+ CPPUNIT_TEST(testFuncMIN);
+ CPPUNIT_TEST(testFuncN);
+ CPPUNIT_TEST(testFuncCOUNTIF);
+ CPPUNIT_TEST(testFuncNUMBERVALUE);
+ CPPUNIT_TEST(testFuncLEN);
+ CPPUNIT_TEST(testFuncLOOKUP);
+ CPPUNIT_TEST(testFuncLOOKUParrayWithError);
+ CPPUNIT_TEST(testFuncVLOOKUP);
+ CPPUNIT_TEST(testFuncMATCH);
+ CPPUNIT_TEST(testFuncCELL);
+ CPPUNIT_TEST(testFuncDATEDIF);
+ CPPUNIT_TEST(testFuncINDIRECT);
+ CPPUNIT_TEST(testFuncINDIRECT2);
+ CPPUNIT_TEST(testFunc_MATCH_INDIRECT);
+ CPPUNIT_TEST(testFuncIF);
+ CPPUNIT_TEST(testFuncCHOOSE);
+ CPPUNIT_TEST(testFuncIFERROR);
+ CPPUNIT_TEST(testFuncGETPIVOTDATA);
+ CPPUNIT_TEST(testFuncGETPIVOTDATALeafAccess);
+ CPPUNIT_TEST(testRefR1C1WholeCol);
+ CPPUNIT_TEST(testRefR1C1WholeRow);
+ CPPUNIT_TEST(testIterations);
+ CPPUNIT_TEST(testMatrixOp);
+ CPPUNIT_TEST(testFuncRangeOp);
+ CPPUNIT_TEST(testFuncFORMULA);
+ CPPUNIT_TEST(testFuncTableRef);
+ CPPUNIT_TEST(testFuncFTEST);
+ CPPUNIT_TEST(testFuncFTESTBug);
+ CPPUNIT_TEST(testFuncCHITEST);
+ CPPUNIT_TEST(testFuncTTEST);
+ CPPUNIT_TEST(testFuncSUMX2PY2);
+ CPPUNIT_TEST(testFuncSUMX2MY2);
+ CPPUNIT_TEST(testFuncGCD);
+ CPPUNIT_TEST(testFuncLCM);
+ CPPUNIT_TEST(testFuncSUMSQ);
+ CPPUNIT_TEST(testFuncMDETERM);
+ CPPUNIT_TEST(testFuncSUMIFS);
+ CPPUNIT_TEST(testFuncRefListArraySUBTOTAL);
+ CPPUNIT_TEST(testFuncJumpMatrixArrayIF);
+ CPPUNIT_TEST(testFuncJumpMatrixArrayOFFSET);
+ CPPUNIT_TEST(testMatConcat);
+ CPPUNIT_TEST(testMatConcatReplication);
+ CPPUNIT_TEST(testExternalRef);
+ CPPUNIT_TEST(testExternalRangeName);
+ CPPUNIT_TEST(testExternalRefFunctions);
+ // currently crashes windows
+ // CPPUNIT_TEST(testExternalRefUnresolved);
+ CPPUNIT_TEST(testCopyToDocument);
+ CPPUNIT_TEST(testFuncSHEET);
+ CPPUNIT_TEST(testFuncNOW);
+ CPPUNIT_TEST(testHorizontalIterator);
+ CPPUNIT_TEST(testValueIterator);
+ CPPUNIT_TEST(testHorizontalAttrIterator);
+ CPPUNIT_TEST(testFormulaDepTracking);
+ CPPUNIT_TEST(testFormulaDepTracking2);
+ CPPUNIT_TEST(testFormulaDepTracking3);
+ CPPUNIT_TEST(testFormulaDepTrackingDeleteRow);
+ CPPUNIT_TEST(testFormulaDepTrackingDeleteCol);
+ CPPUNIT_TEST(testFormulaMatrixResultUpdate);
+ CPPUNIT_TEST(testCellBroadcaster);
+ CPPUNIT_TEST(testFuncParam);
+ CPPUNIT_TEST(testNamedRange);
+ CPPUNIT_TEST(testInsertNameList);
+ CPPUNIT_TEST(testCSV);
+ CPPUNIT_TEST(testMatrix);
+ CPPUNIT_TEST(testMatrixComparisonWithErrors);
+ CPPUNIT_TEST(testMatrixConditionalBooleanResult);
+ CPPUNIT_TEST(testEnterMixedMatrix);
+ CPPUNIT_TEST(testMatrixEditable);
+ CPPUNIT_TEST(testPivotTable);
+ CPPUNIT_TEST(testPivotTableLabels);
+ CPPUNIT_TEST(testPivotTableDateLabels);
+ CPPUNIT_TEST(testPivotTableFilters);
+ CPPUNIT_TEST(testPivotTableNamedSource);
+ CPPUNIT_TEST(testPivotTableCache);
+ CPPUNIT_TEST(testPivotTableDuplicateDataFields);
+ CPPUNIT_TEST(testPivotTableNormalGrouping);
+ CPPUNIT_TEST(testPivotTableNumberGrouping);
+ CPPUNIT_TEST(testPivotTableDateGrouping);
+ CPPUNIT_TEST(testPivotTableEmptyRows);
+ CPPUNIT_TEST(testPivotTableTextNumber);
+ CPPUNIT_TEST(testPivotTableCaseInsensitiveStrings);
+ CPPUNIT_TEST(testPivotTableNumStability);
+ CPPUNIT_TEST(testPivotTableFieldReference);
+ CPPUNIT_TEST(testPivotTableDocFunc);
+ CPPUNIT_TEST(testPivotTableRepeatItemLabels);
+ CPPUNIT_TEST(testPivotTableDPCollection);
+ CPPUNIT_TEST(testPivotTableMedianFunc);
+ CPPUNIT_TEST(testCellCopy);
+ CPPUNIT_TEST(testSheetCopy);
+ CPPUNIT_TEST(testSheetMove);
+ CPPUNIT_TEST(testDataArea);
+ CPPUNIT_TEST(testGraphicsInGroup);
+ CPPUNIT_TEST(testGraphicsOnSheetMove);
+ CPPUNIT_TEST(testStreamValid);
+ CPPUNIT_TEST(testFunctionLists);
+ CPPUNIT_TEST(testToggleRefFlag);
+ CPPUNIT_TEST(testAutofilter);
+ CPPUNIT_TEST(testAutoFilterTimeValue);
+ CPPUNIT_TEST(testAdvancedFilter);
+ CPPUNIT_TEST(testCopyPaste);
+ CPPUNIT_TEST(testCopyPasteAsLink);
+ CPPUNIT_TEST(testCopyPasteTranspose);
+ CPPUNIT_TEST(testCopyPasteMultiRange);
+ CPPUNIT_TEST(testCopyPasteSkipEmpty);
+ CPPUNIT_TEST(testCopyPasteSkipEmpty2);
+ //CPPUNIT_TEST(testCopyPasteSkipEmptyConditionalFormatting);
+ CPPUNIT_TEST(testCutPasteRefUndo);
+ CPPUNIT_TEST(testCutPasteGroupRefUndo);
+ CPPUNIT_TEST(testMoveRefBetweenSheets);
+ CPPUNIT_TEST(testUndoCut);
+ CPPUNIT_TEST(testMoveBlock);
+ CPPUNIT_TEST(testCopyPasteRelativeFormula);
+ CPPUNIT_TEST(testCopyPasteRepeatOneFormula);
+ CPPUNIT_TEST(testCopyPasteMixedReferenceFormula);
+ CPPUNIT_TEST(testMergedCells);
+ CPPUNIT_TEST(testUpdateReference);
+ CPPUNIT_TEST(testSearchCells);
+ CPPUNIT_TEST(testSharedFormulas);
+ CPPUNIT_TEST(testSharedFormulasRefUpdate);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateMove);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateMove2);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateRange);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateRangeDeleteRow);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateExternal);
+ CPPUNIT_TEST(testSharedFormulasInsertRow);
+ CPPUNIT_TEST(testSharedFormulasDeleteRows);
+ CPPUNIT_TEST(testSharedFormulasDeleteColumns);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateMoveSheets);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateCopySheets);
+ CPPUNIT_TEST(testSharedFormulasRefUpdateDeleteSheets);
+ CPPUNIT_TEST(testSharedFormulasCopyPaste);
+ CPPUNIT_TEST(testSharedFormulaInsertColumn);
+ CPPUNIT_TEST(testSharedFormulaUpdateOnNamedRangeChange);
+ CPPUNIT_TEST(testSharedFormulaUpdateOnDBChange);
+ CPPUNIT_TEST(testSharedFormulaAbsCellListener);
+ CPPUNIT_TEST(testSharedFormulaUnshareAreaListeners);
+ CPPUNIT_TEST(testSharedFormulaListenerDeleteArea);
+ CPPUNIT_TEST(testSharedFormulaUpdateOnReplacement);
+ CPPUNIT_TEST(testSharedFormulaDeleteTopCell);
+ CPPUNIT_TEST(testSharedFormulaCutCopyMoveIntoRef);
+ CPPUNIT_TEST(testSharedFormulaCutCopyMoveWithRef);
+ CPPUNIT_TEST(testSharedFormulaCutCopyMoveWithinRun);
+ CPPUNIT_TEST(testSharedFormulaInsertShift);
+ CPPUNIT_TEST(testFormulaPosition);
+ CPPUNIT_TEST(testFormulaWizardSubformula);
+ CPPUNIT_TEST(testMixData);
+ CPPUNIT_TEST(testJumpToPrecedentsDependents);
+ CPPUNIT_TEST(testSetBackgroundColor);
+ CPPUNIT_TEST(testRenameTable);
+ CPPUNIT_TEST(testAutoFill);
+ CPPUNIT_TEST(testAutoFillSimple);
+ CPPUNIT_TEST(testCopyPasteFormulas);
+ CPPUNIT_TEST(testCopyPasteFormulasExternalDoc);
+ CPPUNIT_TEST(testCopyPasteReferencesExternalDoc);
+ CPPUNIT_TEST(testFindAreaPosVertical);
+ CPPUNIT_TEST(testFindAreaPosColRight);
+ CPPUNIT_TEST(testSort);
+ CPPUNIT_TEST(testSortHorizontal);
+ CPPUNIT_TEST(testSortHorizontalWholeColumn);
+ CPPUNIT_TEST(testSortSingleRow);
+ CPPUNIT_TEST(testSortWithFormulaRefs);
+ CPPUNIT_TEST(testSortWithStrings);
+ CPPUNIT_TEST(testSortInFormulaGroup);
+ CPPUNIT_TEST(testSortWithCellFormats);
+ CPPUNIT_TEST(testSortRefUpdate);
+ CPPUNIT_TEST(testSortRefUpdate2);
+ CPPUNIT_TEST(testSortRefUpdate3);
+ CPPUNIT_TEST(testSortRefUpdate4);
+ CPPUNIT_TEST(testSortRefUpdate5);
+ CPPUNIT_TEST(testSortRefUpdate6);
+ CPPUNIT_TEST(testSortBroadcaster);
+ CPPUNIT_TEST(testSortBroadcastBroadcaster);
+ CPPUNIT_TEST(testSortOutOfPlaceResult);
+ CPPUNIT_TEST(testSortPartialFormulaGroup);
+ CPPUNIT_TEST(testSortImages);
+ CPPUNIT_TEST(testShiftCells);
+ CPPUNIT_TEST(testNoteBasic);
+ CPPUNIT_TEST(testNoteDeleteRow);
+ CPPUNIT_TEST(testNoteDeleteCol);
+ CPPUNIT_TEST(testNoteLifeCycle);
+ CPPUNIT_TEST(testNoteCopyPaste);
+ CPPUNIT_TEST(testNoteContainsNotesInRange);
+ CPPUNIT_TEST(testAreasWithNotes);
+ CPPUNIT_TEST(testAnchoredRotatedShape);
+ CPPUNIT_TEST(testCellTextWidth);
+ CPPUNIT_TEST(testEditTextIterator);
+ CPPUNIT_TEST(testCondFormatINSDEL);
+ CPPUNIT_TEST(testCondFormatInsertRow);
+ CPPUNIT_TEST(testCondFormatInsertCol);
+ CPPUNIT_TEST(testCondFormatInsertDeleteSheets);
+ CPPUNIT_TEST(testCondCopyPaste);
+ CPPUNIT_TEST(testCondCopyPasteSingleCell);
+ CPPUNIT_TEST(testCondCopyPasteSingleCellToRange);
+ CPPUNIT_TEST(testCondCopyPasteSingleCellIntoSameFormatRange);
+ CPPUNIT_TEST(testCondCopyPasteSingleRowToRange);
+ CPPUNIT_TEST(testCondCopyPasteSingleRowToRange2);
+ CPPUNIT_TEST(testCondCopyPasteSheetBetweenDoc);
+ CPPUNIT_TEST(testCondCopyPasteSheet);
+ CPPUNIT_TEST(testCondFormatEndsWithStr);
+ CPPUNIT_TEST(testCondFormatEndsWithVal);
+ CPPUNIT_TEST(testCondFormatUpdateReferenceDelRow);
+ CPPUNIT_TEST(testCondFormatUpdateReferenceInsRow);
+ CPPUNIT_TEST(testCondFormatUndoList);
+ CPPUNIT_TEST(testMultipleSingleCellCondFormatCopyPaste);
+ CPPUNIT_TEST(testDeduplicateMultipleCondFormats);
+ CPPUNIT_TEST(testCondFormatVolatileFunctionRecalc);
+ CPPUNIT_TEST(testIconSet);
+ CPPUNIT_TEST(testDataBarLengthAutomaticAxis);
+ CPPUNIT_TEST(testDataBarLengthMiddleAxis);
+ CPPUNIT_TEST(testFormulaListenerSingleCellToSingleCell);
+ CPPUNIT_TEST(testFormulaListenerSingleCellToMultipleCells);
+ CPPUNIT_TEST(testFormulaListenerMultipleCellsToSingleCell);
+ CPPUNIT_TEST(testFormulaListenerMultipleCellsToMultipleCells);
+ CPPUNIT_TEST(testFormulaListenerUpdateInsertTab);
+ CPPUNIT_TEST(testFormulaListenerUpdateDeleteTab);
+ CPPUNIT_TEST(testImportStream);
+ CPPUNIT_TEST(testDeleteContents);
+ CPPUNIT_TEST(testTransliterateText);
+ CPPUNIT_TEST(testFormulaToValue);
+ CPPUNIT_TEST(testFormulaToValue2);
+ CPPUNIT_TEST(testColumnFindEditCells);
+ CPPUNIT_TEST(testSetStringAndNote);
+ CPPUNIT_TEST(testCopyPasteMatrixFormula);
+ CPPUNIT_TEST(testUndoDataAnchor);
+ CPPUNIT_TEST(testFormulaErrorPropagation);
+ CPPUNIT_TEST(testSetFormula);
+ CPPUNIT_TEST(testMultipleDataCellsInRange);
+ CPPUNIT_TEST(testTdf97369);
+ CPPUNIT_TEST(testTdf97587);
+ CPPUNIT_TEST(testEmptyCalcDocDefaults);
+ CPPUNIT_TEST(testPrecisionAsShown);
+ CPPUNIT_TEST(testProtectedSheetEditByRow);
+ CPPUNIT_TEST(testProtectedSheetEditByColumn);
+ CPPUNIT_TEST(testFuncRowsHidden);
+ CPPUNIT_TEST(testInsertColCellStoreEventSwap);
+ CPPUNIT_TEST(testFormulaAfterDeleteRows);
+ CPPUNIT_TEST_SUITE_END();
+
+private:
+ std::unique_ptr<TestImpl> m_pImpl;
+ ScDocument* m_pDoc;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */