sc/qa/unit/data/xlsx/pivot-table/shared-dategroup.xlsx |binary sc/qa/unit/data/xlsx/pivot-table/shared-numgroup.xlsx |binary sc/qa/unit/subsequent_filters-test.cxx | 78 ++++++++++++++++- sc/source/core/data/dpobject.cxx | 3 4 files changed, 79 insertions(+), 2 deletions(-)
New commits: commit 7e1fd9aa86ab8d5e86f35df8615f438a3383af98 Author: Tamás Zolnai <[email protected]> Date: Thu Sep 29 05:24:22 2016 +0200 Pivot tables: Fix wrong group field number in cache getCache should not append new group fields to the cache, but use those which are stored in the dimension data. Change-Id: I2011b0d3a22644a86c31500d74469b9c4c641649 diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index 63bafd2..0b17d4c 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -2104,9 +2104,7 @@ void ScFiltersTest::testPivotTableSharedGroupXLSX() const ScDPCache* pCache = rSheetCaches.getExistingCache(ScRange(0,0,1,13,18,1)); CPPUNIT_ASSERT_MESSAGE("Pivot cache is expected for A1:N19 on the second sheet.", pCache); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(14), pCache->GetFieldCount()); - - // TODO : Look into this and find out why it fails. - // CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pCache->GetGroupFieldCount()); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pCache->GetGroupFieldCount()); xDocSh->DoClose(); } diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx index 8e6411b..d9b07a4 100644 --- a/sc/source/core/data/dpobject.cxx +++ b/sc/source/core/data/dpobject.cxx @@ -2952,7 +2952,10 @@ const ScDPCache* ScDPCollection::SheetCaches::getCache(const ScRange& rRange, co } if (pDimData) + { + (itCache->second)->ClearGroupFields(); pDimData->WriteToCache(*itCache->second); + } return itCache->second.get(); } commit 93098854c2d2b814a21161bd88071918cb382e87 Author: Tamás Zolnai <[email protected]> Date: Wed Oct 5 05:14:42 2016 +0200 Test XLSX import of number groups Change-Id: I12a8f301607240684676c5b50bdad0eea0923f97 diff --git a/sc/qa/unit/data/xlsx/pivot-table/shared-numgroup.xlsx b/sc/qa/unit/data/xlsx/pivot-table/shared-numgroup.xlsx new file mode 100644 index 0000000..36f36ef Binary files /dev/null and b/sc/qa/unit/data/xlsx/pivot-table/shared-numgroup.xlsx differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index 8c90ce2..63bafd2 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -202,6 +202,7 @@ public: void testGetPivotDataXLS(); void testPivotTableSharedGroupXLSX(); void testPivotTableSharedDateGroupXLSX(); + void testPivotTableSharedNumGroupXLSX(); void testFormulaDependency(); @@ -310,6 +311,7 @@ public: CPPUNIT_TEST(testGetPivotDataXLS); CPPUNIT_TEST(testPivotTableSharedGroupXLSX); CPPUNIT_TEST(testPivotTableSharedDateGroupXLSX); + CPPUNIT_TEST(testPivotTableSharedNumGroupXLSX); CPPUNIT_TEST(testRowHeightODS); CPPUNIT_TEST(testFormulaDependency); CPPUNIT_TEST(testRichTextContentODS); @@ -2146,6 +2148,41 @@ void ScFiltersTest::testPivotTableSharedDateGroupXLSX() xDocSh->DoClose(); } +void ScFiltersTest::testPivotTableSharedNumGroupXLSX() +{ + ScDocShellRef xDocSh = loadDoc("pivot-table/shared-numgroup.", FORMAT_XLSX); + CPPUNIT_ASSERT_MESSAGE("Failed to load file", xDocSh.Is()); + ScDocument& rDoc = xDocSh->GetDocument(); + + // Check whether right number groups are imported for both tables + // First table + CPPUNIT_ASSERT_EQUAL(OUString("32674-47673"), rDoc.GetString(ScAddress(0,4,1))); + CPPUNIT_ASSERT_EQUAL(OUString("47674-62673"), rDoc.GetString(ScAddress(0,5,1))); + CPPUNIT_ASSERT_EQUAL(OUString("62674-77673"), rDoc.GetString(ScAddress(0,6,1))); + CPPUNIT_ASSERT_EQUAL(OUString("77674-92673"), rDoc.GetString(ScAddress(0,7,1))); + CPPUNIT_ASSERT_EQUAL(OUString("92674-107673"), rDoc.GetString(ScAddress(0,8,1))); + + // Second table + CPPUNIT_ASSERT_EQUAL(OUString("32674-47673"), rDoc.GetString(ScAddress(5,4,1))); + CPPUNIT_ASSERT_EQUAL(OUString("47674-62673"), rDoc.GetString(ScAddress(5,5,1))); + CPPUNIT_ASSERT_EQUAL(OUString("62674-77673"), rDoc.GetString(ScAddress(5,6,1))); + CPPUNIT_ASSERT_EQUAL(OUString("77674-92673"), rDoc.GetString(ScAddress(5,7,1))); + CPPUNIT_ASSERT_EQUAL(OUString("92674-107673"), rDoc.GetString(ScAddress(5,8,1))); + + // There should be exactly 2 pivot tables and 1 cache. + ScDPCollection* pDPs = rDoc.GetDPCollection(); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pDPs->GetCount()); + + ScDPCollection::SheetCaches& rSheetCaches = pDPs->GetSheetCaches(); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), rSheetCaches.size()); + + const ScDPCache* pCache = rSheetCaches.getExistingCache(ScRange(0,0,0,9,24,0)); + CPPUNIT_ASSERT_MESSAGE("Pivot cache is expected for A1:J25 on the first sheet.", pCache); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(10), pCache->GetFieldCount()); + + xDocSh->DoClose(); +} + void ScFiltersTest::testRowHeightODS() { ScDocShellRef xDocSh = loadDoc("row-height-import.", FORMAT_ODS); commit f1a97fab957629d617b0b0ad44de5beb3d343f5c Author: Tamás Zolnai <[email protected]> Date: Wed Oct 5 05:12:41 2016 +0200 Test XLSX import of date groups Change-Id: I25cd7e946231a718ca1c0ed64fb5e32b2a81abe8 diff --git a/sc/qa/unit/data/xlsx/pivot-table/shared-dategroup.xlsx b/sc/qa/unit/data/xlsx/pivot-table/shared-dategroup.xlsx new file mode 100644 index 0000000..60cbd66 Binary files /dev/null and b/sc/qa/unit/data/xlsx/pivot-table/shared-dategroup.xlsx differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index f06e66e..8c90ce2 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -201,6 +201,7 @@ public: void testPivotTableSharedCacheGroupODS(); void testGetPivotDataXLS(); void testPivotTableSharedGroupXLSX(); + void testPivotTableSharedDateGroupXLSX(); void testFormulaDependency(); @@ -308,6 +309,7 @@ public: CPPUNIT_TEST(testPivotTableSharedCacheGroupODS); CPPUNIT_TEST(testGetPivotDataXLS); CPPUNIT_TEST(testPivotTableSharedGroupXLSX); + CPPUNIT_TEST(testPivotTableSharedDateGroupXLSX); CPPUNIT_TEST(testRowHeightODS); CPPUNIT_TEST(testFormulaDependency); CPPUNIT_TEST(testRichTextContentODS); @@ -2107,6 +2109,43 @@ void ScFiltersTest::testPivotTableSharedGroupXLSX() xDocSh->DoClose(); } +void ScFiltersTest::testPivotTableSharedDateGroupXLSX() +{ + ScDocShellRef xDocSh = loadDoc("pivot-table/shared-dategroup.", FORMAT_XLSX); + CPPUNIT_ASSERT_MESSAGE("Failed to load file", xDocSh.Is()); + ScDocument& rDoc = xDocSh->GetDocument(); + + // Check whether right date labels are imported for both tables + // First table + CPPUNIT_ASSERT_EQUAL(OUString("1965"), rDoc.GetString(ScAddress(0,4,1))); + CPPUNIT_ASSERT_EQUAL(OUString("1989"), rDoc.GetString(ScAddress(0,5,1))); + CPPUNIT_ASSERT_EQUAL(OUString("2000"), rDoc.GetString(ScAddress(0,6,1))); + CPPUNIT_ASSERT_EQUAL(OUString("2004"), rDoc.GetString(ScAddress(0,7,1))); + // TODO: check why this fails with 2005 + // CPPUNIT_ASSERT_EQUAL(OUString("2007"), rDoc.GetString(ScAddress(0,8,1))); + + // Second table + CPPUNIT_ASSERT_EQUAL(OUString("1965"), rDoc.GetString(ScAddress(5,4,1))); + CPPUNIT_ASSERT_EQUAL(OUString("1989"), rDoc.GetString(ScAddress(5,5,1))); + CPPUNIT_ASSERT_EQUAL(OUString("2000"), rDoc.GetString(ScAddress(5,6,1))); + CPPUNIT_ASSERT_EQUAL(OUString("2004"), rDoc.GetString(ScAddress(5,7,1))); + // TODO: check why this fails with 2005 + // CPPUNIT_ASSERT_EQUAL(OUString("2007"), rDoc.GetString(ScAddress(5,8,1))); + + // There should be exactly 2 pivot tables and 1 cache. + ScDPCollection* pDPs = rDoc.GetDPCollection(); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pDPs->GetCount()); + + ScDPCollection::SheetCaches& rSheetCaches = pDPs->GetSheetCaches(); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), rSheetCaches.size()); + + const ScDPCache* pCache = rSheetCaches.getExistingCache(ScRange(0,0,0,9,24,0)); + CPPUNIT_ASSERT_MESSAGE("Pivot cache is expected for A1:J25 on the first sheet.", pCache); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(10), pCache->GetFieldCount()); + + xDocSh->DoClose(); +} + void ScFiltersTest::testRowHeightODS() { ScDocShellRef xDocSh = loadDoc("row-height-import.", FORMAT_ODS);
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
