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