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

Generated by: LCOV version 1.10