LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/sc/qa/unit - rangelst_test.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 256 267 95.9 %
Date: 2013-07-09 Functions: 32 36 88.9 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  */
       9             : 
      10             : #include <sal/config.h>
      11             : #include <test/bootstrapfixture.hxx>
      12             : #include "document.hxx"
      13             : #include "docsh.hxx"
      14             : 
      15             : #include "rangelst.hxx"
      16             : 
      17          63 : class Test : public test::BootstrapFixture {
      18             : 
      19             : public:
      20             :     virtual void setUp();
      21             :     virtual void tearDown();
      22             : 
      23             :     void testDeleteArea_4Ranges();
      24             :     void testDeleteArea_3Ranges();
      25             :     void testDeleteArea_3Ranges_Case2();
      26             :     void testDeleteArea_3Ranges_Case3();
      27             :     void testDeleteArea_3Ranges_Case4();
      28             :     void testDeleteArea_3Ranges_Case5();
      29             :     void testDeleteArea_2Ranges();
      30             :     void testDeleteArea_2Ranges_Case2();
      31             :     void testDeleteArea_2Ranges_Case3();
      32             :     void testDeleteArea_2Ranges_Case4();
      33             :     void testDeleteArea_2Ranges_Case5();
      34             :     void testDeleteArea_2Ranges_Case6();
      35             :     void testDeleteArea_2Ranges_Case7();
      36             :     void testDeleteArea_2Ranges_Case8();
      37             :     void testDeleteArea_1Range();
      38             :     void testDeleteArea_0Ranges();
      39             :     void testJoin_Case1();
      40             :     void testJoin_Case2();
      41             :     void testGetIntersectedRange();
      42             : 
      43             :     void testUpdateReference_DeleteRow();
      44             :     void testUpdateReference_DeleteCol();
      45             : 
      46           2 :     CPPUNIT_TEST_SUITE(Test);
      47           1 :     CPPUNIT_TEST(testDeleteArea_4Ranges);
      48           1 :     CPPUNIT_TEST(testDeleteArea_3Ranges);
      49           1 :     CPPUNIT_TEST(testDeleteArea_3Ranges_Case2);
      50           1 :     CPPUNIT_TEST(testDeleteArea_3Ranges_Case3);
      51           1 :     CPPUNIT_TEST(testDeleteArea_3Ranges_Case4);
      52           1 :     CPPUNIT_TEST(testDeleteArea_3Ranges_Case5);
      53           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges);
      54           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case2);
      55           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case3);
      56           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case4);
      57           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case5);
      58           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case6);
      59           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case7);
      60           1 :     CPPUNIT_TEST(testDeleteArea_2Ranges_Case8);
      61           1 :     CPPUNIT_TEST(testDeleteArea_1Range);
      62           1 :     CPPUNIT_TEST(testDeleteArea_0Ranges);
      63           1 :     CPPUNIT_TEST(testJoin_Case1);
      64           1 :     CPPUNIT_TEST(testJoin_Case2);
      65           1 :     CPPUNIT_TEST(testUpdateReference_DeleteRow);
      66           1 :     CPPUNIT_TEST(testUpdateReference_DeleteCol);
      67           1 :     CPPUNIT_TEST(testGetIntersectedRange);
      68           2 :     CPPUNIT_TEST_SUITE_END();
      69             : 
      70             : 
      71             : private:
      72             :     ScDocument *m_pDoc;
      73             :     ScDocShellRef m_xDocShRef;
      74             : };
      75             : 
      76           0 : static std::ostream& operator<<(std::ostream& rStrm, const ScAddress& rAddr)
      77             : {
      78           0 :     rStrm << "Col: " << rAddr.Col() << " Row: " << rAddr.Row() << " Tab: " << rAddr.Tab() << "\n";
      79           0 :     return rStrm;
      80             : }
      81             : 
      82           0 : static std::ostream& operator<<(std::ostream& rStrm, const ScRange& rRange)
      83             : {
      84           0 :     rStrm << "ScRange: " << rRange.aStart << rRange.aEnd << "\n";
      85           0 :     return rStrm;
      86             : }
      87             : 
      88           0 : static std::ostream& operator<<(std::ostream& rStrm, const ScRangeList& rList)
      89             : {
      90           0 :     rStrm << "ScRangeList: \n";
      91           0 :     for(size_t i = 0; i < rList.size(); ++i)
      92           0 :         rStrm << *rList[i];
      93           0 :     return rStrm;
      94             : }
      95             : 
      96          21 : void Test::setUp()
      97             : {
      98          21 :     BootstrapFixture::setUp();
      99             : 
     100          21 :     ScDLL::Init();
     101          42 :     m_xDocShRef = new ScDocShell(
     102             :         SFXMODEL_STANDARD |
     103             :         SFXMODEL_DISABLE_EMBEDDED_SCRIPTS |
     104          42 :         SFXMODEL_DISABLE_DOCUMENT_RECOVERY);
     105             : 
     106          21 :     m_pDoc = m_xDocShRef->GetDocument();
     107          21 : }
     108             : 
     109          21 : void Test::tearDown()
     110             : {
     111          21 :     m_xDocShRef.Clear();
     112          21 :     BootstrapFixture::tearDown();
     113          21 : }
     114             : 
     115           1 : void Test::testDeleteArea_4Ranges()
     116             : {
     117           1 :     ScRangeList aList(ScRange(0,0,0,5,5,0));
     118           1 :     aList.DeleteArea(2,2,0,3,3,0);
     119             : 
     120           1 :     CPPUNIT_ASSERT_EQUAL(aList.size(), static_cast<size_t>(4));
     121           7 :     for(SCCOL nCol = 0; nCol <= 5; ++nCol)
     122             :     {
     123          42 :         for(SCROW nRow = 0; nRow <= 5; ++nRow)
     124             :         {
     125          36 :             if((nCol == 2 || nCol == 3) && ( nRow == 2 || nRow == 3))
     126           4 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     127             :             else
     128          32 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     129             :         }
     130           1 :     }
     131           1 : }
     132             : 
     133           1 : void Test::testDeleteArea_3Ranges()
     134             : {
     135           1 :     ScRangeList aList(ScRange(1,1,0,6,6,0));
     136           1 :     aList.DeleteArea(3,3,0,8,4,0);
     137             : 
     138           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.size());
     139           7 :     for(SCCOL nCol = 1; nCol <= 6; ++nCol)
     140             :     {
     141          42 :         for(SCROW nRow = 1; nRow <= 6; ++nRow)
     142             :         {
     143          36 :             if((nRow == 3 || nRow == 4) && (nCol >= 3))
     144           8 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     145             :             else
     146          28 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     147             :         }
     148             :     }
     149             : 
     150           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(28), aList.GetCellCount());
     151           1 : }
     152             : 
     153           1 : void Test::testDeleteArea_3Ranges_Case2()
     154             : {
     155           1 :     ScRangeList aList(ScRange(1,1,0,6,6,0));
     156           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     157           1 :     aList.DeleteArea(0,2,0,2,4,0);
     158           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.size());
     159             : 
     160             :     // Column 1-2 && Row 2-4 should not be in the range list. The rest should
     161             :     // be in the list.
     162           7 :     for (SCCOL nCol = 1; nCol <= 6; ++nCol)
     163             :     {
     164          42 :         for (SCROW nRow = 1; nRow <= 6; ++nRow)
     165             :         {
     166          36 :             if ((1 <= nCol && nCol <= 2) && (2 <= nRow && nRow <= 4))
     167           6 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     168             :             else
     169          30 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     170             :         }
     171           1 :     }
     172           1 : }
     173             : 
     174           1 : void Test::testDeleteArea_3Ranges_Case3()
     175             : {
     176           1 :     ScRangeList aList(ScRange(1,5,0,6,11,0));
     177           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     178           1 :     aList.DeleteArea(3,2,0,4,8,0);
     179           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.size());
     180             : 
     181             :     // Column 3-4 && Row 5-8 should not be in the range list.
     182           7 :     for (SCCOL nCol = 1; nCol <= 6; ++nCol)
     183             :     {
     184          48 :         for (SCROW nRow = 5; nRow <= 11; ++nRow)
     185             :         {
     186          42 :             if ((3 <= nCol && nCol <= 4) && (5 <= nRow && nRow <= 8))
     187           8 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     188             :             else
     189          34 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     190             :         }
     191           1 :     }
     192           1 : }
     193             : 
     194           1 : void Test::testDeleteArea_3Ranges_Case4()
     195             : {
     196           1 :     ScRangeList aList(ScRange(1,5,0,6,11,0));
     197           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     198           1 :     aList.DeleteArea(3,5,0,4,5,0);
     199           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.size());
     200             : 
     201             :     // Column 3-4 && Row 5 should not be in the range list.
     202           7 :     for (SCCOL nCol = 1; nCol <= 6; ++nCol)
     203             :     {
     204          48 :         for (SCROW nRow = 5; nRow <= 11; ++nRow)
     205             :         {
     206          42 :             if ((3 <= nCol && nCol <= 4) && 5 == nRow )
     207           2 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     208             :             else
     209          40 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     210             :         }
     211           1 :     }
     212           1 : }
     213             : 
     214           1 : void Test::testDeleteArea_3Ranges_Case5()
     215             : {
     216           1 :     ScRangeList aList(ScRange(1,5,0,6,11,0));
     217           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     218           1 :     aList.DeleteArea(6,7,0,6,9,0);
     219           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.size());
     220             : 
     221             :     // Column 6 && Row 7-9 should not be in the range list.
     222           7 :     for (SCCOL nCol = 1; nCol <= 6; ++nCol)
     223             :     {
     224          48 :         for (SCROW nRow = 5; nRow <= 11; ++nRow)
     225             :         {
     226          42 :             if ( nCol == 6 && (7 <= nRow && nRow <= 9))
     227           3 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     228             :             else
     229          39 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     230             :         }
     231           1 :     }
     232           1 : }
     233             : 
     234           1 : void Test::testDeleteArea_2Ranges()
     235             : {
     236           1 :     ScRangeList aList(ScRange(0,0,0,5,5,5));
     237           2 :     ScRangeList aList2(aList);
     238             : 
     239           1 :     aList.DeleteArea(4,4,0,6,7,0);
     240           1 :     aList2.DeleteArea(4,4,0,6,7,0);
     241           1 :     CPPUNIT_ASSERT_EQUAL(aList.size(), static_cast<size_t>(2));
     242           1 :     CPPUNIT_ASSERT_EQUAL(aList2.size(), static_cast<size_t>(2));
     243             : 
     244           7 :     for(SCCOL nCol = 0; nCol <= 5; ++nCol)
     245             :     {
     246          42 :         for(SCROW nRow = 0; nRow <= 5; ++nRow)
     247             :         {
     248          36 :             if(nCol>=4 && nRow >= 4)
     249           4 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     250             :             else
     251          32 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     252             :         }
     253           1 :     }
     254           1 : }
     255             : 
     256           1 : void Test::testDeleteArea_2Ranges_Case2()
     257             : {
     258           1 :     ScRangeList aList(ScRange(1,1,0,1,5,0));
     259           1 :     aList.DeleteArea(0,3,0,MAXCOL,3,0);
     260             : 
     261           6 :     for(SCROW nRow = 1; nRow <= 5; ++nRow)
     262             :     {
     263           5 :         if(nRow == 3)
     264           1 :             CPPUNIT_ASSERT(!aList.In(ScRange(1,3,0)));
     265             :         else
     266           4 :             CPPUNIT_ASSERT(aList.In(ScRange(1,nRow,0)));
     267             :     }
     268           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), aList.GetCellCount());
     269           1 : }
     270             : 
     271           1 : void Test::testDeleteArea_2Ranges_Case3()
     272             : {
     273           1 :     ScRangeList aList(ScRange(0,5,0,2,10,0));
     274           1 :     aList.DeleteArea(2,3,0,3,7,0);
     275           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
     276             : 
     277             :     // Column 2 Row 5-7 shouldn't be in the list.
     278           4 :     for (SCCOL nCol = 0; nCol <= 2; ++nCol)
     279             :     {
     280          21 :         for (SCROW nRow = 5; nRow <= 10; ++nRow)
     281             :         {
     282          18 :             if (nCol == 2 && (5 <= nRow && nRow <= 7))
     283           3 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol,nRow,0)));
     284             :             else
     285          15 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol,nRow,0)));
     286             :         }
     287           1 :     }
     288           1 : }
     289             : 
     290           1 : void Test::testDeleteArea_2Ranges_Case4()
     291             : {
     292           1 :     ScRangeList aList(ScRange(2,3,0,4,7,0));
     293           1 :     aList.DeleteArea(0,1,0,2,5,0);
     294           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
     295             : 
     296             :     // Column 2 Row 3-5 shouldn't be in the list.
     297           4 :     for (SCCOL nCol = 2; nCol <= 4; ++nCol)
     298             :     {
     299          18 :         for (SCROW nRow = 3; nRow <= 7; ++nRow)
     300             :         {
     301          15 :             if (nCol == 2 && (3 <= nRow && nRow <= 5))
     302           3 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol,nRow,0)));
     303             :             else
     304          12 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol,nRow,0)));
     305             :         }
     306           1 :     }
     307           1 : }
     308             : 
     309           1 : void Test::testDeleteArea_2Ranges_Case5()
     310             : {
     311           1 :     ScRangeList aList(ScRange(2,2,0,5,5,0));
     312           1 :     aList.DeleteArea(4,5,0,5,5,0);
     313           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
     314             : 
     315             :     // Column 4 and 5 Row 5 shouldn't be in the list.
     316           5 :     for(SCCOL nCol = 2; nCol <= 5; ++nCol)
     317             :     {
     318          20 :         for(SCROW nRow = 2; nRow <= 5; ++nRow)
     319             :         {
     320          16 :             if(nRow == 5 && 4 <= nCol)
     321           2 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     322             :             else
     323          14 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     324             :         }
     325           1 :     }
     326           1 : }
     327             : 
     328           1 : void Test::testDeleteArea_2Ranges_Case6()
     329             : {
     330           1 :     ScRangeList aList(ScRange(2,2,0,5,5,0));
     331           1 :     aList.DeleteArea(4,2,0,5,2,0);
     332           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
     333             : 
     334             :     // Column 4 and 5 Row 2 shouldn't be in the list.
     335           5 :     for(SCCOL nCol = 2; nCol <= 5; ++nCol)
     336             :     {
     337          20 :         for(SCROW nRow = 2; nRow <= 5; ++nRow)
     338             :         {
     339          16 :             if(nRow == 2 && 4 <= nCol)
     340           2 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     341             :             else
     342          14 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     343             :         }
     344           1 :     }
     345           1 : }
     346             : 
     347           1 : void Test::testDeleteArea_2Ranges_Case7()
     348             : {
     349           1 :     ScRangeList aList(ScRange(2,2,0,5,5,0));
     350           1 :     aList.DeleteArea(2,5,0,2,5,0);
     351           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
     352             : 
     353             :     // Column 2 Row 5 shouldn't be in the list.
     354           5 :     for(SCCOL nCol = 2; nCol <= 5; ++nCol)
     355             :     {
     356          20 :         for(SCROW nRow = 2; nRow <= 5; ++nRow)
     357             :         {
     358          16 :             if(nRow == 5 && nCol == 2)
     359           1 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     360             :             else
     361          15 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     362             :         }
     363           1 :     }
     364           1 : }
     365             : 
     366           1 : void Test::testDeleteArea_2Ranges_Case8()
     367             : {
     368           1 :     ScRangeList aList(ScRange(2,2,0,5,5,0));
     369           1 :     aList.DeleteArea(2,2,0,3,2,0);
     370           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
     371             : 
     372             :     // Column 2 & 3 Row 2 shouldn't be in the list.
     373           5 :     for(SCCOL nCol = 2; nCol <= 5; ++nCol)
     374             :     {
     375          20 :         for(SCROW nRow = 2; nRow <= 5; ++nRow)
     376             :         {
     377          16 :             if(nRow == 2 && nCol <= 3)
     378           2 :                 CPPUNIT_ASSERT(!aList.In(ScRange(nCol, nRow, 0)));
     379             :             else
     380          14 :                 CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     381             :         }
     382           1 :     }
     383           1 : }
     384             : 
     385           1 : void Test::testDeleteArea_1Range()
     386             : {
     387           1 :     ScRangeList aList(ScRange(1,1,0,3,3,0));
     388           1 :     aList.DeleteArea(1,1,0,2,3,0);
     389             : 
     390           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     391             : 
     392           4 :     for(SCROW nRow = 1; nRow <= 3; ++nRow)
     393             :     {
     394           3 :         CPPUNIT_ASSERT(aList.In(ScRange(3,nRow,0)));
     395             :     }
     396           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), aList.GetCellCount());
     397           1 : }
     398             : 
     399           1 : void Test::testDeleteArea_0Ranges()
     400             : {
     401           1 :     ScRangeList aList(ScRange(1,1,0,3,3,0));
     402           1 :     aList.DeleteArea(1,1,0,3,3,0);
     403             : 
     404           1 :     CPPUNIT_ASSERT(aList.empty());
     405             : 
     406           2 :     ScRangeList aList2(ScRange(1,1,0,3,3,0));
     407           1 :     aList2.DeleteArea(0,0,0,4,4,0);
     408             : 
     409           2 :     CPPUNIT_ASSERT(aList.empty());
     410           1 : }
     411             : 
     412           1 : void Test::testJoin_Case1()
     413             : {
     414           1 :     ScRangeList aList;
     415           1 :     aList.push_back(new ScRange(1,1,0,3,3,0));
     416           1 :     aList.Join(ScRange(4,1,0,6,3,0));
     417             : 
     418           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     419           1 :     CPPUNIT_ASSERT( ScRange(1,1,0,6,3,0) == *aList[0]);
     420           1 : }
     421             : 
     422           1 : void Test::testJoin_Case2()
     423             : {
     424           1 :     ScRangeList aList;
     425           1 :     aList.push_back(new ScRange(1,1,0,3,3,0));
     426           1 :     aList.push_back(new ScRange(4,1,0,6,3,0));
     427           1 :     aList.push_back(new ScRange(7,1,0,9,3,0));
     428             : 
     429           1 :     aList.Join(*aList[2], true);
     430             : 
     431           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
     432           1 :     CPPUNIT_ASSERT(ScRange(1,1,0,9,3,0) == *aList[0]);
     433           1 : }
     434             : 
     435           1 : void Test::testUpdateReference_DeleteRow()
     436             : {
     437           1 :     ScRangeList aList(ScRange(1,1,0,4,4,0));
     438           1 :     bool bUpdated = aList.UpdateReference(URM_INSDEL, m_pDoc, ScRange(0,3,0,MAXCOL,MAXROW,0), 0, -1, 0);
     439           1 :     CPPUNIT_ASSERT(bUpdated);
     440             : 
     441           5 :     for(SCCOL nCol = 1; nCol <= 4; ++nCol)
     442             :     {
     443          16 :         for(SCROW nRow = 1; nRow <= 3; ++nRow)
     444             :         {
     445          12 :             CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     446             :         }
     447           4 :         CPPUNIT_ASSERT(!aList.In(ScRange(nCol, 4, 0)));
     448             :     }
     449           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), aList.GetCellCount());
     450             : 
     451           2 :     ScRangeList aList2(ScRange(2,2,0,2,2,0));
     452           1 :     aList2.UpdateReference(URM_INSDEL, m_pDoc, ScRange(0,3,0,MAXCOL,MAXROW,0), 0, -1, 0);
     453           2 :     CPPUNIT_ASSERT(aList2.empty());
     454           1 : }
     455             : 
     456           1 : void Test::testUpdateReference_DeleteCol()
     457             : {
     458           1 :     ScRangeList aList(ScRange(1,1,0,4,4,0));
     459           1 :     bool bUpdated = aList.UpdateReference(URM_INSDEL, m_pDoc, ScRange(3,0,0,MAXCOL,MAXROW,0), -1, 0, 0);
     460           1 :     CPPUNIT_ASSERT(bUpdated);
     461             : 
     462           5 :     for(SCROW nRow = 1; nRow <= 4; ++nRow)
     463             :     {
     464          16 :         for(SCCOL nCol = 1; nCol <= 3; ++nCol)
     465             :         {
     466          12 :             CPPUNIT_ASSERT(aList.In(ScRange(nCol, nRow, 0)));
     467             :         }
     468           4 :         CPPUNIT_ASSERT(!aList.In(ScRange(4, nRow, 0)));
     469             :     }
     470           1 :     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), aList.GetCellCount());
     471           1 : }
     472             : 
     473           1 : void Test::testGetIntersectedRange()
     474             : {
     475           1 :     ScRangeList aList(ScRange(2, 2, 0, 5, 5, 0));
     476           2 :     ScRangeList aIntersecting = aList.GetIntersectedRange(ScRange(0, 0, 0, 3, 3, 0));
     477           2 :     CPPUNIT_ASSERT_EQUAL(ScRangeList(ScRange(2,2,0,3,3,0)), aIntersecting);
     478           1 : }
     479             : 
     480           1 : CPPUNIT_TEST_SUITE_REGISTRATION(Test);
     481             : 
     482           4 : CPPUNIT_PLUGIN_IMPLEMENT();
     483             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10