[Libreoffice-commits] core.git: sc/qa
Tamás Zolnai
tamas.zolnai at collabora.com
Sun Feb 12 21:38:37 UTC 2017
sc/qa/unit/ucalc.hxx | 6 +++
sc/qa/unit/ucalc_pivottable.cxx | 78 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 84 insertions(+)
New commits:
commit e5aa7a5b5753c57969fc2e17fb334781bb2a0481
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date: Sun Feb 12 19:10:00 2017 +0100
Pivot table median function test
Change-Id: I0a31733644aa6d4566566d0324d39aaf6b59b04f
Reviewed-on: https://gerrit.libreoffice.org/34179
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index f324748..7b3b8fe 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -325,6 +325,11 @@ public:
*/
void testPivotTableDPCollection();
+ /**
+ * Test pivot table median function
+ */
+ void testPivotTableMedianFunc();
+
void testCellCopy();
void testSheetCopy();
void testSheetMove();
@@ -627,6 +632,7 @@ public:
CPPUNIT_TEST(testPivotTableDocFunc);
CPPUNIT_TEST(testPivotTableRepeatItemLabels);
CPPUNIT_TEST(testPivotTableDPCollection);
+ CPPUNIT_TEST(testPivotTableMedianFunc);
CPPUNIT_TEST(testCellCopy);
CPPUNIT_TEST(testSheetCopy);
CPPUNIT_TEST(testSheetMove);
diff --git a/sc/qa/unit/ucalc_pivottable.cxx b/sc/qa/unit/ucalc_pivottable.cxx
index 28b475d..2c2cfb5 100644
--- a/sc/qa/unit/ucalc_pivottable.cxx
+++ b/sc/qa/unit/ucalc_pivottable.cxx
@@ -26,6 +26,7 @@
#include <com/sun/star/sheet/DataPilotFieldReferenceType.hpp>
#include <com/sun/star/sheet/DataPilotFieldReferenceItemType.hpp>
#include <com/sun/star/sheet/GeneralFunction.hpp>
+#include <com/sun/star/sheet/GeneralFunction2.hpp>
namespace {
@@ -2490,4 +2491,81 @@ void Test::testPivotTableDPCollection()
m_pDoc->DeleteTab(0);
}
+void Test::testPivotTableMedianFunc()
+{
+ m_pDoc->InsertTab(0, "Data");
+ m_pDoc->InsertTab(1, "Table");
+
+ // Raw data
+ const char* aData[][4] = {
+ { "Condition", "Day1Hit", "Day1Miss", "Day1FalseAlarm" },
+ { "False Memory", "7", "3", "0" },
+ { "Control", "10", "0", "1" },
+ { "False Memory", "9", "1", "0" },
+ { "Control", "9", "1", "2" },
+ { "False Memory", "7", "3", "3" },
+ { "Control", "10", "0", "0" },
+ { "False Memory", "9", "1", "1" },
+ { "Control", "6", "4", "2" },
+ { "False Memory", "8", "2", "1" },
+ { "Control", "7", "3", "3" },
+ { "False Memory", "9", "1", "1" },
+ { "Control", "10", "0", "0" },
+ { "False Memory", "10", "0", "0" },
+ { "Control", "10", "0", "0" },
+ { "False Memory", "10", "0", "0" },
+ { "Control", "9", "1", "1" },
+ { "False Memory", "10", "0", "0" },
+ { "Control", "10", "0", "0" },
+ };
+
+ // Dimension definition
+ DPFieldDef aFields[] = {
+ { "Condition", sheet::DataPilotFieldOrientation_ROW, 0, false },
+ { "Day1Hit", sheet::DataPilotFieldOrientation_DATA, sheet::GeneralFunction2::MEDIAN, false },
+ { "Day1Miss", sheet::DataPilotFieldOrientation_DATA, sheet::GeneralFunction2::MEDIAN, false },
+ { "Day1FalseAlarm", sheet::DataPilotFieldOrientation_DATA, sheet::GeneralFunction2::MEDIAN, false },
+ };
+
+ ScAddress aPos(1, 1, 0);
+ ScRange aDataRange = insertRangeData(m_pDoc, aPos, aData, SAL_N_ELEMENTS(aData));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("failed to insert range data at correct position", aPos, aDataRange.aStart);
+
+ std::unique_ptr<ScDPObject> pDPObj(createDPFromRange(
+ m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false));
+ CPPUNIT_ASSERT_MESSAGE("Failed to create pivot table object.", pDPObj);
+
+ // Create a new pivot table output.
+ ScDBDocFunc aFunc(getDocShell());
+ bool bSuccess = aFunc.CreatePivotTable(*pDPObj, false, true);
+ CPPUNIT_ASSERT_MESSAGE("Failed to create pivot table output via ScDBDocFunc.", bSuccess);
+ ScDPCollection* pDPs = m_pDoc->GetDPCollection();
+ CPPUNIT_ASSERT_MESSAGE("Failed to get pivot table collection.", pDPs);
+ ScDPObject* pDPObject = &(*pDPs)[0];
+ ScRange aOutRange = pDPObject->GetOutRange();
+ {
+ // Expected output table content. 0 = empty cell
+ const char* aOutputCheck[][4] = {
+ { "Condition", "Data", nullptr },
+ { "Control", "Median - Day1Hit", "10" },
+ { nullptr, "Median - Day1Miss", "0" },
+ { nullptr, "Median - Day1FalseAlarm", "1", },
+ { "False Memory", "Median - Day1Hit", "9" },
+ { nullptr, "Median - Day1Miss", "1" },
+ { nullptr, "Median - Day1FalseAlarm", "0", "0" },
+ { "Total Median - Day1Hit", nullptr, "9", nullptr },
+ { "Total Median - Day1Miss", nullptr, "1", nullptr },
+ { "Total Median - Day1FalseAlarm", nullptr, "0.5", nullptr }
+ };
+
+ bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "Pivot table created via ScDBDocFunc");
+ CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
+ }
+
+ bSuccess = aFunc.RemovePivotTable(*pDPObject, false, true);
+
+ m_pDoc->DeleteTab(1);
+ m_pDoc->DeleteTab(0);
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list