[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sc/qa sc/source vcl/source
sc/qa/uitest/autofilter/autofilter.py | 28 sc/source/ui/view/gridwin.cxx | 19 --- vcl/source/treelist/uiobject.cxx |1 + 3 files changed, 41 insertions(+), 7 deletions(-) New commits: commit 40927b3792450142966cc7b5137ec6f084680d30 Author: Xisco Fauli AuthorDate: Thu Sep 24 21:16:05 2020 +0200 Commit: Thorsten Behrens CommitDate: Sun Oct 4 11:44:26 2020 +0200 tdf#134351: do not apply autofilter if all entries are selected Change-Id: I33cdfe07cc53b579bbe16486f302daf7bd3da841 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103352 Tested-by: Jenkins Reviewed-by: Xisco Fauli Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103388 Reviewed-by: Thorsten Behrens diff --git a/sc/qa/uitest/autofilter/autofilter.py b/sc/qa/uitest/autofilter/autofilter.py index 57504e66e8e9..e1aea9c1e303 100644 --- a/sc/qa/uitest/autofilter/autofilter.py +++ b/sc/qa/uitest/autofilter/autofilter.py @@ -8,6 +8,7 @@ from uitest.framework import UITestCase from uitest.path import get_srcdir_url +from uitest.uihelper.common import get_state_as_dict from libreoffice.uno.propertyvalue import mkPropertyValues from libreoffice.calc.document import get_row @@ -70,4 +71,31 @@ class AutofilterTest(UITestCase): self.assertTrue(is_row_hidden(doc, 3)) self.assertFalse(is_row_hidden(doc, 4)) +def test_tdf134351(self): +doc = self.ui_test.load_file(get_url_for_data_file("autofilter.ods")) + +xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window") +xGridWin.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"})) + +xFloatWindow = self.xUITest.getFloatWindow() +xCheckListMenu = xFloatWindow.getChild("check_list_menu") + +xTreeList = xCheckListMenu.getChild("check_list_box") + +self.assertEqual(2, len(xTreeList.getChildren())) + self.assertTrue(get_state_as_dict(xTreeList.getChild('0'))['IsSelected']) + self.assertTrue(get_state_as_dict(xTreeList.getChild('1'))['IsSelected']) + +xOkBtn = xFloatWindow.getChild("ok") +xOkBtn.executeAction("CLICK", tuple()) + +self.assertFalse(is_row_hidden(doc, 0)) +# Without the fix in place, this test would have failed here +self.assertFalse(is_row_hidden(doc, 1)) +self.assertFalse(is_row_hidden(doc, 2)) +self.assertFalse(is_row_hidden(doc, 3)) +self.assertFalse(is_row_hidden(doc, 4)) + +self.ui_test.close_doc() + # vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 0cf3171679cd..6390343c42fe 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -813,13 +813,18 @@ void ScGridWindow::UpdateAutoFilterFromMenu(AutoFilterMode eMode) if (aResult == aSaveAutoFilterResult) { SAL_INFO("sc.ui", "Apply autofilter to data when entries are the same"); -// Apply autofilter to data -ScQueryEntry* pEntry = aParam.FindEntryByField(rPos.Col(), true); -pEntry->bDoQuery = true; -pEntry->nField = rPos.Col(); -pEntry->eConnect = SC_AND; -pEntry->eOp = SC_EQUAL; -pViewData->GetView()->Query(aParam, nullptr, true); + +if (!mpAutoFilterPopup->isAllSelected()) +{ +// Apply autofilter to data +ScQueryEntry* pEntry = aParam.FindEntryByField(rPos.Col(), true); +pEntry->bDoQuery = true; +pEntry->nField = rPos.Col(); +pEntry->eConnect = SC_AND; +pEntry->eOp = SC_EQUAL; +pViewData->GetView()->Query(aParam, nullptr, true); +} + return; } } diff --git a/vcl/source/treelist/uiobject.cxx b/vcl/source/treelist/uiobject.cxx index 2478ab8786df..a2f18abee4b9 100644 --- a/vcl/source/treelist/uiobject.cxx +++ b/vcl/source/treelist/uiobject.cxx @@ -106,6 +106,7 @@ StringMap TreeListEntryUIObject::get_state() aMap["Text"] = mxTreeList->GetEntryText(mpEntry); aMap["Children"] = OUString::number(mxTreeList->GetLevelChildCount(mpEntry)); aMap["VisibleChildCount"] = OUString::number(mxTreeList->GetVisibleChildCount(mpEntry)); +aMap["IsSelected"] = OUString::boolean(mxTreeList->IsSelected(mpEntry)); return aMap; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sc/qa sc/source
sc/qa/unit/functions_test.cxx|4 sc/source/core/tool/interpr8.cxx |2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) New commits: commit 69b287731c1c4693ab9d2ed696e829a15f01071d Author: Caolán McNamara AuthorDate: Thu Sep 3 11:51:41 2020 +0100 Commit: Miklos Vajna CommitDate: Tue Sep 8 17:08:02 2020 +0200 intermittent forecast.ets.add.fods failure valgrinding the forecast.ets.add.fods failure gives... a) mnSmplInPrd is 9 b) ScETSForecastCalculation::prefillPerIdx:476 fills mpPerIdx to index 8 with values. c) ScETSForecastCalculation::refill:791 (the bAdditive branch) due to nIdx = ( i > mnSmplInPrd ? i - mnSmplInPrd : i ) with i of 9 gives nIdx of 9 and uninit mpPerIdx[9] is used in the calculation. d) At line 799 (the !bAdditive branch) due to nIdx = ( i >= mnSmplInPrd ? i - mnSmplInPrd : i ) the nIdx used would be 0 not 9 under the same circumstances extending the initialization of prefillPerIdx to zeroing out the next index gives the same results as we usually get and test passes without a need to change it while avoiding the use of an uninitialized value. Change-Id: Ib4629b28ecf2389c0c7611137b756d4d2d9fd700 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101997 Tested-by: Caolán McNamara Reviewed-by: Caolán McNamara (cherry picked from commit e3545d491e2a2c4ff609a63385994f0c8d388edf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101961 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/sc/qa/unit/functions_test.cxx b/sc/qa/unit/functions_test.cxx index 1a48c03432d9..16e0a530a5e5 100644 --- a/sc/qa/unit/functions_test.cxx +++ b/sc/qa/unit/functions_test.cxx @@ -40,10 +40,6 @@ bool FunctionsTest::load(const OUString& rFilter, const OUString& rURL, ScDocument& rDoc = xDocShRef->GetDocument(); -#ifdef __APPLE__ -// FIXME tends to fail a lot -if (!rURL.endsWith("forecast.ets.add.fods")) -#endif CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, rDoc.GetValue(1, 2, 0), 1e-14); xDocShRef->DoClose(); diff --git a/sc/source/core/tool/interpr8.cxx b/sc/source/core/tool/interpr8.cxx index 92ea9ab1ac11..d380a057176b 100644 --- a/sc/source/core/tool/interpr8.cxx +++ b/sc/source/core/tool/interpr8.cxx @@ -475,6 +475,8 @@ bool ScETSForecastCalculation::prefillPerIdx() } mpPerIdx[ j ] = fI / nPeriods; } +if (mnSmplInPrd < mnCount) +mpPerIdx[mnSmplInPrd] = 0.0; } return true; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sc/qa sc/source
sc/qa/unit/data/xlsx/tdf134817_HeaderFooterTextWith2Section.xlsx |binary sc/qa/unit/subsequent_export-test.cxx| 20 ++ sc/source/filter/excel/xehelper.cxx |2 - 3 files changed, 21 insertions(+), 1 deletion(-) New commits: commit ceb2282e392dbe90379a893b2282d9d5beae89ed Author: Attila Szűcs AuthorDate: Fri Jul 17 09:21:45 2020 +0200 Commit: Xisco Fauli CommitDate: Tue Aug 4 12:16:42 2020 +0200 tdf#134817 XLSX export: fix partially lost header/footer When header/footer text contain text portions with different font setting, only the last text portion was exported. Co-authored-by: Tibor Nagy (NISZ) Change-Id: Id4cba2b9188459cdaa0ade30c2217d8f59fe6316 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98938 Tested-by: László Németh Reviewed-by: László Németh Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99788 Tested-by: Jenkins Reviewed-by: Attila Szűcs diff --git a/sc/qa/unit/data/xlsx/tdf134817_HeaderFooterTextWith2Section.xlsx b/sc/qa/unit/data/xlsx/tdf134817_HeaderFooterTextWith2Section.xlsx new file mode 100644 index ..224ac8d18429 Binary files /dev/null and b/sc/qa/unit/data/xlsx/tdf134817_HeaderFooterTextWith2Section.xlsx differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 096c95e0f575..d74d4d63d0ec 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -249,6 +249,7 @@ public: void testTdf131372(); void testTdf122331(); void testTdf83779(); +void testTdf134817_HeaderFooterTextWith2SectionXLSX(); CPPUNIT_TEST_SUITE(ScExportTest); CPPUNIT_TEST(test); @@ -396,6 +397,7 @@ public: CPPUNIT_TEST(testTdf131372); CPPUNIT_TEST(testTdf122331); CPPUNIT_TEST(testTdf83779); +CPPUNIT_TEST(testTdf134817_HeaderFooterTextWith2SectionXLSX); CPPUNIT_TEST_SUITE_END(); @@ -5081,6 +5083,24 @@ void ScExportTest::testTdf83779() xShell->DoClose(); } +void ScExportTest::testTdf134817_HeaderFooterTextWith2SectionXLSX() +{ +// Header/footer text with multiple selection should be exported, and imported properly +ScDocShellRef xShell = loadDoc("tdf134817_HeaderFooterTextWith2Section.", FORMAT_XLSX); +CPPUNIT_ASSERT(xShell.is()); + +ScDocShellRef xDocSh = saveAndReload(&(*xShell), FORMAT_XLSX); +CPPUNIT_ASSERT(xDocSh.is()); + +xmlDocUniquePtr pDoc = XPathHelper::parseExport2(*this, *xDocSh, m_xSFactory, "xl/worksheets/sheet1.xml", FORMAT_XLSX); +CPPUNIT_ASSERT(pDoc); + +assertXPathContent(pDoc, "/x:worksheet/x:headerFooter/x:oddHeader", "&\"Abadi,Regular\"&11aaa&\"Bembo,Regular\"&20bbb"); +assertXPathContent(pDoc, "/x:worksheet/x:headerFooter/x:oddFooter", "&\"Cambria,Regular\"&14camb&\"Dante,Regular\"&18dant"); + +xDocSh->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx index 6584c314aae5..88dcabe1b58f 100644 --- a/sc/source/filter/excel/xehelper.cxx +++ b/sc/source/filter/excel/xehelper.cxx @@ -739,7 +739,7 @@ void XclExpHFConverter::AppendPortion( const EditTextObject* pTextObj, sal_Unico (aFontData.mbItalic != aNewData.mbItalic); if( bNewFont || (bNewStyle && pFontList) ) { -aParaText = "&\"" + aNewData.maName; +aParaText.append("&\"").append(aNewData.maName); if( pFontList ) { FontMetric aFontMetric( pFontList->Get( ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sc/qa sc/source
sc/qa/unit/uicalc/uicalc.cxx |8 - sc/source/core/tool/interpr1.cxx | 58 ++- 2 files changed, 40 insertions(+), 26 deletions(-) New commits: commit 5eb23da4c4a6ba6c35142918d0313432365b8e51 Author: Eike Rathke AuthorDate: Tue Jun 30 23:08:31 2020 +0200 Commit: Eike Rathke CommitDate: Wed Jul 1 12:41:44 2020 +0200 Resolves: tdf#85551 OFFSET() NewWidth and NewHeight must be >0 if given This also makes it necessary to adjust a test that reused the bug document for a different scenario but checked the result. Change-Id: I80136747445d5029aa5c894270448f002c567e3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97553 Reviewed-by: Eike Rathke Tested-by: Jenkins (cherry picked from commit f31d8d61859bb375c99419ff176adca27a9197b6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97509 diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx index 694644b77df3..b68c5e6cd941 100644 --- a/sc/qa/unit/uicalc/uicalc.cxx +++ b/sc/qa/unit/uicalc/uicalc.cxx @@ -123,14 +123,18 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124816) ScDocument* pDoc = pModelObj->GetDocument(); CPPUNIT_ASSERT(pDoc); +// The actual result is completely unrelated to this test and behaviour of +// OFFSET() was changed as of tdf#85551 and here result of that test +// document is now Err:502 instead of 0. +const OUString aExpectedResult("Err:502"); checkCurrentCell(3, 9); -CPPUNIT_ASSERT_EQUAL(OUString("0"), pDoc->GetString(ScAddress(3, 9, 0))); +CPPUNIT_ASSERT_EQUAL(aExpectedResult, pDoc->GetString(ScAddress(3, 9, 0))); //Without the fix, it would crash dispatchCommand(mxComponent, ".uno:InsertRowsBefore", {}); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(3, 9, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); -CPPUNIT_ASSERT_EQUAL(OUString("0"), pDoc->GetString(ScAddress(3, 9, 0))); +CPPUNIT_ASSERT_EQUAL(aExpectedResult, pDoc->GetString(ScAddress(3, 9, 0))); } CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124815) diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index d4f134fa0b19..8af767c9b00e 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -8319,35 +8319,53 @@ void ScInterpreter::ScOffset() sal_uInt8 nParamCount = GetByte(); if ( MustHaveParamCount( nParamCount, 3, 5 ) ) { -sal_Int32 nColNew = -1, nRowNew = -1, nColPlus, nRowPlus; +bool bNewWidth = false; +bool bNewHeight = false; +sal_Int32 nColNew = 1, nRowNew = 1; if (nParamCount == 5) -nColNew = GetInt32(); +{ +if (IsMissing()) +PopError(); +else +{ +nColNew = GetInt32(); +bNewWidth = true; +} +} if (nParamCount >= 4) -nRowNew = GetInt32WithDefault(-1); -nColPlus = GetInt32(); -nRowPlus = GetInt32(); +{ +if (IsMissing()) +PopError(); +else +{ +nRowNew = GetInt32(); +bNewHeight = true; +} +} +sal_Int32 nColPlus = GetInt32(); +sal_Int32 nRowPlus = GetInt32(); if (nGlobalError != FormulaError::NONE) { PushError( nGlobalError); return; } +if (nColNew <= 0 || nRowNew <= 0) +{ +PushIllegalArgument(); +return; +} SCCOL nCol1(0); SCROW nRow1(0); SCTAB nTab1(0); SCCOL nCol2(0); SCROW nRow2(0); SCTAB nTab2(0); -if (nColNew == 0 || nRowNew == 0) -{ -PushIllegalArgument(); -return; -} switch (GetStackType()) { case svSingleRef: { PopSingleRef(nCol1, nRow1, nTab1); -if (nParamCount == 3 || (nColNew < 0 && nRowNew < 0)) +if (!bNewWidth && !bNewHeight) { nCol1 = static_cast(static_cast(nCol1) + nColPlus); nRow1 = static_cast(static_cast(nRow1) + nRowPlus); @@ -8358,10 +8376,6 @@ void ScInterpreter::ScOffset() } else { -if (nColNew < 0) -nColNew = 1; -if (nRowNew < 0) -nRowNew = 1; nCol1 = static_cast(static_cast(nCol1)+nColPlus); nRow1 = static_cast(static_cast(nRow1)+nRowPlus); nCol2 = static_cast(static_cast(nCol1)+nColNew-1); @@ -8385,7 +8399,7 @@ void ScInterpreter::ScOffset() nRow1 = aAbsRef.Row(); nTab1 = aAbsRef.Tab(); -if (nParamCount == 3 || (nColNew < 0 && nRowNew < 0)) +if (!bNewWidth && !bNewHeight) { nCol1 =
[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sc/qa sc/source
sc/qa/unit/data/xlsx/testShapeRotationImport.xlsx |binary sc/qa/unit/subsequent_filters-test.cxx| 49 ++ sc/source/filter/oox/drawingfragment.cxx | 37 ++-- 3 files changed, 82 insertions(+), 4 deletions(-) New commits: commit d24e590cab4c948f19d4eaa00eaec81364c5b8ee Author: Szabolcs Toth AuthorDate: Thu May 21 09:06:08 2020 +0200 Commit: Adolfo Jayme Barrientos CommitDate: Sun May 31 22:34:55 2020 +0200 tdf#83593 XLSX DrawingML shape import: fix missing rotation caused by broken import of xdr:twoCellAnchor. Co-authored-by: Balázs Regényi Change-Id: I3f382c3c9b2428e825a3e6d954c65356942f9158 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94611 Tested-by: László Németh Reviewed-by: László Németh (cherry picked from commit 130e6a3f4493b987a7d0b177cc84d65219b47d13) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95192 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos diff --git a/sc/qa/unit/data/xlsx/testShapeRotationImport.xlsx b/sc/qa/unit/data/xlsx/testShapeRotationImport.xlsx new file mode 100644 index ..125a3ccaabd0 Binary files /dev/null and b/sc/qa/unit/data/xlsx/testShapeRotationImport.xlsx differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index e56ebd256eb1..3292058ed979 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -77,6 +77,7 @@ #include "helper/qahelper.hxx" #include "helper/shared_test_impl.hxx" +#include namespace com::sun::star::frame { class XModel; } @@ -257,6 +258,7 @@ public: void testAutoheight2Rows(); void testXLSDefColWidth(); void testPreviewMissingObjLink(); +void testShapeRotationImport(); CPPUNIT_TEST_SUITE(ScFiltersTest); CPPUNIT_TEST(testBooleanFormatXLSX); @@ -405,6 +407,7 @@ public: CPPUNIT_TEST(testAutoheight2Rows); CPPUNIT_TEST(testXLSDefColWidth); CPPUNIT_TEST(testPreviewMissingObjLink); +CPPUNIT_TEST(testShapeRotationImport); CPPUNIT_TEST_SUITE_END(); @@ -4445,6 +4448,52 @@ void ScFiltersTest::testPreviewMissingObjLink() xDocSh->DoClose(); } +void ScFiltersTest::testShapeRotationImport() +{ +// tdf#83593 Incorrectly calculated bounding rectangles caused shapes to appear as if there +// were extra or missing rotations. Hence, we check the sizes of these rectangles. +ScDocShellRef xDocSh = loadDoc("testShapeRotationImport.", FORMAT_XLSX); +CPPUNIT_ASSERT_MESSAGE("Failed to load testShapeRotationImport.xlsx", xDocSh.is()); +uno::Reference< drawing::XDrawPagesSupplier > xDoc(xDocSh->GetModel(), uno::UNO_QUERY_THROW); +uno::Reference< drawing::XDrawPage > xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW); + +// The expected values are in the map below. Note that some of the angles are outside of the set which contains +// the value of the wrong angles. This is to check the border cases and one value on both sides. +std::map> aExpectedValues +{ +{ 4400, { { "x", 6832 }, { "y", 36893 }, { "width", 8898 }, { "height", 1163 } } }, +{ 4500, { { "x", 4490 }, { "y", 36400 }, { "width", 8898 }, { "height", 1163 } } }, +{ 4600, { { "x", 1673 }, { "y", 36270 }, { "width", 8862 }, { "height", 1144 } } }, +{ 13400, { { "x", 13762 }, { "y", 28403 }, { "width", 8863 }, { "height", 1194 } } }, +{ 13500, { { "x", 10817 }, { "y", 27951 }, { "width", 8863 }, { "height", 1170 } } }, +{ 13600, { { "x", 8449 }, { "y", 28336 }, { "width", 8897 }, { "height", 1164 } } }, +{ 22400, { { "x", 14948 }, { "y", 12978 }, { "width", 8898 }, { "height", 1164 } } }, +{ 22500, { { "x", 11765 }, { "y", 12834 }, { "width", 8898 }, { "height", 1164 } } }, +{ 22600, { { "x", 8253 }, { "y", 12919 }, { "width", 8863 }, { "height", 1171 } } }, +{ 31400, { { "x", 8099 }, { "y", 1160 }, { "width", 9815 }, { "height", 1171 } } }, +{ 31500, { { "x", 4427 }, { "y", 1274 }, { "width", 10238 }, { "height", 1171 } } }, +{ 31600, { { "x", 1964 }, { "y", 1878 }, { "width", 10307 }, { "height", 1164 } } }, +}; + +for (sal_Int32 ind = 0; ind < 12; ++ind) +{ +uno::Reference< drawing::XShape > xShape(xPage->getByIndex(ind), uno::UNO_QUERY_THROW); + +uno::Reference< beans::XPropertySet > xShapeProperties(xShape, uno::UNO_QUERY); +uno::Any nRotProp = xShapeProperties->getPropertyValue("RotateAngle"); +sal_Int32 nRot = nRotProp.get(); + +awt::Point aPosition = xShape->getPosition(); +awt::Size aSize = xShape->getSize(); + +CPPUNIT_ASSERT(aExpectedValues.find(nRot) != aExpectedValues.end()); +CPPUNIT_ASSERT_EQUAL(aExpectedValues[nRot]["x"], aPosition.X); +CPPUNIT_ASSERT_EQUAL(aExpectedValues[nRot]["y"],