sc/qa/unit/rangelst_test.cxx | 73 +++++++++++++++++++++++++++++++++++---- sc/source/core/tool/rangelst.cxx | 18 ++++----- 2 files changed, 76 insertions(+), 15 deletions(-)
New commits: commit 01e63352677242ca6915cc37601c4f8b0a49881c Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 18 06:18:11 2012 +0200 and another test for ScRangeList::DeleteArea Change-Id: I1fa81b32f9ffc70769876becbcf213796cab405b diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx index a2289b6..b447dc1 100644 --- a/sc/qa/unit/rangelst_test.cxx +++ b/sc/qa/unit/rangelst_test.cxx @@ -88,6 +88,21 @@ void Test::testDeleteArea_4Ranges() void Test::testDeleteArea_3Ranges() { ScRangeList aList(ScRange(1,1,0,6,6,0)); + aList.DeleteArea(3,3,0,8,4,0); + + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.size()); + for(SCCOL nCol = 1; nCol <= 6; ++nCol) + { + for(SCROW nRow = 1; nRow <= 6; ++nRow) + { + if((nRow == 3 || nRow == 4) && (nCol >= 3)) + CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0))); + else + CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0))); + } + } + + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(28), aList.GetCellCount()); } void Test::testDeleteArea_2Ranges() commit 5f0b2c26ce6854463577058ee1d84fefd1889b2c Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 18 04:58:50 2012 +0200 more tests for ScRangeList::DeleteArea Change-Id: I1ba3278d8c74c62f28f2b89bec35bc33be477094 diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx index 3d6259c..a2289b6 100644 --- a/sc/qa/unit/rangelst_test.cxx +++ b/sc/qa/unit/rangelst_test.cxx @@ -21,8 +21,10 @@ public: virtual void tearDown(); void testDeleteArea_4Ranges(); + void testDeleteArea_3Ranges(); void testDeleteArea_2Ranges(); void testDeleteArea_2Ranges_Case2(); + void testDeleteArea_1Range(); void testDeleteArea_0Ranges(); void testUpdateReference_DeleteRow(); @@ -30,8 +32,10 @@ public: CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(testDeleteArea_4Ranges); + CPPUNIT_TEST(testDeleteArea_3Ranges); CPPUNIT_TEST(testDeleteArea_2Ranges); CPPUNIT_TEST(testDeleteArea_2Ranges_Case2); + CPPUNIT_TEST(testDeleteArea_1Range); CPPUNIT_TEST(testDeleteArea_0Ranges); CPPUNIT_TEST(testUpdateReference_DeleteRow); CPPUNIT_TEST(testUpdateReference_DeleteCol); @@ -81,6 +85,11 @@ void Test::testDeleteArea_4Ranges() } } +void Test::testDeleteArea_3Ranges() +{ + ScRangeList aList(ScRange(1,1,0,6,6,0)); +} + void Test::testDeleteArea_2Ranges() { ScRangeList aList(ScRange(0,0,0,5,5,5)); @@ -118,6 +127,20 @@ void Test::testDeleteArea_2Ranges_Case2() CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), aList.GetCellCount()); } +void Test::testDeleteArea_1Range() +{ + ScRangeList aList(ScRange(1,1,0,3,3,0)); + aList.DeleteArea(1,1,0,2,3,0); + + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); + + for(SCROW nRow = 1; nRow <= 3; ++nRow) + { + CPPUNIT_ASSERT(aList.In(ScRange(3,nRow,0))); + } + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.GetCellCount()); +} + void Test::testDeleteArea_0Ranges() { ScRangeList aList(ScRange(1,1,0,3,3,0)); commit 59bdd7aef895256c34f81fb77767cb4972d596ae Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 18 02:25:19 2012 +0200 use the typedefs in ScRangeList Change-Id: If90c068eb4db26203612a54aa3536118650bfb43 diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx index c6b3bfc..7a874e8 100644 --- a/sc/source/core/tool/rangelst.cxx +++ b/sc/source/core/tool/rangelst.cxx @@ -434,7 +434,7 @@ bool ScRangeList::UpdateReference( } } - vector<ScRange*>::iterator itr = maRanges.begin(), itrEnd = maRanges.end(); + iterator itr = maRanges.begin(), itrEnd = maRanges.end(); for (; itr != itrEnd; ++itr) { ScRange* pR = *itr; @@ -781,14 +781,14 @@ void ScRangeList::DeleteArea( SCCOL nCol1, SCROW nRow1, SCTAB nTab1, const ScRange* ScRangeList::Find( const ScAddress& rAdr ) const { - vector<ScRange*>::const_iterator itr = find_if( + const_iterator itr = find_if( maRanges.begin(), maRanges.end(), FindEnclosingRange<ScAddress>(rAdr)); return itr == maRanges.end() ? NULL : *itr; } ScRange* ScRangeList::Find( const ScAddress& rAdr ) { - vector<ScRange*>::iterator itr = find_if( + iterator itr = find_if( maRanges.begin(), maRanges.end(), FindEnclosingRange<ScAddress>(rAdr)); return itr == maRanges.end() ? NULL : *itr; } @@ -824,16 +824,16 @@ void ScRangeList::Append( const ScRange& rRange ) bool ScRangeList::Intersects( const ScRange& rRange ) const { - vector<ScRange*>::const_iterator itrEnd = maRanges.end(); - vector<ScRange*>::const_iterator itr = + const_iterator itrEnd = maRanges.end(); + const_iterator itr = find_if(maRanges.begin(), itrEnd, FindIntersectingRange<ScRange>(rRange)); return itr != itrEnd; } bool ScRangeList::In( const ScRange& rRange ) const { - vector<ScRange*>::const_iterator itrEnd = maRanges.end(); - vector<ScRange*>::const_iterator itr = + const_iterator itrEnd = maRanges.end(); + const_iterator itr = find_if(maRanges.begin(), itrEnd, FindEnclosingRange<ScRange>(rRange)); return itr != itrEnd; } @@ -851,7 +851,7 @@ ScRange* ScRangeList::Remove(size_t nPos) // Out-of-bound condition. Bail out. return NULL; - vector<ScRange*>::iterator itr = maRanges.begin(); + iterator itr = maRanges.begin(); advance(itr, nPos); ScRange* p = *itr; maRanges.erase(itr); @@ -869,7 +869,7 @@ ScRange ScRangeList::Combine() const if (maRanges.empty()) return ScRange(); - vector<ScRange*>::const_iterator itr = maRanges.begin(), itrEnd = maRanges.end(); + const_iterator itr = maRanges.begin(), itrEnd = maRanges.end(); ScRange aRet = **itr; ++itr; for (; itr != itrEnd; ++itr) commit f8f449c581c252a8ef5eb02ca2502c7abdd8317d Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 17 22:02:57 2012 +0200 it is better to use ScRangeList::In than Intersects Change-Id: Idb9839c827729edaa72442f78fbd2fd6561d95c8 diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx index f2eea24..3d6259c 100644 --- a/sc/qa/unit/rangelst_test.cxx +++ b/sc/qa/unit/rangelst_test.cxx @@ -74,9 +74,9 @@ void Test::testDeleteArea_4Ranges() for(SCROW nRow = 0; nRow <= 5; ++nRow) { if((nCol == 2 || nCol == 3) && ( nRow == 2 || nRow == 3)) - CPPUNIT_ASSERT(!aList.Intersects(ScRange(nCol, nRow, 0))); + CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0))); else - CPPUNIT_ASSERT(aList.Intersects(ScRange(nCol, nRow, 0))); + CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0))); } } } @@ -96,9 +96,9 @@ void Test::testDeleteArea_2Ranges() for(SCROW nRow = 0; nRow <= 5; ++nRow) { if(nCol>=4 && nRow >= 4) - CPPUNIT_ASSERT(!aList.Intersects(ScRange(nCol, nRow, 0))); + CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0))); else - CPPUNIT_ASSERT(aList.Intersects(ScRange(nCol, nRow, 0))); + CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0))); } } } @@ -111,9 +111,9 @@ void Test::testDeleteArea_2Ranges_Case2() for(SCROW nRow = 1; nRow <= 5; ++nRow) { if(nRow == 3) - CPPUNIT_ASSERT(!aList.Intersects(ScRange(1,3,0))); + CPPUNIT_ASSERT(!aList.In(ScRange(1,3,0))); else - CPPUNIT_ASSERT(aList.Intersects(ScRange(1,nRow,0))); + CPPUNIT_ASSERT(aList.In(ScRange(1,nRow,0))); } CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), aList.GetCellCount()); } @@ -141,9 +141,9 @@ void Test::testUpdateReference_DeleteRow() { for(SCROW nRow = 1; nRow <= 3; ++nRow) { - CPPUNIT_ASSERT(aList.Intersects(ScRange(nCol, nRow, 0))); + CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0))); } - CPPUNIT_ASSERT(!aList.Intersects(ScRange(nCol, 4, 0))); + CPPUNIT_ASSERT(!aList.In(ScRange(nCol, 4, 0))); } CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), aList.GetCellCount()); } @@ -158,9 +158,9 @@ void Test::testUpdateReference_DeleteCol() { for(SCCOL nCol = 1; nCol <= 3; ++nCol) { - CPPUNIT_ASSERT(aList.Intersects(ScRange(nCol, nRow, 0))); + CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0))); } - CPPUNIT_ASSERT(!aList.Intersects(ScRange(4, nRow, 0))); + CPPUNIT_ASSERT(!aList.In(ScRange(4, nRow, 0))); } CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), aList.GetCellCount()); } commit 011060da4d3532770bfc063dd5034f402a194f30 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 17 21:46:28 2012 +0200 add tests for ScRangeList::UpdateReference Change-Id: I0461b7a23b4743f6e73e6c771b1b2119ad1bce15 diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx index 41d4590..f2eea24 100644 --- a/sc/qa/unit/rangelst_test.cxx +++ b/sc/qa/unit/rangelst_test.cxx @@ -33,6 +33,8 @@ public: CPPUNIT_TEST(testDeleteArea_2Ranges); CPPUNIT_TEST(testDeleteArea_2Ranges_Case2); CPPUNIT_TEST(testDeleteArea_0Ranges); + CPPUNIT_TEST(testUpdateReference_DeleteRow); + CPPUNIT_TEST(testUpdateReference_DeleteCol); CPPUNIT_TEST_SUITE_END(); @@ -135,11 +137,32 @@ void Test::testUpdateReference_DeleteRow() bool bUpdated = aList.UpdateReference(URM_INSDEL, m_pDoc, ScRange(0,3,0,MAXCOL,MAXROW,0), 0, -1, 0); CPPUNIT_ASSERT(bUpdated); + for(SCCOL nCol = 1; nCol <= 4; ++nCol) + { + for(SCROW nRow = 1; nRow <= 3; ++nRow) + { + CPPUNIT_ASSERT(aList.Intersects(ScRange(nCol, nRow, 0))); + } + CPPUNIT_ASSERT(!aList.Intersects(ScRange(nCol, 4, 0))); + } + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), aList.GetCellCount()); } void Test::testUpdateReference_DeleteCol() { + ScRangeList aList(ScRange(1,1,0,4,4,0)); + bool bUpdated = aList.UpdateReference(URM_INSDEL, m_pDoc, ScRange(3,0,0,MAXCOL,MAXROW,0), -1, 0, 0); + CPPUNIT_ASSERT(bUpdated); + for(SCROW nRow = 1; nRow <= 4; ++nRow) + { + for(SCCOL nCol = 1; nCol <= 3; ++nCol) + { + CPPUNIT_ASSERT(aList.Intersects(ScRange(nCol, nRow, 0))); + } + CPPUNIT_ASSERT(!aList.Intersects(ScRange(4, nRow, 0))); + } + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), aList.GetCellCount()); } CPPUNIT_TEST_SUITE_REGISTRATION(Test); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits