LCOV - code coverage report
Current view: top level - o3tl/qa - test-range.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 136 136 100.0 %
Date: 2012-08-25 Functions: 11 11 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 945 1892 49.9 %

           Branch data     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                 :            :  * This file incorporates work covered by the following license notice:
      10                 :            :  *
      11                 :            :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12                 :            :  *   contributor license agreements. See the NOTICE file distributed
      13                 :            :  *   with this work for additional information regarding copyright
      14                 :            :  *   ownership. The ASF licenses this file to you under the Apache
      15                 :            :  *   License, Version 2.0 (the "License"); you may not use this file
      16                 :            :  *   except in compliance with the License. You may obtain a copy of
      17                 :            :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18                 :            :  */
      19                 :            : 
      20                 :            : #include <sal/types.h>
      21                 :            : #include "cppunit/TestAssert.h"
      22                 :            : #include "cppunit/TestFixture.h"
      23                 :            : #include "cppunit/extensions/HelperMacros.h"
      24                 :            : 
      25                 :            : #include <o3tl/range.hxx>
      26                 :            : #include <vector>
      27                 :            : #include <deque>
      28                 :            : 
      29                 :            : using o3tl::range;
      30                 :            : using o3tl::make_range;
      31                 :            : using o3tl::range_of;
      32                 :            : using std::size_t;
      33                 :            : 
      34         [ -  + ]:         15 : class range_test : public CppUnit::TestFixture
      35                 :            : {
      36                 :            : public:
      37                 :            : 
      38                 :          5 :     void int_test()
      39                 :            :     {
      40                 :            :         range<int>
      41                 :          5 :             t1(12,88);
      42                 :            :         range<int>
      43                 :          5 :             t2(33,33);
      44                 :            : 
      45                 :            :         // ctor
      46 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int ctor1", t1.begin() == 12);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      47 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int ctor2", t1.end() == 88);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      48 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int ctor3", t2.begin() == 33);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      49 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int ctor4", t2.end() == 33);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      50                 :            : 
      51                 :            :         // make_range
      52 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int make_range1", make_range(0,8).begin() == 0);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      53 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int make_range2", make_range(0,8).end() == 8);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      54                 :            : 
      55                 :            :         // size
      56 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int size1", t1.size() == size_t(t1.end() - t1.begin()) );
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      57 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int size2", t2.size() == size_t(0) );
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      58                 :            : 
      59                 :            :         // contains
      60                 :          5 :         range<int>      t3(0,10);
      61                 :          5 :         range<int>      t4(7, 15);
      62                 :          5 :         range<int>      t5(12, 12);
      63                 :          5 :         range<int>      t6(13, 77);
      64                 :          5 :         range<int>      t7(87, 87);
      65                 :          5 :         range<int>      t8(87, 88);
      66                 :          5 :         range<int>      t9(88, 88);
      67                 :          5 :         range<int>      t10(33, 120);
      68                 :          5 :         range<int>      t11(90, 100);
      69                 :          5 :         range<int>      t12(200,200);
      70                 :            : 
      71 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains1", t1.contains(t1));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      72 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains2", t1.contains(t2));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      73 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains3", ! t1.contains(t3));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      74 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains4", ! t1.contains(t4));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      75 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains5", t1.contains(t5));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      76 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains6", t1.contains(t6));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      77 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains7", t1.contains(t7));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      78 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains8", t1.contains(t8));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      79 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains9", ! t1.contains(t9));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      80 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains10", ! t1.contains(t10));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      81 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains11", ! t1.contains(t11));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      82 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains12", ! t1.contains(t12));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
      83                 :            : 
      84 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n1", t1.contains(50));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      85 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n2", t1.contains(12));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      86 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n3", t1.contains(87));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      87 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n4", ! t1.contains(3));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      88 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n5", ! t1.contains(11));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      89 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n6", ! t1.contains(88));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      90 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int contains n7", ! t1.contains(100));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      91                 :            : 
      92                 :            :         // overlaps
      93                 :          5 :         range<int>      t13(88,99);
      94                 :            : 
      95 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps1", t1.overlaps(t1));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      96 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps2", t1.overlaps(t2));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      97 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps3", ! t1.overlaps(t3));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      98 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps4", t1.overlaps(t4));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
      99 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps5", t1.overlaps(t5));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     100 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps6", t1.overlaps(t6));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     101 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps7", t1.overlaps(t7));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     102 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps8", t1.overlaps(t8));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     103 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps9", ! t1.overlaps(t9));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     104 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps10", t1.overlaps(t10));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     105 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps11", ! t1.overlaps(t11));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     106 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps12", ! t1.overlaps(t12));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     107 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int overlaps13", ! t1.overlaps(t13));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     108                 :            : 
     109                 :            :         // distance_to
     110 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int distance_to1", t1.distance_to(t13) == 0);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     111 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int distance_to2", t1.distance_to(t9) == 0);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     112 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int distance_to3", t1.distance_to(t11) == 2);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     113 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int distance_to4", t1.distance_to(t8) == -1);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     114 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("int distance_to5", t1.distance_to(t3) == -88);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     115                 :          5 :     }
     116                 :            : 
     117                 :          5 :     void iterator_test()
     118                 :            :     {
     119                 :            :         typedef std::vector<char>::const_iterator   test_it;
     120         [ +  - ]:          5 :         const std::vector<char>            hv(200,'x');
     121                 :            : 
     122                 :            : 
     123         [ +  - ]:          5 :         test_it hit1 = hv.begin() + 12;
     124         [ +  - ]:          5 :         test_it hit2 = hv.begin() + 88;
     125                 :            : 
     126                 :            :         range<test_it>
     127                 :          5 :             t1(hit1, hit2);
     128                 :            :         range<test_it>
     129 [ +  - ][ +  - ]:          5 :             t2(hv.begin()+33, hv.begin()+33);
     130                 :            : 
     131                 :            :         // ctor
     132 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec ctor1", t1.begin() == hit1);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     133 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec ctor2", t1.end() == hit2);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     134 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec ctor3", t2.begin() == hv.begin()+33);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     135 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec ctor4", t2.end() == hv.begin()+33);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     136                 :            : 
     137                 :            :         // make_range
     138 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec make_range1", make_range(hv.begin(), hv.begin()+8).begin() == hv.begin());
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     139 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec make_range2", make_range(hv.begin(), hv.begin()+8).end() == hv.begin()+8);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     140                 :            : 
     141                 :            :         // size
     142 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec size1", t1.size() == size_t(t1.end() - t1.begin()) );
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     143 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec size2", t2.size() == size_t(0) );
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     144                 :            : 
     145                 :            :         // contains
     146         [ +  - ]:          5 :         range<test_it>      t3(hv.begin(), hv.begin() + 10);
     147 [ +  - ][ +  - ]:          5 :         range<test_it>      t4(hv.begin() + 7, hv.begin() + 15);
     148                 :          5 :         range<test_it>      t5(hit1, hit1);
     149 [ +  - ][ +  - ]:          5 :         range<test_it>      t6(hv.begin() + 13, hv.begin() + 77);
     150 [ +  - ][ +  - ]:          5 :         range<test_it>      t7(hv.begin() + 87, hv.begin() + 87);
     151         [ +  - ]:          5 :         range<test_it>      t8(hv.begin() + 87, hit2);
     152                 :          5 :         range<test_it>      t9(hit2, hit2);
     153 [ +  - ][ +  - ]:          5 :         range<test_it>      t10(hv.begin() + 33, hv.begin() + 120);
     154 [ +  - ][ +  - ]:          5 :         range<test_it>      t11(hv.begin() + 90, hv.begin() + 100);
     155 [ +  - ][ +  - ]:          5 :         range<test_it>      t12(hv.begin() + 200,hv.begin() + 200);
     156                 :            : 
     157 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains1", t1.contains(t1));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     158 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains2", t1.contains(t2));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     159 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains3", ! t1.contains(t3));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     160 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains4", ! t1.contains(t4));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     161 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains5", t1.contains(t5));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     162 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains6", t1.contains(t6));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     163 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains7", t1.contains(t7));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     164 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains8", t1.contains(t8));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     165 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains9", ! t1.contains(t9));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     166 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains10", ! t1.contains(t10));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     167 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains11", ! t1.contains(t11));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     168 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains12", ! t1.contains(t12));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     169                 :            : 
     170 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n1", t1.contains(hv.begin() + 50));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     171 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n2", t1.contains(hit1));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     172 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n3", t1.contains(hv.begin() + 87));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     173 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n4", ! t1.contains(hv.begin() + 3));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     174 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n5", ! t1.contains(hv.begin() + 11));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     175 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n6", ! t1.contains(hit2));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     176 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec contains n7", ! t1.contains(hv.begin() + 100));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     177                 :            : 
     178                 :            :         // overlaps
     179         [ +  - ]:          5 :         range<test_it>      t13(hit2, hv.begin() + 99);
     180                 :            : 
     181 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps1", t1.overlaps(t1));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     182 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps2", t1.overlaps(t2));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     183 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps3", ! t1.overlaps(t3));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     184 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps4", t1.overlaps(t4));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     185 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps5", t1.overlaps(t5));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     186 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps6", t1.overlaps(t6));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     187 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps7", t1.overlaps(t7));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     188 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps8", t1.overlaps(t8));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     189 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps9", ! t1.overlaps(t9));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     190 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps10", t1.overlaps(t10));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     191 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps11", ! t1.overlaps(t11));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     192 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps12", ! t1.overlaps(t12));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     193 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec overlaps13", ! t1.overlaps(t13));
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     194                 :            : 
     195                 :            :         // distance_to
     196 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec distance_to1", t1.distance_to(t13) == 0);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     197 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec distance_to2", t1.distance_to(t8) == -1);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     198 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec distance_to3", t1.distance_to(t9) == 0);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     199 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec distance_to4", t1.distance_to(t11) == 2);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     200 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("ivec distance_to5", t1.distance_to(t3) == -88);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     201                 :            : 
     202         [ +  - ]:          5 :         const std::vector< int* >   h2(20, (int*)0);
     203         [ +  - ]:          5 :         std::deque< double >        h3(30, 0.0);
     204                 :            : 
     205 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("range_of1", range_of(h2).begin() == h2.begin());
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     206 [ +  - ][ +  - ]:          5 :         CPPUNIT_ASSERT_MESSAGE("range_of2", range_of(h3).end() == h3.end());
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     207                 :          5 :     }
     208                 :            : 
     209                 :            :     // insert your test code here.
     210                 :          5 :     void global()
     211                 :            :     {
     212                 :          5 :         int_test();
     213                 :          5 :         iterator_test();
     214                 :          5 :     }
     215                 :            : 
     216                 :            : 
     217                 :            :     // These macros are needed by auto register mechanism.
     218 [ +  - ][ +  - ]:         10 :     CPPUNIT_TEST_SUITE(range_test);
         [ +  - ][ +  - ]
                 [ #  # ]
     219 [ +  - ][ +  - ]:          5 :     CPPUNIT_TEST(global);
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
                 [ +  - ]
     220 [ +  - ][ +  - ]:         10 :     CPPUNIT_TEST_SUITE_END();
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     221                 :            : }; // class range_test
     222                 :            : 
     223                 :            : // -----------------------------------------------------------------------------
     224 [ +  - ][ +  - ]:         15 : CPPUNIT_TEST_SUITE_REGISTRATION(range_test);
     225                 :            : 
     226                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10