mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-07 05:31:48 +08:00
backport unit-tests fixes
This commit is contained in:
parent
02ba4e2f54
commit
d286300362
@ -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()
|
||||||
|
@ -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();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user