24 CPPUNIT_ASSERT(Eigen::Map<Eigen::Matrix3d>(I0.
data).isZero());
26 CPPUNIT_ASSERT(Eigen::Map<Eigen::Matrix3d>(I1.
data).isZero());
27 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I0.
data)-Eigen::Map<Eigen::Matrix3d>(I1.
data)).isZero());
32 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I3.
data)-Eigen::Map<Eigen::Matrix3d>(I2.
data)).isZero());
34 CPPUNIT_ASSERT(!(Eigen::Map<Eigen::Matrix3d>(I3.
data)-Eigen::Map<Eigen::Matrix3d>(I2.
data)).isZero());
37 Eigen::Map<Eigen::Matrix3d>(I0.
data).setRandom();
39 CPPUNIT_ASSERT(!Eigen::Map<Eigen::Matrix3d>(I1.
data).isZero());
41 CPPUNIT_ASSERT(Eigen::Map<Eigen::Matrix3d>(I1.
data).isZero());
44 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I2.
data)-Eigen::Map<Eigen::Matrix3d>(I2.
data).transpose()).isZero());
51 CPPUNIT_ASSERT((Eigen::Map<Eigen::Vector3d>(momentum.
data)-(Eigen::Map<Eigen::Matrix3d>(I2.
data)*Eigen::Map<Eigen::Vector3d>(omega.data))).isZero());
61 Eigen::Matrix3d Ic_eig = Eigen::Matrix3d::Random();
63 Eigen::Map<Eigen::Matrix3d>(Ic.
data)=Ic_eig+Ic_eig.transpose();
66 CPPUNIT_ASSERT_EQUAL(I2.
getMass(),mass);
68 CPPUNIT_ASSERT_EQUAL(I2.
getCOG(),c);
69 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I2.
getRotationalInertia().
data)-(Eigen::Map<Eigen::Matrix3d>(Ic.
data)-mass*(Eigen::Map<Eigen::Vector3d>(c.
data)*Eigen::Map<Eigen::Vector3d>(c.
data).transpose()-(Eigen::Map<Eigen::Vector3d>(c.
data).dot(Eigen::Map<Eigen::Vector3d>(c.
data))*Eigen::Matrix3d::Identity())))).isZero());
90 CPPUNIT_ASSERT_EQUAL(I2.getCOG(),I4.
getCOG());
91 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I2.getRotationalInertia().data)-Eigen::Map<Eigen::Matrix3d>(I4.
getRotationalInertia().
data)).isZero());
96 CPPUNIT_ASSERT_EQUAL(I3.getCOG(),I4.
getCOG());
97 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I3.getRotationalInertia().data)-Eigen::Map<Eigen::Matrix3d>(I4.
getRotationalInertia().
data)).isZero());
105 CPPUNIT_ASSERT_EQUAL(I2.getCOG(),I4.
getCOG());
106 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I2.getRotationalInertia().data)-Eigen::Map<Eigen::Matrix3d>(I4.
getRotationalInertia().
data)).isZero());
110 CPPUNIT_ASSERT_EQUAL(I3.getCOG(),I4.
getCOG());
111 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I3.getRotationalInertia().data)-Eigen::Map<Eigen::Matrix3d>(I4.
getRotationalInertia().
data)).isZero());
120 CPPUNIT_ASSERT_EQUAL(T*f,(T*I2)*(T*a));
126 CPPUNIT_ASSERT_EQUAL(I2.getCOG(),I4.
getCOG());
127 CPPUNIT_ASSERT((Eigen::Map<Eigen::Matrix3d>(I2.getRotationalInertia().data)-Eigen::Map<Eigen::Matrix3d>(I4.
getRotationalInertia().
data)).isZero());
136 Eigen::Matrix3d::Map(Ic.
data).triangularView<Eigen::Lower>()= Eigen::Matrix3d::Random().triangularView<Eigen::Lower>();
141 CPPUNIT_ASSERT_EQUAL(I2.
M,I1.
M);
142 CPPUNIT_ASSERT_EQUAL(I2.
H,I1.
H);
143 CPPUNIT_ASSERT_EQUAL(I2.
I,I1.
I);
145 CPPUNIT_ASSERT_EQUAL(I2.
M,I1.
M);
146 CPPUNIT_ASSERT_EQUAL(I2.
H,I1.
H);
147 CPPUNIT_ASSERT_EQUAL(I2.
I,I1.
I);
149 CPPUNIT_ASSERT_EQUAL(I2.
M,(Eigen::Matrix3d::Identity()*mass).eval());
150 CPPUNIT_ASSERT(!I2.
I.isZero());
155 CPPUNIT_ASSERT((I2.
M-I3.
M).isZero());
156 CPPUNIT_ASSERT((I2.
H-I3.
H).isZero());
157 CPPUNIT_ASSERT((I2.
I-I3.
I).isZero());
160 CPPUNIT_ASSERT(I4.
M.isZero());
161 CPPUNIT_ASSERT(I4.
H.isZero());
162 CPPUNIT_ASSERT(I4.
I.isZero());
170 Eigen::Map<Eigen::Matrix3d> E(R.
data);
171 Eigen::Matrix3d tmp = E.transpose()*I2.M*E;
172 CPPUNIT_ASSERT((I3.M-tmp).isZero());
173 tmp = E.transpose()*I2.H*E;
174 CPPUNIT_ASSERT((I3.H-tmp).isZero());
175 tmp = E.transpose()*I2.I*E;
176 CPPUNIT_ASSERT((I3.I-tmp).isZero());
179 CPPUNIT_ASSERT((I2.M-I4.
M).isZero());
180 CPPUNIT_ASSERT((I2.H-I4.
H).isZero());
181 CPPUNIT_ASSERT((I2.I-I4.
I).isZero());
185 CPPUNIT_ASSERT((I3.M-I4.
M).isZero());
186 CPPUNIT_ASSERT((I3.H-I4.
H).isZero());
187 CPPUNIT_ASSERT((I3.I-I4.
I).isZero());
194 CPPUNIT_ASSERT((I2.M-I4.
M).isZero());
195 CPPUNIT_ASSERT((I2.H-I4.
H).isZero());
196 CPPUNIT_ASSERT((I2.I-I4.
I).isZero());
199 CPPUNIT_ASSERT((I3.M-I4.
M).isZero());
200 CPPUNIT_ASSERT((I3.H-I4.
H).isZero());
201 CPPUNIT_ASSERT((I3.I-I4.
I).isZero());
211 CPPUNIT_ASSERT_EQUAL(T*f,(T*I2)*(T*a));
216 CPPUNIT_ASSERT((I2.M-I4.
M).isZero());
217 CPPUNIT_ASSERT((I2.H-I4.
H).isZero());
218 CPPUNIT_ASSERT((I2.I-I4.
I).isZero());