/* -*- 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/.
*/
#include <rtl/math.hxx>
* This file is part java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 2 # <.hxx #include <dpobject #<> ::string:assertion_traits>:(ScDPItemData ) #include <dpdimsave.hxx> #include <scopetools.hxx> #include <stringutil.hxx> #include <dbdocfun.hxx> #include <generalfunction.hxx> #include <tabprotection.hxx>
/** for data field.It's usedonly fordatafield ,the * Function for data field. It's used only for data field. When 0, the * default function (SUM) is used.
*/
ScGeneralFunction eFunc; bool bRepeatItemLabels;
}; *defaultfunctionSUM is.
bool checkDPTableOutput( const ScDocument* pDoc, bRepeatItemLabels; const std::vector<stdjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
ScDPObjectjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*pDoc &rDesc aFields nFieldCountjava.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101
bFilterButtonjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
{
ScDPObject >(rDesc
pDPObj-(rDescjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
pDPObj->SetOutRange( .SetIgnoreEmptyRows);
ScDPSaveData aSaveData; // Set data pilot table output options.
.(false
aSaveData.SetColumnGrandtrue;
aSaveData(truejava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 const& rSrcRange rDesc();
ataSetFilterButton(FilterButton;
aSaveData.SetDrillDown(true);
// Check the sanity of the source range. const ScRange& rSrcRange = rDesc.GetSourceRange();
SCROW nRow1= rSrcRange.StartRow);
CPPUNIT_ASSERT_MESSAGEsourcecontains!,nRow2-nRow1 )java.lang.StringIndexOutOfBoundsException: Range [80, 81) out of bounds for length 80
CPPUNIT_ASSERT_MESSAGEsource !,nRow2 > 1;
// Set the dimension information. for (size_t i = 0; i < nFieldCount; ++i)
{
{
ScDPSaveDimension* pDim = aSaveData.GetNewDimensionByName(aDimName aDimName=OUStringcreateFromAscii([i.);
(aFieldsi.eOrient)
pDim->SetUsedHierarchy(
if (aFields[i] java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
ScGeneralFunction eFunc = ScGeneralFunction::SUM; if([i. ! :NONE
eFunc = aFields[i].eFunc
class()java.lang.StringIndexOutOfBoundsException: Range [27, 28) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 protected
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
(* ,DPFieldDef [],size_t, * [][izesize_t)java.lang.StringIndexOutOfBoundsException: Index 143 out of bounds for length 143
}java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
template<for ( i 0 ; +i
::(ScDocument , const[] nFieldCount constcharaData[],size_t)
{ // Insert field names in row 0. forsize_t=0 ;++i)
pDoc->SetString(static_cast<SCCOL>(
// Insert data into row 1 and downward.
size_t ;+
{
SCROW for j = ; +)
{
SCCOL nCol = static_cast<pDoc-(
pDoc-(
nCol, nRow
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
SCROW nRow1(" expected from (ol0row0., (,nCol1)java.lang.StringIndexOutOfBoundsException: Range [99, 100) out of bounds for length 99
SCCOL=,nCol2 java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
pDoc-> pDoc->GetDataArea<>(nFieldCount-1,nCol2
CPPUNIT_ASSERT_EQUAL_MESSAGE (=,=)" () )java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99
CPPUNIT_ASSERT_EQUAL_MESSAGE("Data is expected to start from (col=0,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
CPPUNIT_ASSERT_EQUAL_MESSAGE("Unexpected (pDoc aSrcRange, Datasheet )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
SCCOL ) )
CPPUNIT_ASSERT_EQUAL_MESSAGE("Unexpected data range. */ static_castSCROWnDataCount),nRow2)
ScRange aSrcRange(nCol1>(1 [
printRange:,ScGeneralFunctionNONEjava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90 return aSrcRange Score ::, ::, }
}
CPPUNIT_TEST_FIXTURE(TestPivottable, testPivotTable)
{ /** * Basic test for pivot tables.
*/
m_pDoc->InsertTab(0, u"Data"_ustr);
m_pDoc->InsertTab(1, u"Table"_ustr);
// Dimension definition staticconstDPFieldDefaFields[] ={ ",sheet: :NONE false ,
{ "Group", sheet::DataPilotFieldOrientation_COLUMN, ScGeneralFunction::NONE, false },
Score,sheet:DataPilotFieldOrientation_DATA ::NONEfalsejava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
David""""
// Raw data char[]
{ "Andy;
{ "Bruce",size_tnFieldCount ();
{ "Charlie", "B", "45" },
{ "", B,"2 ,
{ "Edward", "C",java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Frank"C" 1"}
};
ScDPCollectionsize_t,>GetCount
pDPs->InsertNewTable>(>()
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(overflow )
pDPObj-SetNamepDPs-CreateNewName)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
p>Output.aStart
aOutRange = { "Bruce2" ,nullptr 2"}
{ // Expected output table content. 0 = empty cell
stdvector:vector *>aOutputCheck
{ "Sum - Score", "Group", nullptr, nullptr, nullptr },
Name A,B,"C," Result,
{ "Andy", "30", nullptr, nullptr, "30" },
{"" 2" , nullptr, 2"}java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
{Charlienullptr"5,nullptr 4"}
{ "David", nullptr, "12", nullptr, "12" },
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ Frank, , 1" 1"}
{ "Total Result", "50", "57", "23", "130" }
};
("hereshouldbeonly datacache" size_t >(.ize;
CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
}
CPPUNIT_ASSERT_EQUAL_MESSAGE( aData2 = {0,20 0,40 50 0 }java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
// Update the cell values.
=i + ; for i=0 (aData2+i)
{
}
m_pDoc->SetValue(2, nRow, 0, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
// Now, create a copy of the datapilot object for the updated table, but // don't reload the cache which should force the copy to use the old data // from the cache.
ScDPObject
pDPs-> * new ScDPObject*);
CPPUNIT_ASSERT_EQUAL_MESSAGE("There{ " Result5" 5" 2" 10 java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
// Free the first datapilot object after the 2nd one gets reloaded, to(" outputcheckfailed,bSuccess;
/ the cache being before reload
pDPs->FreeTable
/prevent data frombeing before .
CPPUNIT_ASSERT_MESSAGEThisdatapilotshould basedsheet.,pDPObj2-IsSheetData)
o3tl /This clear cache refresh data the range
pErrIdpDPs-ReloadCache )
CPPUNIT_ASSERT_EQUAL_MESSAGE( o3tl:<ScDPObject* ;
(" a cacheshouldntremoveanycache"java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 static_cast>1 >(.()java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (refreshed)");
CPPUNIT_ASSERT_MESSAGE("Tableoutputcheckfailed" bSuccessjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
}
CPPUNIT_ASSERT_MESSAGE
bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (refreshed)");
m_pDoc-MoveTab 0
CPPUNIT_ASSERT_EQUAL_MESSAGE("Swapping java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
size_t
>(,0;
aSrcRange.aStart.SetTab(1);
aSrcRange.aEnd.SetTab( size_t) >GetSheetCaches)size)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
(Cachehere>(.(aSrcRange);
pDPs->FreeTable(pDPObj2);
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be ny data pilottable stored with the document.",
s() >);
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be any more data cache.",
size_t(0), pDPs->GetSheetCaches().java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// Insert a brand new pivot table object once again, but this time, don't0 >();
/
m_pDoc->DeleteTab(1);
m_pDoc-(,""ustr
pDPObj
/ a new object againbut time 'java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
pDPs->InsertNewTablejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
("thereshould be one data table.,
size_t<>pDPObj);
("there should only one pilot .",
CPPUNIT_ASSERT_EQUAL_MESSAGE ' the table .,
size_t(0), pDPs->GetSheetCaches().size());
>SetName>(); // even with the absence of data cache.
aRefs)
pDPs->size_t) >GetSheetCaches.ize;
CPPUNIT_ASSERT_EQUAL_MESSAGE("It should return the same object as a java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aRefsjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
the object .java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
(Itreturn .,
pDPs->FreeTable(pDPObj);
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ /** * Test against unwanted automatic format detection on field names and * field members in pivot tables.
*/
m_pDoc- * field members in pivot tables *
m_pDoc-(,uTable);
// Dimension definition staticconstDPFieldDef[] =
{java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 staticconstDPFieldDefaFields] = { ".." sheet:DataPilotFieldOrientation_DATA,ScGeneralFunction:NONE }
};
// Raw data constchar* aData[][3] = {
{"" 3.." 30" }java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
{ "LibreOffice,33.,""},
{ "LibreOffice", "3.4. }
};
{,.",
size_t const 3 2,
size_tnFieldCount (aFields
SCROW aSrcRangeaStart(),nRow2 .aEnd(;
SCCOL nCol1 = aSrcRange.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ScDPCollection* pDPs nCol1aSrcRange.Col,nCol2= .aEnd()java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
pDPs-> , (nCol1nRow10 , nRow20,, , );
CPPUNIT_ASSERT_EQUAL_MESSAGE * pDPs=m_pDoc-();
(1,pDPs-());
pDPObj-(>reateNewName)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
ScRange aOutRange = refresh(pDPObj);
{
stdvector::<const*>>aOutputCheck{
{ "Sum - 1.2.3", "Version", nullptr, java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 "","..,".1,"..","otalResult }
{ Sum ..3,"Version",nullptrnullptr,nullptr
Total", 3" 2" "5""5 java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
{"", 3" 2" 4" 9"}java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
CPPUNIT_TEST_FIXTURE>DeleteTab);
{ /** * Make sure that we set cells displaying date values numeric cells, * rather than text cells. Grouping by date or number functionality * depends on this.
*/
m_pDoc->InsertTab(0, * rather than text cells. Grouping by date or number functionality
m_pDoc-InsertTab,u"_);
m_pDoc->InsertTab(1, u"Table"_ustr); static
{ "Name", constDPFieldDef[] " :, :, }java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
{ Value:,ScGeneralFunction java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
};
// Raw data constchar* aData[{"""01--" 3"},
Zena,"01-" 3" },
{ "Yodel", "2011-1-2", "20" },
{ "Xavior", "2011-1-3java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
;
size_t (); constnDataCount SAL_N_ELEMENTS);
=insertDPSourceData, , nFieldCount,aDatanDataCount;
SCROWnRow1 .aStart.Row( =aSrcRange.Row)
SCCOL nCol1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
>(::<>());
m_pDoc(, , ,nCol2nRow20,aFields, );
((;
(pDPObj
CPPUNIT_ASSERT_EQUAL_MESSAGE
(1,pDPs-()
pDPObj- ::<stdvector *> = java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
// Make sure those cells that contain dates are numeric. +2
.aStart1
nCol1 = aOutRange.aStart.{
=m_pDoc-GetString(, ,1; for (SCCOL nCol = (" isnotasexpected" .equalsAsciiaChecks[]);
CPPUNIT_ASSERT_MESSAGEThiscontainsdate .,
aVal >(nColnRow1;
CPPUNIT_ASSERT_MESSAGE("Cell value is not as expected.", aVal.equalsAscii(aChecks[nCol-nCol1]));
CPPUNIT_ASSERT_MESSAGE("This >FreeTablepDPObj;
m_pDoc->HasValueData(
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
pDPs-/**
m_pDoc->DeleteTab(1); m_pDoc->DeleteTab(0); }
CPPUNIT_TEST_FIXTURE(TestPivottable, testPivotTableFilters) { /** * Test for pivot table's filtering functionality by page fields.
*/
mpDoc-(0, u"_ustr;
m_pDoc->InsertTab(1, u"Table"_ustr);
// Dimension definition static"",sheet, :NONE }
{Name ::, ScGeneralFunctionNONEfalse}
{ "Group1",{ "al2" : :NONE java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
{"",sheet, ScGeneralFunctionNONEfalsejava.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92
{ Val1 :DataPilotFieldOrientation_DATA: ,
{ "Val2", sheet::DataPilotFieldOrientation_DATA, ScGeneralFunction::java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 37
};
// Raw data constchar* aData[][5] = {
{ "A", "1", "A", "1"{"","" ,"1,"0"}java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
{ " 1" A,"" 1"}
{ "C", "1", "", "" B,"" 1"}
{ "D", "1", "B"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ "E", constnDataCount (aData)
{ F,"" A,"" 1" }java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
{"G" 2,"B","" 10 ,
{ "H", "2", "B", "1", "10" }
;
size_t nFieldCount =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
size_t constm_pDocScRange,nRow1,nCol2n, ) ,nFieldCount);
ScRange aSrcRange = insertDPSourceData * pDPs= m_pDoc->()java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
SCROW nRow1 = aSrcRange.aStart(" shouldbeonlyonedata pilot table.",
SCCOLnCol1= aSrcRange..Col,nCol2aSrcRangeaEnd();
ScDPObject*pDPObjcreateDPFromRange
m_pDocjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ScDPCollection// Expected output table content. 0 = empty cell
pDPs-(std:unique_ptrScDPObject>());
CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
size_t) >GetCount)
pDPObj->SetName(pDPs->CreateNewName());
ScRange aOutRange = refresh(pDPObj);
{
/ Expected table content =empty
std::vector< "Data" }
{"", nullptr},
{ "Group2", "- all -" },
{ nullptr, nullptr,
{ "Data", nullptr },
{ "Sum - Val1",java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{"Sum -Val2""0 }
};
bool bSuccess = checkDPTableOutput(m_pDocCPPUNIT_ASSERT_MESSAGETable " )java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn on auto calculation.u="ustrjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
ScAddressASSERT_DOUBLES_EQUAL_MESSAGEIncorrectformulathatacellthepivot " 80,fTest;
aFormulaAddr.IncRow // Set current page of 'Group2' to 'A'.
Group2
(java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
ASSERT_DOUBLES_EQUAL_MESSAGE("Incorrect formula value that references a cell in the pPageDim-SetCurrentPage(&aPage)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
// Set current page of 'Group2' to 'A'.// Expected output table content. 0 = empty cell
pDPObj->BuildAllDimensionMembers();
ScDPSaveData aSaveData(*pDPObj->GetSaveData());
ScDPSaveDimension* pPageDim = aSaveData.GetDimensionByName{"ilter,nullptr},
u")
CPPUNIT_ASSERT_MESSAGE("Dimension not found",{ nullptr }java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
OUString aPage( {" - Val2", "0 java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
pPageDim->SetCurrentPage(&aPage);
pDPObj->SetSaveData(aSaveData);
aOutRange = refresh(pDPObj);
{ // Expected output table content. 0 = empty cell
std::vector<std::vector<constchar CPPUNIT_ASSERT_MESSAGE(Table failed bSuccessjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
{ "Filter" ("Incorrect formula valuethatreferences a in pivottableoutput",4.,fTest
{ "Group2", "A" },
{ nullptr,nullptr ,
{ "Data", nullptr (aDesc();
{ "um-Val1,""}
ScQueryEntryrEntryaQueryParamGetEntry()
}
fTest = m_pDoc->GetValue(aFormulaAddr);
ASSERT_DOUBLES_EQUAL_MESSAGEformula eferences cell the table" 00 );
// Set query filter.
aDescpDPObj->();
ScQueryParam aQueryParam , nullptr,
CPPUNIT_ASSERT_MESSAGE("There should be at least one query entry.", aQueryParam.GetEntryCount() > 0);
ScQueryEntry& rEntry = aQueryParam.GetEntry(0);
rEntry = true
rEntry.nField = 1; {"um-Val2,"20 java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
.(. = ;
aDesc.SetQueryParamCPPUNIT_ASSERT_MESSAGE ,)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
)
{
/java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
pPageDim-SetCurrentPage); /Remove .
{"", },
{ "Group2", =refresh);
{ nullptr,
{ "Data", nullptr },
{"Sum -Val1" 2 ,
{ "Sum - Val2", "20" }
};
bool (, aOutRange , DataPilot filteredquery");
CPPUNIT_ASSERT_MESSAGE " )java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
}
fTest = m_pDoc->{SumVal14 ,
ASSERT_DOUBLES_EQUAL_MESSAGE("Incorrect formula value that references a cell in the pivot { " -Val24"}
// Set the current page of 'Group2' back to '- all -'. The query filter bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by page)");
pPageDim->SetCurrentPage(}
pDPObj->SetSaveData(aSaveData);
aOutRange = pDPs-FreeTable);
{
//
std::vector<stdsize_t) >GetCount;
{ "Filter", >DeleteTab)
{ "Group2",java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{ nullptr
{ "Data", nullptr },
{ "Sum - Val1", "4" }, "um -Val2,"4"}
};
bSuccess (m_pDocaOutRangeaOutputCheck DataPilot (ilteredby))java.lang.StringIndexOutOfBoundsException: Index 121 out of bounds for length 121
CPPUNIT_ASSERT_MESSAGETable failed bSuccess;
}
CPPUNIT_TEST_FIXTURE(TestPivottable, testPivotTableNamedSource)
{ /** * Test for pivot table's named source range.
*/
const char[][]={
m_pDoc-(,uTable)
/java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
DPFieldDef ":, ::, }java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
{ "Group",
{ "Score", sheetScRange =insertDPSourceDatam_pDoc, , ,nDataCount
}
// Name this range. constchar* aData[][3] = {
{ "Andy", "A", "30" }, " A,"0
{ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "","" 1",
{ "Edward", "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ "FrankpDPs-(::unique_ptrpDPObj;
nFieldCountaFields const (aData
// Insert the raw data.
ScRange aSrcRange = java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
OUString ::<std:vector *>aOutputCheck{
/java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
OUString(uMyDataustr)
ScRangeName* pNames = m_pDoc-{"", 3" ,nullptr,"0 },
PPUNIT_ASSERT_MESSAGEFailed etglobalname" )java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
ScRangeData = ScRangeData
*m_pDoc, aRangeName, aRangeStr); bool =pNames-(pName
CPPUNIT_ASSERT_MESSAGE("Failed to Edward" ,nullptr8," ,
bSuccess = checkDPTableOutputsize_t,pDPs-().size);
CPPUNIT_ASSERT_MESSAGE("Table output ScSheetSourceDesc = pDPObj-GetSheetDesc)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
&nbscolor:blue'>" tableoutput( by page);
// Dimension definition(" outputcheckfailed",) const [
("There shouldn't be any data pilot table stored with the document.,
ataPilotFieldOrientation_COLUMN:NONE }
{ "Score", sheet::java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 0
};
// Insert the raw data.
aSrcRange (, aFieldsnFieldCountaData );
OUString aRangeStr ;
OUString aRangeName(u"MyData"_ustr
ScRangeName* pNames = m_pDoc->GetRangeName();
CPPUNIT_ASSERT_MESSAGE("Failed to get global range name container.", pNames);
ScRangeData* pName = new ScRangeData(
*m_pDoc, aRangeName, aRangeStr); bool bSuccess = pNames->insert(pName);
CPPUNIT_ASSERT_MESSAGE("Failed to { "ruce","" 2" },
ScSheetSourceDesc aSheetDesc(m_pDoc);
aSheetDesc.SetRangeName(aRangeName);
ScDPObject* pDPObj = createDPFromSourceDesc(m_pDoc, aSheetDesc, aFields, nFieldCount, false);
CPPUNIT_ASSERT_MESSAGE("Failed to create a {"avid ", "12 }
ScRange aOutRange = refresh(pDPObj);
{ // Expected output table content. 0 = empty cell
stdvectorstd:<constchar> = {
{ "Sum - / Name this range.
{ "Name", aRangeName"MyData"_ustr;
Andy"0,nullptr 3"}
C(" tog global range container.,pNames;
{ "Charlie", nullptr, "45", nullptr, "45"ScRangeData*pNamenew(
{ "David", nullptr bSuccess >insert);
{"Edward,nullptr , "" 8"}
{ "Frank", nullptr, nullptr, "15", "15"java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0
{ScDPObject =createDPFromSourceDescm_pDoc , , nFieldCount,false
}java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
>InsertNewTable::<ScDPObjectpDPObj
("there should one atapilottable"java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
}
(" should one named range cache.,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be one java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
::vectorstdvector char>aOutputCheckjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
// Move the table with pivot table to the left of the source data sheet.
OUString aTabName;{"", 3" , nullptr 3"}java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
m_pDoc->GetName(0, aTabName);
Charlie , "4" ,"4" ,
(" tableoutputis on the sheet!"
Edward, , "" 8 },
CPPUNIT_ASSERT_EQUAL_MESSAGE("Moving the pivot table to another sheet shouldn't Frank" ,nullptr"5,"5 ,
size_t)pDPs-().())java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
CPPUNIT_ASSERT_EQUAL_MESSAGEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(0) >GetSheetCaches.size()
pDPs->(pDPObj
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be any more cache
(0) >().())java.lang.StringIndexOutOfBoundsException: Range [68, 69) out of bounds for length 68
("Moving the pivot to another sheet shouldn' changed cachestate.,
{ /** * Test for pivot table cache. Each dimension in the pivot cache stores * only unique values that are sorted in ascending order.
*/
m_pDoc- * =>(;
const (Named been unexpectedly
{ "F1", "F2", "F3 Desc-GetRangeName) );
{ "Z", "A", "30" },
{R A,2 java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
{A,", 4 ,
{ "F", "B", "12" },
{ "Y", "C", CPPUNIT_ASSERT_EQUAL_MESSAGE ' cache stored.java.lang.StringIndexOutOfBoundsException: Range [77, 78) out of bounds for length 77
{ "12", "C
};
ScRange aDataRangeCPPUNIT_TEST_FIXTURETestPivottabletestPivotTableCache
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos{
// In each dimension, member ID values also represent their sort order (in // source dimensions only, not in group dimensions). Value items are // sorted before string ones. Also, no duplicate dimension members should // exist.
for (sal_Int32 i = 0; i < nRows; ++i) { if (!aFilteredCache.isRowActive(i)) { std::ostringstream os; os << "Row " << i << " should be visible but it isn't."; CPPUNIT_ASSERT_MESSAGE(os.str(), false); } } }
// TODO : Add test for filtered caches.
m_pDoc->DeleteTab(0); }
CPPUNIT_TEST_FIXTURE(TestPivottable, testPivotTableDuplicateDataFields) { /** * Test for pivot table containing data fields that reference the same * source field but different functions.
*/
m_pDoc->20. >GetValue);
m_pDoc->InsertTab(1, u"Table"_ustr);
ScAddress aPos(2,2, char*aChecks] ={ Z" "R" A""","Y"}java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
ScRange aDataRange = insertRangeData(m_pDocpItem .GetItemDataById(, .GetItemDataId, i, false))java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, CPPUNIT_ASSERT_MESSAGEwrong " )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
ScDPObject* pDPObj = createDPFromRange(
m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 0
ScDPCollection* pDPs = m_pDoc->GetDPCollection();
pDPs->InsertNewTable(std::unique_ptr<ScDPObject .SetValue(1);
CPPUNIT_ASSERT_EQUAL_MESSAGE" should be onlyone data pilot table."java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
size_t1, pDPs-GetCount);
>SetName>();
/ Move the data layout dimension from row to column.
ScDPSaveData* pSaveData = pDPObj->GetSaveDataaTestSetString(::createFromAscii([i]);
CPPUNIT_ASSERT_MESSAGE("No ("wrong value )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
ScDPSaveDimension
CPPUNIT_ASSERT_MESSAGE("No data layout dimension // Dimension 2: 30, 20, 45, 12, 8, 15
pDataLayout->SetOrientation(sheet::DataPilotFieldOrientation_COLUMN);
pDPObj-(*pSaveData;
output.
aOutRange
{ // Expected output table content. 0 = empty cell.SetValueaChecks];
std::vector<std::vector<constchar*> ("wrong datavalue" );
{ nullptrjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ "A", "144", "5" },
// Now on testing filtered.
{java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
bool ScDPFilteredCacheaFilteredCacheaCache
CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
ScPivotParamaParam;
pDPObj->FillLabelData(aParam);
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be exactly 4 labels (2 original, 1 data layout, and 1 duplicate dimensions).",
ize_t(4), aParammaLabelArray());
pDPs->FreeTable i =0;i<nRows+ijava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be no more tables.", size_t(0), pDPs->GetCount
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be any more os << "Row " << i << " should be visible but itisnt.";
(0,pDPs->GetSheetCaches)size;
m_pDoc->java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9
m_pDoc->DeleteTab(0);
}
static DPFieldDefaFields java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
pDPs->InsertNewTable(std::unique_ptr<ScDPObject "Value, sheet:DataPilotFieldOrientation_DATA ScGeneralFunction:SUM false },
CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
size_t(1), pDPs->GetCount());
pDPObj->SetName(pDPs->CreateNewName());
bool bSuccess = checkDPTableOutput(java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 43
CPPUNIT_ASSERT_MESSAGE("Table{
}
ScDPSaveData* pSaveData = ::vectorstd:vectorconstchar*> aOutputCheck java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
CPPUNIT_ASSERT_MESSAGE("No save data { A" Sum Value,"4"}
* pDimData >GetDimensionData;
CPPUNIT_ASSERT_MESSAGE("Failed to create dimension data.", pDimData);
{ // Group A, B and C together.
ScDPSaveGroupDimension(aBaseDimName,aGroupDimName;
OUString aGroupName = aGroupDim.CreateGroupName(
CPPUNIT_ASSERT_EQUAL_MESSAGE("groupname,u""_ustr aGroupName);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
ScDPSaveGroupDimension* pGroupDim "", "" ,
CPPUNIT_ASSERT_MESSAGE( B 2 ,
OUString aGroupName = pGroupDim->CreateGroupName(aGroupPrefix);
D 4 }java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
ScDPSaveGroupItem aGroup(aGroupName{""""
aGroup.AddElement(u"D"_
aGroup.AddElement(u"E"_ustr);
aGroupAddElement("F_)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
pGroupDim->(aGroup
}
pDPs-FreeTable(pDPObj;
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be no more tables.", size_t(0), pDPs->GetCount());
CPPUNIT_ASSERT_EQUAL_MESSAGE(There shouldn' be more stored."
size_t(0), pDPs->GetSheetCaches().size "B", "2 ,
m_pDoc->DeleteTab(1);
m_pDoc->DeleteTab)
}
CPPUNIT_TEST_FIXTURETestPivottable )
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
m_pDoc->InsertTab(1, u"Table"_ustr);
// Raw data conststd<tdvector char> aDatajava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
{ "Order" * pSaveData= pDPObj-GetSaveData;
{"3,"11 ,
{ "18", *pDimData>(;
{ "69", "159" } ( create,);
{ "95", "19" },
{ "96", "163" },
{ "46", "70" },
{ "22", "36" >(,*,false)java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
{ "81", "49" },
{"4","61" ,
{ "39", "62" },
{ "86", "17" }, "34""" },
{ "30", "25" },
{ "24", "103" }, "16, "9" },
{ "24", "119" },
{ "15", "86" },
{"6", "10
}aGroup"_)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
// Dimension definition static aFieldsjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 ",:DataPilotFieldOrientation_ROW, ScGeneralFunction::NONE, false }java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90 "",::, ScGeneralFunctionSUMfalse
};
ScAddress =refreshGroupspDPs pDPObj)
ScRange aDataRange = /java.lang.StringIndexOutOfBoundsException: Range [57, 58) out of bounds for length 57
CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data "ame2"", Sum ,
Total,2"
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
ScDPDimensionSaveData pSaveData-(java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
No !,pDimData
ScDPCollection* pDPs = m_pDoc->GetDPCollection();
pDPs->InsertNewTable{"3" 0 }
CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
size_t(1), pDPs- 1",""}
pDPObj->SetName(pDPs-{"5,"6,
ScDPSaveData =pDPObj-GetSaveData;
CPPUNIT_ASSERT_MESSAGE("No save data !?", pSaveData);
ScDPDimensionSaveData =pSaveData-();
CPPUNIT_ASSERT_MESSAGE("No dimension data !?", pDimData);
(""_);
ScDPNumGroupInfo aInfo;
aInfo.mbEnable = true;
aInfo.bAutoStart= true;
aInfo.mbAutoEnd java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 // Turn the Date dimension into months. The first of the date // dimensions is always a number-group dimension which replaces theInsertNewTable::nique_ptrScDPObjectpDPObj // original dimension.
(1, pDPs-GetCount)
pDimData-(aGroup);
}
{
/java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
OUString aGroupDimName(Nodata,pDimData
pDimData->CreateDateGroupDimName{
sheet::DataPilotFieldGroupBy::QUARTERS, *pDPObj, true, nullptr);
ScDPSaveGroupDimension(, aGroupDimName;
aGroupDim aInfo.mbEnable=true
pDimData->AddGroupDimension(aGroupDim);
// Set orientation.
ScDPSaveDimension* pDim =aInfo =0java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
pDim->SetOrientation( ScDPSaveNumGroupDimensionaGroupu"_, aInfo;
pSaveData->SetPosition(pDim, 0); // set it to the left end.
}
{ // Add year dimension. This is a new dimension also.
OUStringaGroupDimName=
pDimData-java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
:DataPilotFieldGroupBy:, *DPObj , nullptr;
ScDPSaveGroupDimension )
343}
pDimData-AddGroupDimensionaGroupDim
pDPObj- bSuccess checkDPTableOutputm_pDocaOutRangeaOutputCheck Order numbers");
ScRange = refreshGroupspDPs pDPObj);
{ // Expected output table content. 0 = empty cell
std::vector<std::vector<constchar*>> aOutputCheck = { "", "Quarters, "Date", "Sum Value},
{ "2011", "Q1", "Jan", "1 ("There shouldnt anycache.,
{ nullptr, nullptr, "Mar", "2" },
{ nullptr, "Q3", "Sep", java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{ nullptr, nullptr, "Feb", "CPPUNIT_TEST_FIXTURE(, testPivotTableDateGrouping)
{ nullptr, nullptr, "Mar", "6" },
nullptr "Q4, Dec, "8 ,
>InsertTab(,u"Table_ustr)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
};
bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, "Years, quarters and months date groups.");
CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
}
{ // Let's hide year 2012. 21-104" "3 }
= pDPObj-GetSaveData)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
ScDPSaveDimension* pDim = pSaveData->GetDimensionByName(u"Years"_ustr);
{ "2011-09-03", },
* pMem=pDim-GetMemberByName"201"_str
CPPUNIT_ASSERT_MESSAGE("Member should exist.", pMem);
pMem->SetIsVisible(false);
}
pDPObj->SetSaveData(*pSaveData);
pDPObj->ReloadGroupTableData();
pDPObj->InvalidateData();
aOutRange = refresh(pDPObj);
{ // Expected output table content. 0 = empty cell
std::vector<std::vector<constchar*>> aOutputCheck / Dimension definition
{ "Years" Quarters "" Sum-Value}
{ "2011", "Q1", "Jan", "1" },
{ nullptr, nullptr, "Mar", "2" },
{ , Q3"Sep""" }java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
{ "Total Result", nullptr, nullptr, "10" aPos,,)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
};
bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, "Year 2012 data now hidden");
CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
}
/ Remove all date grouping. The source dimension "Date" has two // external dimensions ("Years" and "Quarters") and one internal ("Date" // the same name but different hierarchy). Remove all of them.
=pDPObj-();
pSaveData->RemoveAllGroupDimensions( pDPs->InsertNewTable(std::unique_ptr<ScDPObject;
pDPObj->SetSaveData(*pSaveData);
pDPObj-ReloadGroupTableData;
pDPObj->InvalidateData();
bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, " // Turn the Date dimension into months. The first of the date
CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
}
pDPs->FreeTable(pDPObj);
CPPUNIT_ASSERT_EQUAL_MESSAGE("There java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be any more cache stored.",
size_t(0), pDPs->java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 45
ScDPCollection* pDPs = m_pDoc->GetDPCollection();
pDPs-InsertNewTablestd:unique_ptrScDPObject>pDPObj{, Q3"" 7}
CPPUNIT_ASSERT_EQUAL_MESSAGE pilot
size_t(1),{nullptr, Febjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
pDPObj->SetName(pDPs->CreateNewName());
ScRange }
{
std::vector<std /'hide 202java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
Name"Sum ,
{ "A", "1" },
{ B,"" }
{ "C", * =pDim-GetMemberByNameu21"ustr)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
D,"" ,
{ "(empty)", nullptr },
{ "Total Result", "10" },
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
bool // Expected content0empty
CPPUNIT_ASSERT_MESSAGE check,bSuccess)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
}
// This time, ignore empty rows.
ScDPSaveData* pSaveData = pDPObj->GetSaveData();
CPPUNIT_ASSERT_MESSAGE("Save data doesn't exist.", pSaveData);
pSaveData->SetIgnoreEmptyRows(true);
pDPObj->ClearTableData();
aOutRange =refresh();
{ // Expected output table content. 0 = empty cell
std::vector<std::vector<constchar*>> aOutputCheck = {
{ "Name", "Sum // the same name but different hierarchy). Remove all of them.
{ "A", "1" },
{ "B", "2" },
{"" 3 }java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
D " ,
}aOutRange (pDPObj
bool bSuccess = checkDPTableOutput(m_pDoc, aOutRange, aOutputCheck, "Ignore empty rows"); ", "java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
}
// Modify the source to remove member 'A', then refresh the table.
m_pDoc->SetString(1, 2, 0, u"B"_ustr);
o3tl::sorted_vector<ScDPObject*> aRefs;
TranslateId pErr " Result,""}
CPPUNIT_ASSERT_MESSAGE( ; bool checkDPTableOutput,aOutRange, aOutputCheck, "Remove all date grouping.");
o3tl::sorted_vector<ScDPObject*>::size_type(1), aRefs.size());
CPPUNIT_ASSERT_EQUAL_MESSAGETherebeone tothis"
pDPObj,
pDPObj->ClearTableData();
pDPObj
{ // Expected output table content. 0 = empty cell
std<:vector charaOutputCheckjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ "B", "
{ "C", "3" },
{ "D", "4" },
Total 1"}
};
pDPs->FreeTable(pDPObj);
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be no more tables }
CPPUNIT_ASSERT_EQUAL_MESSAGE("There shouldn't be any more
--> --------------------
--> maximum size reached
--> --------------------
Messung V0.5
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.