GCC Code Coverage Report


Directory: ./
File: unittest/all-joints.cpp
Date: 2025-02-12 21:03:38
Exec Total Coverage
Lines: 95 95 100.0%
Branches: 276 544 50.7%

Line Branch Exec Source
1 //
2 // Copyright(c) 2015-2021 CNRS INRIA
3 // Copyright(c) 2015 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5
6 #include "pinocchio/math/fwd.hpp"
7 #include "pinocchio/multibody/joint/joints.hpp"
8 #include "pinocchio/algorithm/rnea.hpp"
9 #include "pinocchio/algorithm/aba.hpp"
10 #include "pinocchio/algorithm/crba.hpp"
11 #include "pinocchio/algorithm/jacobian.hpp"
12 #include "pinocchio/algorithm/compute-all-terms.hpp"
13
14 #include <boost/test/unit_test.hpp>
15 #include <iostream>
16
17 using namespace pinocchio;
18
19 template<typename JointModel_>
20 struct init;
21
22 template<typename JointModel_>
23 struct init
24 {
25 136 static JointModel_ run()
26 {
27 136 JointModel_ jmodel;
28 136 jmodel.setIndexes(0, 0, 0);
29 136 return jmodel;
30 }
31 };
32
33 template<typename Scalar, int Options>
34 struct init<pinocchio::JointModelRevoluteUnalignedTpl<Scalar, Options>>
35 {
36 typedef pinocchio::JointModelRevoluteUnalignedTpl<Scalar, Options> JointModel;
37
38 4 static JointModel run()
39 {
40 typedef typename JointModel::Vector3 Vector3;
41
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 JointModel jmodel(Vector3::Random().normalized());
42
43 4 jmodel.setIndexes(0, 0, 0);
44 4 return jmodel;
45 }
46 };
47
48 template<typename Scalar, int Options>
49 struct init<pinocchio::JointModelRevoluteUnboundedUnalignedTpl<Scalar, Options>>
50 {
51 typedef pinocchio::JointModelRevoluteUnboundedUnalignedTpl<Scalar, Options> JointModel;
52
53 4 static JointModel run()
54 {
55 typedef typename JointModel::Vector3 Vector3;
56
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 JointModel jmodel(Vector3::Random().normalized());
57
58 4 jmodel.setIndexes(0, 0, 0);
59 4 return jmodel;
60 }
61 };
62
63 template<typename Scalar, int Options>
64 struct init<pinocchio::JointModelPrismaticUnalignedTpl<Scalar, Options>>
65 {
66 typedef pinocchio::JointModelPrismaticUnalignedTpl<Scalar, Options> JointModel;
67
68 4 static JointModel run()
69 {
70 typedef typename JointModel::Vector3 Vector3;
71
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 JointModel jmodel(Vector3::Random().normalized());
72
73 4 jmodel.setIndexes(0, 0, 0);
74 4 return jmodel;
75 }
76 };
77
78 template<typename Scalar, int Options, template<typename, int> class JointCollection>
79 struct init<pinocchio::JointModelTpl<Scalar, Options, JointCollection>>
80 {
81 typedef pinocchio::JointModelTpl<Scalar, Options, JointCollection> JointModel;
82
83 4 static JointModel run()
84 {
85 typedef pinocchio::JointModelRevoluteTpl<Scalar, Options, 0> JointModelRX;
86
1/2
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
4 JointModel jmodel((JointModelRX()));
87
88
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
4 jmodel.setIndexes(0, 0, 0);
89 4 return jmodel;
90 }
91 };
92
93 template<typename Scalar, int Options, template<typename, int> class JointCollection>
94 struct init<pinocchio::JointModelCompositeTpl<Scalar, Options, JointCollection>>
95 {
96 typedef pinocchio::JointModelCompositeTpl<Scalar, Options, JointCollection> JointModel;
97
98 4 static JointModel run()
99 {
100 typedef pinocchio::JointModelRevoluteTpl<Scalar, Options, 0> JointModelRX;
101 typedef pinocchio::JointModelRevoluteTpl<Scalar, Options, 1> JointModelRY;
102
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 JointModel jmodel((JointModelRX()));
103
3/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
4 jmodel.addJoint(JointModelRY());
104
105
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
4 jmodel.setIndexes(0, 0, 0);
106 4 return jmodel;
107 }
108 };
109
110 template<typename JointModel_>
111 struct init<pinocchio::JointModelMimic<JointModel_>>
112 {
113 typedef pinocchio::JointModelMimic<JointModel_> JointModel;
114
115 24 static JointModel run()
116 {
117
1/2
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
24 JointModel_ jmodel_ref = init<JointModel_>::run();
118
119
1/2
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
24 JointModel jmodel(jmodel_ref, 1., 0.);
120
1/2
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
24 jmodel.setIndexes(0, 0, 0);
121
122 48 return jmodel;
123 }
124 };
125
126 template<typename Scalar, int Options>
127 struct init<pinocchio::JointModelUniversalTpl<Scalar, Options>>
128 {
129 typedef pinocchio::JointModelUniversalTpl<Scalar, Options> JointModel;
130
131 4 static JointModel run()
132 {
133
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 JointModel jmodel(XAxis::vector(), YAxis::vector());
134
135 4 jmodel.setIndexes(0, 0, 0);
136 4 return jmodel;
137 }
138 };
139
140 template<typename Scalar, int Options, int axis>
141 struct init<pinocchio::JointModelHelicalTpl<Scalar, Options, axis>>
142 {
143 typedef pinocchio::JointModelHelicalTpl<Scalar, Options, axis> JointModel;
144
145 24 static JointModel run()
146 {
147
1/2
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
24 JointModel jmodel(static_cast<Scalar>(0.5));
148
149 24 jmodel.setIndexes(0, 0, 0);
150 24 return jmodel;
151 }
152 };
153
154 template<typename Scalar, int Options>
155 struct init<pinocchio::JointModelHelicalUnalignedTpl<Scalar, Options>>
156 {
157 typedef pinocchio::JointModelHelicalUnalignedTpl<Scalar, Options> JointModel;
158
159 4 static JointModel run()
160 {
161 typedef typename JointModel::Vector3 Vector3;
162
2/4
✓ Branch 2 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
4 JointModel jmodel(Vector3::Random().normalized());
163
164 4 jmodel.setIndexes(0, 0, 0);
165 4 return jmodel;
166 }
167 };
168
169 BOOST_AUTO_TEST_SUITE(joint_model_base_test)
170
171 template<typename TestDerived>
172 struct TestJointModel
173 {
174 template<typename JointModel>
175 216 void operator()(const pinocchio::JointModelBase<JointModel> &) const
176 {
177
1/2
✓ Branch 1 taken 108 times.
✗ Branch 2 not taken.
216 JointModel jmodel = init<JointModel>::run();
178
1/2
✓ Branch 1 taken 108 times.
✗ Branch 2 not taken.
432 return TestDerived::test(jmodel);
179 }
180 };
181
182 struct TestJointModelIsEqual : TestJointModel<TestJointModelIsEqual>
183 {
184 template<typename JointModel>
185 54 static void test(const JointModelBase<JointModel> & jmodel)
186 {
187
1/2
✓ Branch 2 taken 27 times.
✗ Branch 3 not taken.
54 JointModel jmodel_copy = jmodel.derived();
188
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 18 taken 27 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 27 times.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 27 times.
54 BOOST_CHECK(jmodel_copy == jmodel.derived());
189
190
1/2
✓ Branch 1 taken 24 times.
✗ Branch 2 not taken.
54 JointModel jmodel_any;
191
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 18 taken 27 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 27 times.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 27 times.
54 BOOST_CHECK(jmodel_any != jmodel.derived());
192
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 18 taken 27 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 27 times.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 27 times.
54 BOOST_CHECK(!jmodel_any.isEqual(jmodel.derived()));
193 54 }
194 };
195
196 struct TestJointModelTransform : TestJointModel<TestJointModelTransform>
197 {
198 template<typename JointModel>
199 54 static void test(const JointModelBase<JointModel> & jmodel)
200 {
201 typedef typename JointModel::JointDataDerived JointData;
202
1/2
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
54 JointData jdata = jmodel.createData();
203
6/8
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 24 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
54 Eigen::Matrix<typename JointModel::Scalar, 3, 1> v = jdata.M_accessor().translation();
204
5/8
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 26 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
54 Eigen::Matrix<typename JointModel::Scalar, 3, 3> R = jdata.M_accessor().rotation();
205 54 }
206 };
207
208
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(isEqual)
209 {
210 typedef JointCollectionDefault::JointModelVariant JointModelVariant;
211
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 boost::mpl::for_each<JointModelVariant::types>(TestJointModelIsEqual());
212
213
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 JointModelRX joint_revolutex;
214
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 JointModelRY joint_revolutey;
215
216
7/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
2 BOOST_CHECK(joint_revolutex != joint_revolutey);
217
218
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 JointModel jmodelx(joint_revolutex);
219
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 jmodelx.setIndexes(0, 0, 0);
220
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 TestJointModelIsEqual()(JointModel());
221
222
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 JointModel jmodel_any;
223
7/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
2 BOOST_CHECK(jmodel_any != jmodelx);
224 2 }
225
226
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(transform)
227 {
228 typedef JointCollectionDefault::JointModelVariant JointModelVariant;
229 2 boost::mpl::for_each<JointModelVariant::types>(TestJointModelTransform());
230
231
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 TestJointModelTransform()(JointModel());
232 2 }
233
234 struct TestJointModelCast : TestJointModel<TestJointModelCast>
235 {
236 template<typename JointModel>
237 54 static void test(const JointModelBase<JointModel> & jmodel)
238 {
239 typedef typename JointModel::Scalar Scalar;
240
6/12
✓ Branch 3 taken 27 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 27 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 27 times.
✗ Branch 13 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(jmodel == jmodel);
241
8/15
✓ Branch 3 taken 27 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 27 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 27 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 27 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 27 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 27 times.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 25 times.
✓ Branch 28 taken 2 times.
54 BOOST_CHECK(jmodel.template cast<Scalar>().isEqual(jmodel));
242
8/15
✓ Branch 3 taken 27 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 27 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 27 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 27 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 27 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 27 times.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 25 times.
✓ Branch 28 taken 2 times.
54 BOOST_CHECK(jmodel.template cast<Scalar>() == jmodel);
243
12/24
✓ Branch 3 taken 27 times.
✗ Branch 4 not taken.
✓ Branch 8 taken 27 times.
✗ Branch 9 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 23 taken 27 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 27 times.
✗ Branch 27 not taken.
✓ Branch 29 taken 27 times.
✗ Branch 30 not taken.
✓ Branch 32 taken 27 times.
✗ Branch 33 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 25 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
54 BOOST_CHECK_MESSAGE(
244 jmodel.template cast<long double>().template cast<double>() == jmodel,
245 std::string("Error when casting " + jmodel.shortname() + " from long double to double."));
246 54 }
247 };
248
249
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(cast)
250 {
251 typedef JointCollectionDefault::JointModelVariant JointModelVariant;
252 2 boost::mpl::for_each<JointModelVariant::types>(TestJointModelCast());
253
254
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 TestJointModelCast()(JointModel());
255 2 }
256
257 struct TestJointModelDisp : TestJointModel<TestJointModelDisp>
258 {
259 template<typename JointModel>
260 54 static void test(const JointModelBase<JointModel> & jmodel)
261 {
262 typedef typename JointModel::JointDataDerived JointData;
263
264
4/8
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 11 not taken.
54 std::cout << "shortname: " << jmodel.shortname() << std::endl;
265
4/8
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 11 not taken.
54 std::cout << "classname: " << jmodel.classname() << std::endl;
266
3/6
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 8 not taken.
54 std::cout << "disp:\n" << jmodel << std::endl;
267
268
1/2
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
54 JointData jdata = jmodel.createData();
269
270
4/8
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 11 not taken.
54 std::cout << "shortname: " << jdata.shortname() << std::endl;
271
4/8
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 11 not taken.
54 std::cout << "classname: " << jdata.classname() << std::endl;
272
3/6
✓ Branch 1 taken 27 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 8 not taken.
54 std::cout << "disp:\n" << jdata << std::endl;
273 54 }
274 };
275
276
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(test_disp)
277 {
278 typedef JointCollectionDefault::JointModelVariant JointModelVariant;
279 2 boost::mpl::for_each<JointModelVariant::types>(TestJointModelDisp());
280
281
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 TestJointModelDisp()(JointModel());
282 2 }
283
284 BOOST_AUTO_TEST_SUITE_END()
285