GCC Code Coverage Report


Directory: ./
File: src/continuous-validation/helper.hh
Date: 2024-12-13 16:14:03
Exec Total Coverage
Lines: 14 14 100.0%
Branches: 8 10 80.0%

Line Branch Exec Source
1 //
2 // Copyright (c) 2018 CNRS
3 // Authors: Joseph Mirabel
4 //
5
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are
8 // met:
9 //
10 // 1. Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 //
13 // 2. Redistributions in binary form must reproduce the above copyright
14 // notice, this list of conditions and the following disclaimer in the
15 // documentation and/or other materials provided with the distribution.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28 // DAMAGE.
29
30 #include <hpp/core/fwd.hh>
31 #include <iterator>
32
33 namespace hpp {
34 namespace core {
35 namespace continuousValidation {
36 38470 inline const value_type& first(const interval_t& I, bool reverse) {
37
2/2
✓ Branch 0 taken 20065 times.
✓ Branch 1 taken 18405 times.
38470 return reverse ? I.second : I.first;
38 }
39 30083 inline const value_type& second(const interval_t& I, bool reverse) {
40 30083 return first(I, !reverse);
41 }
42
43 9027 inline const interval_t& begin(const std::list<interval_t>& I, bool reverse) {
44
2/2
✓ Branch 0 taken 4138 times.
✓ Branch 1 taken 4889 times.
9027 return reverse ? I.back() : I.front();
45 }
46 inline const interval_t& end(const std::list<interval_t>& I, bool reverse) {
47 return begin(I, !reverse);
48 }
49 7664 inline const interval_t& Nth(const std::list<interval_t>& I, int N,
50 bool reverse) {
51
2/2
✓ Branch 0 taken 3623 times.
✓ Branch 1 taken 4041 times.
7664 if (reverse) {
52 3623 std::list<interval_t>::const_reverse_iterator it(I.rbegin());
53
1/2
✓ Branch 1 taken 3623 times.
✗ Branch 2 not taken.
3623 std::advance(it, N);
54 3623 return *it;
55 } else {
56 4041 std::list<interval_t>::const_iterator it(I.begin());
57
1/2
✓ Branch 1 taken 4041 times.
✗ Branch 2 not taken.
4041 std::advance(it, N);
58 4041 return *it;
59 }
60 }
61 } // namespace continuousValidation
62 } // namespace core
63 } // namespace hpp
64