Version 6.4.0.3, tag libreoffice-6.4.0.3
[LibreOffice.git] / sc / qa / unit / ucalc.hxx
blob777dc4a51389c161ec61fb259d28aa885b4a030a
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
10 #ifndef INCLUDED_SC_QA_UNIT_UCALC_HXX
11 #define INCLUDED_SC_QA_UNIT_UCALC_HXX
13 #include <test/bootstrapfixture.hxx>
14 #include <docsh.hxx>
15 #include <document.hxx>
16 #include <stringutil.hxx>
17 #include <memory>
19 struct TestImpl;
20 class ScUndoPaste;
21 class ScUndoCut;
23 /**
24 * Temporarily set formula grammar.
26 class FormulaGrammarSwitch
28 ScDocument* mpDoc;
29 formula::FormulaGrammar::Grammar const meOldGrammar;
30 public:
31 FormulaGrammarSwitch(ScDocument* pDoc, formula::FormulaGrammar::Grammar eGrammar);
32 ~FormulaGrammarSwitch();
35 class Test : public test::BootstrapFixture
37 public:
38 struct RangeNameDef
40 const char* mpName;
41 const char* mpExpr;
42 sal_uInt16 mnIndex;
45 static ScDocShell* findLoadedDocShellByName(const OUString& rName);
46 static bool insertRangeNames(ScDocument* pDoc, ScRangeName* pNames, const RangeNameDef* p, const RangeNameDef* pEnd);
47 static void printRange(ScDocument* pDoc, const ScRange& rRange, const char* pCaption);
48 static void clearRange(ScDocument* pDoc, const ScRange& rRange);
49 static void clearSheet(ScDocument* pDoc, SCTAB nTab);
50 static ScUndoCut* cutToClip(ScDocShell& rDocSh, const ScRange& rRange, ScDocument* pClipDoc, bool bCreateUndo);
51 static void copyToClip(ScDocument* pSrcDoc, const ScRange& rRange, ScDocument* pClipDoc);
52 static void pasteFromClip(ScDocument* pDestDoc, const ScRange& rDestRange, ScDocument* pClipDoc);
53 static void pasteOneCellFromClip(ScDocument* pDestDoc, const ScRange& rDestRange, ScDocument* pClipDoc, InsertDeleteFlags eFlags = InsertDeleteFlags::ALL);
54 static ScUndoPaste* createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange, ScDocumentUniquePtr pUndoDoc);
56 /**
57 * Enable or disable expand reference options which controls how
58 * references in formula are expanded when inserting rows or columns.
60 static void setExpandRefs(bool bExpand);
62 static void setCalcAsShown(ScDocument* pDoc, bool bCalcAsShown);
64 void checkPrecisionAsShown( OUString& rCode, double fValue, double fExpectedRoundVal );
66 static ScRange insertRangeData(
67 ScDocument* pDoc, const ScAddress& rPos, const std::vector<std::vector<const char*>>& rData );
69 template<size_t Size>
70 static ScRange insertRangeData(
71 ScDocument* pDoc, const ScAddress& rPos, const char* aData[][Size], size_t nRowCount )
73 ScRange aRange(rPos);
74 aRange.aEnd.SetCol(rPos.Col()+Size-1);
75 aRange.aEnd.SetRow(rPos.Row()+nRowCount-1);
77 clearRange(pDoc, aRange);
79 for (size_t i = 0; i < Size; ++i)
81 for (size_t j = 0; j < nRowCount; ++j)
83 if (!aData[j][i])
84 continue;
86 SCCOL nCol = i + rPos.Col();
87 SCROW nRow = j + rPos.Row();
88 OUString aStr(aData[j][i], strlen(aData[j][i]), RTL_TEXTENCODING_UTF8);
90 ScSetStringParam aParam; // Leave default.
91 aParam.meStartListening = sc::NoListening;
92 pDoc->SetString(nCol, nRow, rPos.Tab(), aStr, &aParam);
96 pDoc->StartAllListeners(aRange);
98 printRange(pDoc, aRange, "Range data content");
99 return aRange;
102 Test();
103 virtual ~Test() override;
105 ScDocShell& getDocShell();
107 /** Get a separate new ScDocShell with ScDocument that suits unit test needs. */
108 void getNewDocShell( ScDocShellRef& rDocShellRef );
109 /** Close such new ScDocShell. */
110 void closeDocShell( ScDocShellRef& rDocShellRef );
112 virtual void setUp() override;
113 virtual void tearDown() override;
115 void testCollator();
116 void testSharedStringPool();
117 void testSharedStringPoolUndoDoc();
118 void testRangeList();
119 void testMarkData();
120 void testInput();
121 void testColumnIterator();
122 void testDocStatistics();
123 void testRowForHeight();
126 * The 'data entries' data is a list of strings used for suggestions as
127 * the user types in new cell value.
129 void testDataEntries();
132 * Selection function is responsible for displaying quick calculation
133 * results in the status bar.
135 void testSelectionFunction();
137 void testMarkedCellIteration();
139 void testFormulaCreateStringFromTokens();
140 void testFormulaParseReference();
141 void testFetchVectorRefArray();
142 void testGroupConverter3D();
143 void testFormulaHashAndTag();
144 void testFormulaTokenEquality();
145 void testFormulaRefData();
146 void testFormulaCompiler();
147 void testFormulaCompilerJumpReordering();
148 void testFormulaCompilerImplicitIntersection2Param();
149 void testFormulaCompilerImplicitIntersection1ParamNoChange();
150 void testFormulaCompilerImplicitIntersection1ParamWithChange();
151 void testFormulaCompilerImplicitIntersection1NoGroup();
152 void testFormulaCompilerImplicitIntersectionOperators();
153 void testFormulaRefUpdate();
154 void testFormulaRefUpdateRange();
155 void testFormulaRefUpdateSheets();
156 void testFormulaRefUpdateSheetsDelete();
157 void testFormulaRefUpdateInsertRows();
158 void testFormulaRefUpdateInsertColumns();
159 void testFormulaRefUpdateMove();
160 void testFormulaRefUpdateMoveUndo();
161 void testFormulaRefUpdateMoveUndo2();
162 void testFormulaRefUpdateMoveUndo3NonShared();
163 void testFormulaRefUpdateMoveUndo3Shared();
164 void testFormulaRefUpdateMoveUndoDependents();
165 void testFormulaRefUpdateMoveUndo4();
166 void testFormulaRefUpdateMoveToSheet();
167 void testFormulaRefUpdateDeleteContent();
168 void testFormulaRefUpdateDeleteAndShiftLeft();
169 void testFormulaRefUpdateDeleteAndShiftLeft2();
170 void testFormulaRefUpdateDeleteAndShiftUp();
171 void testFormulaRefUpdateName();
172 void testFormulaRefUpdateNameMove();
173 void testFormulaRefUpdateNameExpandRef();
174 void testFormulaRefUpdateNameExpandRef2();
175 void testFormulaRefUpdateNameDeleteRow();
176 void testFormulaRefUpdateNameCopySheet();
177 void testFormulaRefUpdateNameCopySheetCheckTab( SCTAB Tab, bool bCheckNames );
178 void testFormulaRefUpdateNameDelete();
179 void testFormulaRefUpdateValidity();
180 void testTokenArrayRefUpdateMove();
181 void testSingleCellCopyColumnLabel();
182 void testIntersectionOpExcel();
183 void testMultipleOperations();
184 void testFuncCOLUMN();
185 void testFuncCOUNT();
186 void testFuncCOUNTBLANK();
187 void testFuncROW();
188 void testFuncSUM();
189 void testFuncPRODUCT();
190 void testFuncSUMPRODUCT();
191 void testFuncSUMXMY2();
192 void testFuncMIN();
193 void testFuncN();
194 void testFuncCOUNTIF();
195 void testFuncNUMBERVALUE();
196 void testFuncLEN();
197 void testFuncLOOKUP();
198 void testFuncLOOKUParrayWithError();
199 void testFuncVLOOKUP();
200 void testFuncMATCH();
201 void testFuncCELL();
202 void testFuncDATEDIF();
203 void testFuncINDIRECT();
204 void testFuncINDIRECT2();
205 void testFunc_MATCH_INDIRECT();
206 void testFuncIF();
207 void testFuncCHOOSE();
208 void testFuncIFERROR();
209 void testFuncSHEET();
210 void testFuncNOW();
211 void testFuncGETPIVOTDATA();
212 void testFuncGETPIVOTDATALeafAccess();
213 void testMatrixOp();
214 void testFuncRangeOp();
215 void testFuncFORMULA();
216 void testFuncTableRef();
217 void testFuncFTEST();
218 void testFuncFTESTBug();
219 void testFuncCHITEST();
220 void testFuncTTEST();
221 void testFuncSUMX2PY2();
222 void testFuncSUMX2MY2();
223 void testFuncGCD();
224 void testFuncLCM();
225 void testFuncSUMSQ();
226 void testFuncMDETERM();
227 void testFuncSUMIFS();
228 void testFuncRefListArraySUBTOTAL();
229 void testFuncJumpMatrixArrayIF();
230 void testFuncJumpMatrixArrayOFFSET();
231 void testMatConcat();
232 void testMatConcatReplication();
233 void testRefR1C1WholeCol();
234 void testRefR1C1WholeRow();
235 void testIterations();
237 void testExternalRef();
238 void testExternalRefFunctions();
239 void testExternalRangeName();
240 void testExternalRefUnresolved();
242 void testCopyToDocument();
244 void testHorizontalIterator();
245 void testValueIterator();
246 void testHorizontalAttrIterator();
249 * Basic test for formula dependency tracking.
251 void testFormulaDepTracking();
254 * Another test for formula dependency tracking, inspired by fdo#56278.
256 void testFormulaDepTracking2();
258 void testFormulaDepTracking3();
260 void testFormulaDepTrackingDeleteRow();
262 void testFormulaDepTrackingDeleteCol();
264 void testFormulaMatrixResultUpdate();
267 * More direct test for cell broadcaster management, used to track formula
268 * dependencies.
270 void testCellBroadcaster();
272 void testFuncParam();
273 void testNamedRange();
274 void testInsertNameList();
275 void testCSV();
276 void testMatrix();
277 void testMatrixComparisonWithErrors();
278 void testMatrixConditionalBooleanResult();
279 void testEnterMixedMatrix();
280 void testMatrixEditable();
283 * Basic test for pivot tables.
285 void testPivotTable();
288 * Test against unwanted automatic format detection on field names and
289 * field members in pivot tables.
291 void testPivotTableLabels();
294 * Make sure that we set cells displaying date values numeric cells,
295 * rather than text cells. Grouping by date or number functionality
296 * depends on this.
298 void testPivotTableDateLabels();
301 * Test for pivot table's filtering functionality by page fields.
303 void testPivotTableFilters();
306 * Test for pivot table's named source range.
308 void testPivotTableNamedSource();
311 * Test for pivot table cache. Each dimension in the pivot cache stores
312 * only unique values that are sorted in ascending order.
314 void testPivotTableCache();
317 * Test for pivot table containing data fields that reference the same
318 * source field but different functions.
320 void testPivotTableDuplicateDataFields();
322 void testPivotTableNormalGrouping();
323 void testPivotTableNumberGrouping();
324 void testPivotTableDateGrouping();
325 void testPivotTableEmptyRows();
326 void testPivotTableTextNumber();
329 * Test for checking that pivot table treats strings in a case insensitive
330 * manner.
332 void testPivotTableCaseInsensitiveStrings();
335 * Test for pivot table's handling of double-precision numbers that are
336 * very close together.
338 void testPivotTableNumStability();
341 * Test for pivot table that include field with various non-default field
342 * references.
344 void testPivotTableFieldReference();
347 * Test pivot table functionality performed via ScDBDocFunc.
349 void testPivotTableDocFunc();
352 * Test pivot table per-field repeat item labels functionality
354 void testPivotTableRepeatItemLabels();
357 * Test DPCollection public methods
359 void testPivotTableDPCollection();
362 * Test pivot table median function
364 void testPivotTableMedianFunc();
366 void testCellCopy();
367 void testSheetCopy();
368 void testSheetMove();
369 void testDataArea();
370 void testAutofilter();
371 void testAutoFilterTimeValue();
372 void testAdvancedFilter();
373 void testCopyPaste();
374 void testCopyPasteAsLink();
375 void testCopyPasteTranspose();
376 void testCopyPasteMultiRange();
377 void testCopyPasteSkipEmpty();
378 void testCopyPasteSkipEmpty2();
379 void testCopyPasteSkipEmptyConditionalFormatting();
380 void testCutPasteRefUndo();
381 void testCutPasteGroupRefUndo();
382 void testMoveRefBetweenSheets();
383 void testUndoCut();
384 void testMoveBlock();
385 void testCopyPasteRelativeFormula();
386 void testCopyPasteRepeatOneFormula();
387 void testCopyPasteMixedReferenceFormula();
388 void testMergedCells();
389 void testUpdateReference();
390 void testSearchCells();
391 void testSharedFormulas();
392 void testSharedFormulasRefUpdate();
393 void testSharedFormulasRefUpdateMove();
394 void testSharedFormulasRefUpdateMove2();
395 void testSharedFormulasRefUpdateRange();
396 void testSharedFormulasRefUpdateRangeDeleteRow();
397 void testSharedFormulasRefUpdateExternal();
398 void testSharedFormulasInsertRow();
399 void testSharedFormulasDeleteRows();
400 void testSharedFormulasDeleteColumns();
401 void testSharedFormulasRefUpdateMoveSheets();
402 void testSharedFormulasRefUpdateCopySheets();
403 void testSharedFormulasRefUpdateDeleteSheets();
404 void testSharedFormulasCopyPaste();
405 void testSharedFormulaInsertColumn();
406 void testSharedFormulaMoveBlock();
407 void testSharedFormulaUpdateOnNamedRangeChange();
408 void testSharedFormulaUpdateOnDBChange();
409 void testSharedFormulaAbsCellListener();
410 void testSharedFormulaUnshareAreaListeners();
411 void testSharedFormulaListenerDeleteArea();
412 void testSharedFormulaUpdateOnReplacement();
413 void testSharedFormulaDeleteTopCell();
414 void testSharedFormulaCutCopyMoveIntoRef();
415 void testSharedFormulaCutCopyMoveWithRef();
416 void testSharedFormulaCutCopyMoveWithinRun();
417 void testFormulaPosition();
418 void testFormulaWizardSubformula();
420 void testMixData();
423 * Make sure the sheet streams are invalidated properly.
425 void testStreamValid();
428 * Test built-in cell functions to make sure their categories and order
429 * are correct.
431 void testFunctionLists();
433 void testGraphicsInGroup();
434 void testGraphicsOnSheetMove();
437 * Test toggling relative/absolute flag of cell and cell range references.
438 * This corresponds with hitting Shift-F4 while the cursor is on a formula
439 * cell.
441 void testToggleRefFlag();
444 * Test to make sure correct precedent / dependent cells are obtained when
445 * preparing to jump to them.
447 void testJumpToPrecedentsDependents();
449 void testSetBackgroundColor();
450 void testRenameTable();
452 void testAutoFill();
453 void testAutoFillSimple();
454 void testCopyPasteFormulas();
455 void testCopyPasteFormulasExternalDoc();
456 void testCopyPasteReferencesExternalDoc(); // tdf#106456
458 void testFindAreaPosVertical();
459 void testFindAreaPosColRight();
460 void testShiftCells();
462 void testSort();
463 void testSortHorizontal();
464 void testSortHorizontalWholeColumn();
465 void testSortSingleRow();
466 void testSortWithFormulaRefs();
467 void testSortWithStrings();
468 void testSortInFormulaGroup();
469 void testSortWithCellFormats();
470 void testSortRefUpdate();
471 void testSortRefUpdate2();
472 void testSortRefUpdate3();
473 void testSortRefUpdate4();
474 void testSortRefUpdate4_Impl();
475 void testSortRefUpdate5();
476 void testSortRefUpdate6();
477 void testSortBroadcaster();
478 void testSortBroadcastBroadcaster();
479 void testSortOutOfPlaceResult();
480 void testSortPartialFormulaGroup();
481 void testSortImages();
483 void testNoteBasic();
484 void testNoteDeleteRow();
485 void testNoteDeleteCol();
486 void testNoteLifeCycle();
487 void testNoteCopyPaste();
488 void testNoteContainsNotesInRange();
489 void testAreasWithNotes();
490 void testAnchoredRotatedShape();
491 void testCellTextWidth();
492 void testEditTextIterator();
494 // conditional format tests
495 // mostly in ucalc_condformat.cxx
496 void testCondFormatINSDEL();
497 void testCondFormatInsertRow();
498 void testCondFormatInsertCol();
499 void testCondFormatInsertDeleteSheets();
500 void testCondCopyPaste();
501 void testCondCopyPasteSingleCell(); //e.g. fdo#82503
502 void testCondCopyPasteSingleCellToRange(); //e.g. fdo#82503
503 void testCondCopyPasteSingleCellIntoSameFormatRange(); // e.g., tdf#95295
504 void testCondCopyPasteSingleRowToRange(); //e.g. tdf#106242
505 void testCondCopyPasteSingleRowToRange2();
506 void testCondCopyPasteSheetBetweenDoc();
507 void testCondCopyPasteSheet();
508 void testIconSet();
509 void testDataBarLengthAutomaticAxis();
510 void testDataBarLengthMiddleAxis();
512 // Tests for the ScFormulaListener class
513 void testFormulaListenerSingleCellToSingleCell();
514 void testFormulaListenerMultipleCellsToSingleCell();
515 void testFormulaListenerSingleCellToMultipleCells();
516 void testFormulaListenerMultipleCellsToMultipleCells();
517 void testFormulaListenerUpdateInsertTab();
518 void testFormulaListenerUpdateDeleteTab();
520 // Check that the Listeners are correctly updated when we
521 // call an operation
522 void testCondFormatUpdateMoveTab();
523 void testCondFormatUpdateDeleteTab();
524 void testCondFormatUpdateInsertTab();
525 void testCondFormatUpdateReference();
526 void testCondFormatUpdateReferenceDelRow();
527 void testCondFormatUpdateReferenceInsRow();
529 void testCondFormatEndsWithStr();
530 void testCondFormatEndsWithVal();
532 void testCondFormatUndoList();
533 void testMultipleSingleCellCondFormatCopyPaste();
534 void testDeduplicateMultipleCondFormats();
535 void testCondFormatListenToOwnRange();
536 void testCondFormatVolatileFunctionRecalc();
538 void testImportStream();
539 void testDeleteContents();
540 void testTransliterateText();
542 void testFormulaToValue();
543 void testFormulaToValue2();
545 void testColumnFindEditCells();
546 void testSetStringAndNote();
548 // tdf#80137
549 void testCopyPasteMatrixFormula();
550 void testUndoDataAnchor();
551 void testFormulaErrorPropagation();
552 void testSetFormula();
553 void testMultipleDataCellsInRange();
555 void testTdf97369();
556 void testTdf97587();
558 void testEmptyCalcDocDefaults();
560 void testPrecisionAsShown();
561 void testProtectedSheetEditByRow();
562 void testProtectedSheetEditByColumn();
563 void testFuncRowsHidden();
564 void testInsertColCellStoreEventSwap();
565 void testFormulaAfterDeleteRows();
567 CPPUNIT_TEST_SUITE(Test);
568 CPPUNIT_TEST(testCollator);
569 CPPUNIT_TEST(testSharedStringPool);
570 CPPUNIT_TEST(testSharedStringPoolUndoDoc);
571 CPPUNIT_TEST(testRangeList);
572 CPPUNIT_TEST(testMarkData);
573 CPPUNIT_TEST(testInput);
574 CPPUNIT_TEST(testColumnIterator);
575 CPPUNIT_TEST(testDocStatistics);
576 CPPUNIT_TEST(testRowForHeight);
577 CPPUNIT_TEST(testDataEntries);
578 CPPUNIT_TEST(testSelectionFunction);
579 CPPUNIT_TEST(testMarkedCellIteration);
580 CPPUNIT_TEST(testFormulaCreateStringFromTokens);
581 CPPUNIT_TEST(testFormulaParseReference);
582 CPPUNIT_TEST(testFetchVectorRefArray);
583 CPPUNIT_TEST(testGroupConverter3D);
584 // CPPUNIT_TEST(testFormulaHashAndTag);
585 CPPUNIT_TEST(testFormulaTokenEquality);
586 CPPUNIT_TEST(testFormulaRefData);
587 CPPUNIT_TEST(testFormulaCompiler);
588 CPPUNIT_TEST(testFormulaCompilerJumpReordering);
589 CPPUNIT_TEST(testFormulaCompilerImplicitIntersection2Param);
590 CPPUNIT_TEST(testFormulaCompilerImplicitIntersection1ParamNoChange);
591 CPPUNIT_TEST(testFormulaCompilerImplicitIntersection1ParamWithChange);
592 CPPUNIT_TEST(testFormulaCompilerImplicitIntersection1NoGroup);
593 CPPUNIT_TEST(testFormulaCompilerImplicitIntersectionOperators);
594 CPPUNIT_TEST(testFormulaRefUpdate);
595 CPPUNIT_TEST(testFormulaRefUpdateRange);
596 CPPUNIT_TEST(testFormulaRefUpdateSheets);
597 CPPUNIT_TEST(testFormulaRefUpdateSheetsDelete);
598 CPPUNIT_TEST(testFormulaRefUpdateInsertRows);
599 CPPUNIT_TEST(testFormulaRefUpdateInsertColumns);
600 CPPUNIT_TEST(testFormulaRefUpdateMove);
601 CPPUNIT_TEST(testFormulaRefUpdateMoveUndo);
602 CPPUNIT_TEST(testFormulaRefUpdateMoveUndo2);
603 CPPUNIT_TEST(testFormulaRefUpdateMoveUndo3NonShared);
604 CPPUNIT_TEST(testFormulaRefUpdateMoveUndo3Shared);
605 CPPUNIT_TEST(testFormulaRefUpdateMoveUndoDependents);
606 CPPUNIT_TEST(testFormulaRefUpdateMoveUndo4);
607 CPPUNIT_TEST(testFormulaRefUpdateMoveToSheet);
608 CPPUNIT_TEST(testFormulaRefUpdateDeleteContent);
609 CPPUNIT_TEST(testFormulaRefUpdateDeleteAndShiftLeft);
610 CPPUNIT_TEST(testFormulaRefUpdateDeleteAndShiftLeft2);
611 CPPUNIT_TEST(testFormulaRefUpdateDeleteAndShiftUp);
612 CPPUNIT_TEST(testFormulaRefUpdateName);
613 CPPUNIT_TEST(testFormulaRefUpdateNameMove);
614 CPPUNIT_TEST(testFormulaRefUpdateNameExpandRef);
615 CPPUNIT_TEST(testFormulaRefUpdateNameExpandRef2);
616 CPPUNIT_TEST(testFormulaRefUpdateNameDeleteRow);
617 CPPUNIT_TEST(testFormulaRefUpdateNameCopySheet);
618 CPPUNIT_TEST(testFormulaRefUpdateNameDelete);
619 CPPUNIT_TEST(testFormulaRefUpdateValidity);
620 CPPUNIT_TEST(testTokenArrayRefUpdateMove);
621 CPPUNIT_TEST(testIntersectionOpExcel);
622 CPPUNIT_TEST(testMultipleOperations);
623 CPPUNIT_TEST(testFuncCOLUMN);
624 CPPUNIT_TEST(testFuncCOUNT);
625 CPPUNIT_TEST(testFuncCOUNTBLANK);
626 CPPUNIT_TEST(testFuncROW);
627 CPPUNIT_TEST(testFuncSUM);
628 CPPUNIT_TEST(testFuncPRODUCT);
629 CPPUNIT_TEST(testFuncSUMPRODUCT);
630 CPPUNIT_TEST(testFuncSUMXMY2);
631 CPPUNIT_TEST(testFuncMIN);
632 CPPUNIT_TEST(testFuncN);
633 CPPUNIT_TEST(testFuncCOUNTIF);
634 CPPUNIT_TEST(testFuncNUMBERVALUE);
635 CPPUNIT_TEST(testFuncLEN);
636 CPPUNIT_TEST(testFuncLOOKUP);
637 CPPUNIT_TEST(testFuncLOOKUParrayWithError);
638 CPPUNIT_TEST(testFuncVLOOKUP);
639 CPPUNIT_TEST(testFuncMATCH);
640 CPPUNIT_TEST(testFuncCELL);
641 CPPUNIT_TEST(testFuncDATEDIF);
642 CPPUNIT_TEST(testFuncINDIRECT);
643 CPPUNIT_TEST(testFuncINDIRECT2);
644 CPPUNIT_TEST(testFunc_MATCH_INDIRECT);
645 CPPUNIT_TEST(testFuncIF);
646 CPPUNIT_TEST(testFuncCHOOSE);
647 CPPUNIT_TEST(testFuncIFERROR);
648 CPPUNIT_TEST(testFuncGETPIVOTDATA);
649 CPPUNIT_TEST(testFuncGETPIVOTDATALeafAccess);
650 CPPUNIT_TEST(testRefR1C1WholeCol);
651 CPPUNIT_TEST(testRefR1C1WholeRow);
652 CPPUNIT_TEST(testIterations);
653 CPPUNIT_TEST(testMatrixOp);
654 CPPUNIT_TEST(testFuncRangeOp);
655 CPPUNIT_TEST(testFuncFORMULA);
656 CPPUNIT_TEST(testFuncTableRef);
657 CPPUNIT_TEST(testFuncFTEST);
658 CPPUNIT_TEST(testFuncFTESTBug);
659 CPPUNIT_TEST(testFuncCHITEST);
660 CPPUNIT_TEST(testFuncTTEST);
661 CPPUNIT_TEST(testFuncSUMX2PY2);
662 CPPUNIT_TEST(testFuncSUMX2MY2);
663 CPPUNIT_TEST(testFuncGCD);
664 CPPUNIT_TEST(testFuncLCM);
665 CPPUNIT_TEST(testFuncSUMSQ);
666 CPPUNIT_TEST(testFuncMDETERM);
667 CPPUNIT_TEST(testFuncSUMIFS);
668 CPPUNIT_TEST(testFuncRefListArraySUBTOTAL);
669 CPPUNIT_TEST(testFuncJumpMatrixArrayIF);
670 CPPUNIT_TEST(testFuncJumpMatrixArrayOFFSET);
671 CPPUNIT_TEST(testMatConcat);
672 CPPUNIT_TEST(testMatConcatReplication);
673 CPPUNIT_TEST(testExternalRef);
674 CPPUNIT_TEST(testExternalRangeName);
675 CPPUNIT_TEST(testExternalRefFunctions);
676 // currently crashes windows
677 // CPPUNIT_TEST(testExternalRefUnresolved);
678 CPPUNIT_TEST(testCopyToDocument);
679 CPPUNIT_TEST(testFuncSHEET);
680 CPPUNIT_TEST(testFuncNOW);
681 CPPUNIT_TEST(testHorizontalIterator);
682 CPPUNIT_TEST(testValueIterator);
683 CPPUNIT_TEST(testHorizontalAttrIterator);
684 CPPUNIT_TEST(testFormulaDepTracking);
685 CPPUNIT_TEST(testFormulaDepTracking2);
686 CPPUNIT_TEST(testFormulaDepTracking3);
687 CPPUNIT_TEST(testFormulaDepTrackingDeleteRow);
688 CPPUNIT_TEST(testFormulaDepTrackingDeleteCol);
689 CPPUNIT_TEST(testFormulaMatrixResultUpdate);
690 CPPUNIT_TEST(testCellBroadcaster);
691 CPPUNIT_TEST(testFuncParam);
692 CPPUNIT_TEST(testNamedRange);
693 CPPUNIT_TEST(testInsertNameList);
694 CPPUNIT_TEST(testCSV);
695 CPPUNIT_TEST(testMatrix);
696 CPPUNIT_TEST(testMatrixComparisonWithErrors);
697 CPPUNIT_TEST(testMatrixConditionalBooleanResult);
698 CPPUNIT_TEST(testEnterMixedMatrix);
699 CPPUNIT_TEST(testMatrixEditable);
700 CPPUNIT_TEST(testPivotTable);
701 CPPUNIT_TEST(testPivotTableLabels);
702 CPPUNIT_TEST(testPivotTableDateLabels);
703 CPPUNIT_TEST(testPivotTableFilters);
704 CPPUNIT_TEST(testPivotTableNamedSource);
705 CPPUNIT_TEST(testPivotTableCache);
706 CPPUNIT_TEST(testPivotTableDuplicateDataFields);
707 CPPUNIT_TEST(testPivotTableNormalGrouping);
708 CPPUNIT_TEST(testPivotTableNumberGrouping);
709 CPPUNIT_TEST(testPivotTableDateGrouping);
710 CPPUNIT_TEST(testPivotTableEmptyRows);
711 CPPUNIT_TEST(testPivotTableTextNumber);
712 CPPUNIT_TEST(testPivotTableCaseInsensitiveStrings);
713 CPPUNIT_TEST(testPivotTableNumStability);
714 CPPUNIT_TEST(testPivotTableFieldReference);
715 CPPUNIT_TEST(testPivotTableDocFunc);
716 CPPUNIT_TEST(testPivotTableRepeatItemLabels);
717 CPPUNIT_TEST(testPivotTableDPCollection);
718 CPPUNIT_TEST(testPivotTableMedianFunc);
719 CPPUNIT_TEST(testCellCopy);
720 CPPUNIT_TEST(testSheetCopy);
721 CPPUNIT_TEST(testSheetMove);
722 CPPUNIT_TEST(testDataArea);
723 CPPUNIT_TEST(testGraphicsInGroup);
724 CPPUNIT_TEST(testGraphicsOnSheetMove);
725 CPPUNIT_TEST(testStreamValid);
726 CPPUNIT_TEST(testFunctionLists);
727 CPPUNIT_TEST(testToggleRefFlag);
728 CPPUNIT_TEST(testAutofilter);
729 CPPUNIT_TEST(testAutoFilterTimeValue);
730 CPPUNIT_TEST(testAdvancedFilter);
731 CPPUNIT_TEST(testCopyPaste);
732 CPPUNIT_TEST(testCopyPasteAsLink);
733 CPPUNIT_TEST(testCopyPasteTranspose);
734 CPPUNIT_TEST(testCopyPasteMultiRange);
735 CPPUNIT_TEST(testCopyPasteSkipEmpty);
736 CPPUNIT_TEST(testCopyPasteSkipEmpty2);
737 //CPPUNIT_TEST(testCopyPasteSkipEmptyConditionalFormatting);
738 CPPUNIT_TEST(testCutPasteRefUndo);
739 CPPUNIT_TEST(testCutPasteGroupRefUndo);
740 CPPUNIT_TEST(testMoveRefBetweenSheets);
741 CPPUNIT_TEST(testUndoCut);
742 CPPUNIT_TEST(testMoveBlock);
743 CPPUNIT_TEST(testCopyPasteRelativeFormula);
744 CPPUNIT_TEST(testCopyPasteRepeatOneFormula);
745 CPPUNIT_TEST(testCopyPasteMixedReferenceFormula);
746 CPPUNIT_TEST(testMergedCells);
747 CPPUNIT_TEST(testUpdateReference);
748 CPPUNIT_TEST(testSearchCells);
749 CPPUNIT_TEST(testSharedFormulas);
750 CPPUNIT_TEST(testSharedFormulasRefUpdate);
751 CPPUNIT_TEST(testSharedFormulasRefUpdateMove);
752 CPPUNIT_TEST(testSharedFormulasRefUpdateMove2);
753 CPPUNIT_TEST(testSharedFormulasRefUpdateRange);
754 CPPUNIT_TEST(testSharedFormulasRefUpdateRangeDeleteRow);
755 CPPUNIT_TEST(testSharedFormulasRefUpdateExternal);
756 CPPUNIT_TEST(testSharedFormulasInsertRow);
757 CPPUNIT_TEST(testSharedFormulasDeleteRows);
758 CPPUNIT_TEST(testSharedFormulasDeleteColumns);
759 CPPUNIT_TEST(testSharedFormulasRefUpdateMoveSheets);
760 CPPUNIT_TEST(testSharedFormulasRefUpdateCopySheets);
761 CPPUNIT_TEST(testSharedFormulasRefUpdateDeleteSheets);
762 CPPUNIT_TEST(testSharedFormulasCopyPaste);
763 CPPUNIT_TEST(testSharedFormulaInsertColumn);
764 CPPUNIT_TEST(testSharedFormulaUpdateOnNamedRangeChange);
765 CPPUNIT_TEST(testSharedFormulaUpdateOnDBChange);
766 CPPUNIT_TEST(testSharedFormulaAbsCellListener);
767 CPPUNIT_TEST(testSharedFormulaUnshareAreaListeners);
768 CPPUNIT_TEST(testSharedFormulaListenerDeleteArea);
769 CPPUNIT_TEST(testSharedFormulaUpdateOnReplacement);
770 CPPUNIT_TEST(testSharedFormulaDeleteTopCell);
771 CPPUNIT_TEST(testSharedFormulaCutCopyMoveIntoRef);
772 CPPUNIT_TEST(testSharedFormulaCutCopyMoveWithRef);
773 CPPUNIT_TEST(testSharedFormulaCutCopyMoveWithinRun);
774 CPPUNIT_TEST(testFormulaPosition);
775 CPPUNIT_TEST(testFormulaWizardSubformula);
776 CPPUNIT_TEST(testMixData);
777 CPPUNIT_TEST(testJumpToPrecedentsDependents);
778 CPPUNIT_TEST(testSetBackgroundColor);
779 CPPUNIT_TEST(testRenameTable);
780 CPPUNIT_TEST(testAutoFill);
781 CPPUNIT_TEST(testAutoFillSimple);
782 CPPUNIT_TEST(testCopyPasteFormulas);
783 CPPUNIT_TEST(testCopyPasteFormulasExternalDoc);
784 CPPUNIT_TEST(testCopyPasteReferencesExternalDoc);
785 CPPUNIT_TEST(testFindAreaPosVertical);
786 CPPUNIT_TEST(testFindAreaPosColRight);
787 CPPUNIT_TEST(testSort);
788 CPPUNIT_TEST(testSortHorizontal);
789 CPPUNIT_TEST(testSortHorizontalWholeColumn);
790 CPPUNIT_TEST(testSortSingleRow);
791 CPPUNIT_TEST(testSortWithFormulaRefs);
792 CPPUNIT_TEST(testSortWithStrings);
793 CPPUNIT_TEST(testSortInFormulaGroup);
794 CPPUNIT_TEST(testSortWithCellFormats);
795 CPPUNIT_TEST(testSortRefUpdate);
796 CPPUNIT_TEST(testSortRefUpdate2);
797 CPPUNIT_TEST(testSortRefUpdate3);
798 CPPUNIT_TEST(testSortRefUpdate4);
799 CPPUNIT_TEST(testSortRefUpdate5);
800 CPPUNIT_TEST(testSortRefUpdate6);
801 CPPUNIT_TEST(testSortBroadcaster);
802 CPPUNIT_TEST(testSortBroadcastBroadcaster);
803 CPPUNIT_TEST(testSortOutOfPlaceResult);
804 CPPUNIT_TEST(testSortPartialFormulaGroup);
805 CPPUNIT_TEST(testSortImages);
806 CPPUNIT_TEST(testShiftCells);
807 CPPUNIT_TEST(testNoteBasic);
808 CPPUNIT_TEST(testNoteDeleteRow);
809 CPPUNIT_TEST(testNoteDeleteCol);
810 CPPUNIT_TEST(testNoteLifeCycle);
811 CPPUNIT_TEST(testNoteCopyPaste);
812 CPPUNIT_TEST(testNoteContainsNotesInRange);
813 CPPUNIT_TEST(testAreasWithNotes);
814 CPPUNIT_TEST(testAnchoredRotatedShape);
815 CPPUNIT_TEST(testCellTextWidth);
816 CPPUNIT_TEST(testEditTextIterator);
817 CPPUNIT_TEST(testCondFormatINSDEL);
818 CPPUNIT_TEST(testCondFormatInsertRow);
819 CPPUNIT_TEST(testCondFormatInsertCol);
820 CPPUNIT_TEST(testCondFormatInsertDeleteSheets);
821 CPPUNIT_TEST(testCondCopyPaste);
822 CPPUNIT_TEST(testCondCopyPasteSingleCell);
823 CPPUNIT_TEST(testCondCopyPasteSingleCellToRange);
824 CPPUNIT_TEST(testCondCopyPasteSingleCellIntoSameFormatRange);
825 CPPUNIT_TEST(testCondCopyPasteSingleRowToRange);
826 CPPUNIT_TEST(testCondCopyPasteSingleRowToRange2);
827 CPPUNIT_TEST(testCondCopyPasteSheetBetweenDoc);
828 CPPUNIT_TEST(testCondCopyPasteSheet);
829 CPPUNIT_TEST(testCondFormatEndsWithStr);
830 CPPUNIT_TEST(testCondFormatEndsWithVal);
831 CPPUNIT_TEST(testCondFormatUpdateReferenceDelRow);
832 CPPUNIT_TEST(testCondFormatUpdateReferenceInsRow);
833 CPPUNIT_TEST(testCondFormatUndoList);
834 CPPUNIT_TEST(testMultipleSingleCellCondFormatCopyPaste);
835 CPPUNIT_TEST(testDeduplicateMultipleCondFormats);
836 CPPUNIT_TEST(testCondFormatVolatileFunctionRecalc);
837 CPPUNIT_TEST(testIconSet);
838 CPPUNIT_TEST(testDataBarLengthAutomaticAxis);
839 CPPUNIT_TEST(testDataBarLengthMiddleAxis);
840 CPPUNIT_TEST(testFormulaListenerSingleCellToSingleCell);
841 CPPUNIT_TEST(testFormulaListenerSingleCellToMultipleCells);
842 CPPUNIT_TEST(testFormulaListenerMultipleCellsToSingleCell);
843 CPPUNIT_TEST(testFormulaListenerMultipleCellsToMultipleCells);
844 CPPUNIT_TEST(testFormulaListenerUpdateInsertTab);
845 CPPUNIT_TEST(testFormulaListenerUpdateDeleteTab);
846 CPPUNIT_TEST(testImportStream);
847 CPPUNIT_TEST(testDeleteContents);
848 CPPUNIT_TEST(testTransliterateText);
849 CPPUNIT_TEST(testFormulaToValue);
850 CPPUNIT_TEST(testFormulaToValue2);
851 CPPUNIT_TEST(testColumnFindEditCells);
852 CPPUNIT_TEST(testSetStringAndNote);
853 CPPUNIT_TEST(testCopyPasteMatrixFormula);
854 CPPUNIT_TEST(testUndoDataAnchor);
855 CPPUNIT_TEST(testFormulaErrorPropagation);
856 CPPUNIT_TEST(testSetFormula);
857 CPPUNIT_TEST(testMultipleDataCellsInRange);
858 CPPUNIT_TEST(testTdf97369);
859 CPPUNIT_TEST(testTdf97587);
860 CPPUNIT_TEST(testEmptyCalcDocDefaults);
861 CPPUNIT_TEST(testPrecisionAsShown);
862 CPPUNIT_TEST(testProtectedSheetEditByRow);
863 CPPUNIT_TEST(testProtectedSheetEditByColumn);
864 CPPUNIT_TEST(testFuncRowsHidden);
865 CPPUNIT_TEST(testInsertColCellStoreEventSwap);
866 CPPUNIT_TEST(testFormulaAfterDeleteRows);
867 CPPUNIT_TEST_SUITE_END();
869 private:
870 std::unique_ptr<TestImpl> m_pImpl;
871 ScDocument *m_pDoc;
874 #endif
876 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */