GCC Code Coverage Report


Directory: ./
File: tests/joint-bounds.cc
Date: 2025-05-04 12:09:19
Exec Total Coverage
Lines: 24 24 100.0%
Branches: 96 186 51.6%

Line Branch Exec Source
1 ///
2 /// Copyright (c) 2019 CNRS
3 /// Author: Florent Lamiraux
4 ///
5 ///
6
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are
9 // met:
10 //
11 // 1. Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 //
14 // 2. Redistributions in binary form must reproduce the above copyright
15 // notice, this list of conditions and the following disclaimer in the
16 // documentation and/or other materials provided with the distribution.
17 //
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29 // DAMAGE.
30
31 // This test
32 // - sets bounds and checks that they are stored correctly
33
34 #define BOOST_TEST_MODULE joint - bounds
35
36 #include <boost/test/unit_test.hpp>
37 #include <hpp/pinocchio/device.hh>
38 #include <hpp/pinocchio/humanoid-robot.hh>
39 #include <hpp/pinocchio/joint.hh>
40 #include <hpp/pinocchio/simple-device.hh>
41
42 using hpp::pinocchio::DevicePtr_t;
43 using hpp::pinocchio::JointPtr_t;
44 using hpp::pinocchio::size_type;
45 using hpp::pinocchio::vector_t;
46 using hpp::pinocchio::unittest::HumanoidSimple;
47 using hpp::pinocchio::unittest::makeDevice;
48
49
33/66
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
4 BOOST_AUTO_TEST_CASE(joint_bounds) {
50 2 DevicePtr_t robot;
51
2/4
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
2 robot = makeDevice(HumanoidSimple);
52
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 size_type nJoints(robot->nbJoints());
53
2/2
✓ Branch 0 taken 27 times.
✓ Branch 1 taken 1 times.
56 for (size_type i = 0; i < nJoints; ++i) {
54
1/2
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
54 JointPtr_t joint(robot->jointAt(i));
55
6/12
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 27 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 27 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 27 times.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 27 times.
54 BOOST_CHECK(joint == joint);
56
7/14
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 27 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 27 times.
✗ Branch 16 not taken.
✓ Branch 21 taken 27 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 27 times.
✗ Branch 25 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 27 times.
54 BOOST_CHECK(*joint == *robot->jointAt(i));
57
9/16
✓ Branch 0 taken 26 times.
✓ Branch 1 taken 1 times.
✓ Branch 3 taken 26 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 26 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 26 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 26 times.
✗ Branch 18 not taken.
✓ Branch 23 taken 26 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 26 times.
✗ Branch 27 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 26 times.
54 if (i > 0) BOOST_CHECK(*joint != *robot->jointAt(i - 1));
58
59 // Set bounds
60
2/4
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
54 vector_t l0(joint->configSize());
61
2/4
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
54 vector_t u0(joint->configSize());
62
1/2
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
54 l0.fill(-1.);
63
1/2
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
54 u0.fill(1.);
64
2/4
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
54 joint->lowerBounds(l0);
65
2/4
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
54 joint->upperBounds(u0);
66 // Get bounds
67
2/4
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
54 vector_t l1(joint->configSize());
68
2/4
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
54 vector_t u1(joint->configSize());
69
3/4
✓ Branch 2 taken 60 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 33 times.
✓ Branch 5 taken 27 times.
120 for (size_type i = 0; i < joint->configSize(); ++i) {
70
2/4
✓ Branch 2 taken 33 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 33 times.
✗ Branch 6 not taken.
66 l1[i] = joint->lowerBound(i);
71
2/4
✓ Branch 2 taken 33 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 33 times.
✗ Branch 6 not taken.
66 u1[i] = joint->upperBound(i);
72 }
73
7/14
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 27 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 27 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 27 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 27 times.
✗ Branch 21 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 27 times.
54 BOOST_CHECK(l0 == l1);
74
7/14
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 27 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 27 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 27 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 27 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 27 times.
✗ Branch 21 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 27 times.
54 BOOST_CHECK(u0 == u1);
75 54 }
76 2 }
77