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 |