GCC Code Coverage Report


Directory: ./
File: src/continuous-validation/helper.hh
Date: 2024-08-10 11:29:48
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 37612 inline const value_type& first(const interval_t& I, bool reverse) {
37
2/2
✓ Branch 0 taken 19622 times.
✓ Branch 1 taken 17990 times.
37612 return reverse ? I.second : I.first;
38 }
39 29241 inline const value_type& second(const interval_t& I, bool reverse) {
40 29241 return first(I, !reverse);
41 }
42
43 9008 inline const interval_t& begin(const std::list<interval_t>& I, bool reverse) {
44
2/2
✓ Branch 0 taken 4135 times.
✓ Branch 1 taken 4873 times.
9008 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 7648 inline const interval_t& Nth(const std::list<interval_t>& I, int N,
50 bool reverse) {
51
2/2
✓ Branch 0 taken 3620 times.
✓ Branch 1 taken 4028 times.
7648 if (reverse) {
52 3620 std::list<interval_t>::const_reverse_iterator it(I.rbegin());
53
1/2
✓ Branch 1 taken 3620 times.
✗ Branch 2 not taken.
3620 std::advance(it, N);
54 3620 return *it;
55 } else {
56 4028 std::list<interval_t>::const_iterator it(I.begin());
57
1/2
✓ Branch 1 taken 4028 times.
✗ Branch 2 not taken.
4028 std::advance(it, N);
58 4028 return *it;
59 }
60 }
61 } // namespace continuousValidation
62 } // namespace core
63 } // namespace hpp
64