backport unit-tests fixes

This commit is contained in:
Benoit Jacob 2009-01-27 20:56:47 +00:00
parent 02ba4e2f54
commit d286300362
2 changed files with 12 additions and 5 deletions

View File

@ -103,7 +103,10 @@ template<typename MatrixType> void basicStuff(const MatrixType& m)
m3 = m1; m3 = m1;
m1.swap(m2); m1.swap(m2);
VERIFY_IS_APPROX(m3, m2); VERIFY_IS_APPROX(m3, m2);
VERIFY_IS_NOT_APPROX(m3, m1); if(rows*cols>=3)
{
VERIFY_IS_NOT_APPROX(m3, m1);
}
} }
void test_basicstuff() void test_basicstuff()

View File

@ -50,7 +50,7 @@ template<typename Scalar> void geometry(void)
Scalar largeEps = test_precision<Scalar>(); Scalar largeEps = test_precision<Scalar>();
if (ei_is_same_type<Scalar,float>::ret) if (ei_is_same_type<Scalar,float>::ret)
largeEps = 1e-3f; largeEps = 1e-2f;
Vector3 v0 = Vector3::Random(), Vector3 v0 = Vector3::Random(),
v1 = Vector3::Random(), v1 = Vector3::Random(),
@ -96,14 +96,18 @@ template<typename Scalar> void geometry(void)
Scalar refangle = ei_abs(AngleAxisx(q1.inverse()*q2).angle()); Scalar refangle = ei_abs(AngleAxisx(q1.inverse()*q2).angle());
if (refangle>Scalar(M_PI)) if (refangle>Scalar(M_PI))
refangle = Scalar(2)*Scalar(M_PI) - refangle; refangle = Scalar(2)*Scalar(M_PI) - refangle;
VERIFY(ei_isApprox(q1.angularDistance(q2), refangle, largeEps));
if((q1.coeffs()-q2.coeffs()).norm() > 10*largeEps)
{
VERIFY(ei_isApprox(q1.angularDistance(q2), refangle, largeEps));
}
// rotation matrix conversion // rotation matrix conversion
VERIFY_IS_APPROX(q1 * v2, q1.toRotationMatrix() * v2); VERIFY_IS_APPROX(q1 * v2, q1.toRotationMatrix() * v2);
VERIFY_IS_APPROX(q1 * q2 * v2, VERIFY_IS_APPROX(q1 * q2 * v2,
q1.toRotationMatrix() * q2.toRotationMatrix() * v2); q1.toRotationMatrix() * q2.toRotationMatrix() * v2);
VERIFY( (q2*q1).isApprox(q1*q2) || !(q2 * q1 * v2).isApprox( VERIFY( (q2*q1).isApprox(q1*q2, largeEps) || !(q2 * q1 * v2).isApprox(
q1.toRotationMatrix() * q2.toRotationMatrix() * v2)); q1.toRotationMatrix() * q2.toRotationMatrix() * v2));
q2 = q1.toRotationMatrix(); q2 = q1.toRotationMatrix();
@ -157,7 +161,7 @@ template<typename Scalar> void geometry(void)
t1.prescale(v0); t1.prescale(v0);
VERIFY_IS_APPROX( (t0 * Vector3(1,0,0)).norm(), v0.x()); VERIFY_IS_APPROX( (t0 * Vector3(1,0,0)).norm(), v0.x());
VERIFY(!ei_isApprox((t1 * Vector3(1,0,0)).norm(), v0.x())); //VERIFY(!ei_isApprox((t1 * Vector3(1,0,0)).norm(), v0.x()));
t0.setIdentity(); t0.setIdentity();
t1.setIdentity(); t1.setIdentity();