improved test, and slightly loosened tolerance when using MKL
parent
9336c0b8c0
commit
938454916f
|
@ -1348,7 +1348,7 @@ TEST( SmartStereoProjectionPoseFactor, HessianWithRotation ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *************************************************************************/
|
/* *************************************************************************/
|
||||||
TEST( SmartStereoProjectionPoseFactor, HessianWithRotationDegenerate ) {
|
TEST( SmartStereoProjectionPoseFactor, HessianWithRotationNonDegenerate ) {
|
||||||
|
|
||||||
vector<Key> views;
|
vector<Key> views;
|
||||||
views.push_back(x1);
|
views.push_back(x1);
|
||||||
|
@ -1381,6 +1381,9 @@ TEST( SmartStereoProjectionPoseFactor, HessianWithRotationDegenerate ) {
|
||||||
boost::shared_ptr<GaussianFactor> hessianFactor = smartFactor->linearize(
|
boost::shared_ptr<GaussianFactor> hessianFactor = smartFactor->linearize(
|
||||||
values);
|
values);
|
||||||
|
|
||||||
|
// check that it is non degenerate
|
||||||
|
EXPECT(smartFactor->isValid());
|
||||||
|
|
||||||
Pose3 poseDrift = Pose3(Rot3::Ypr(-M_PI / 2, 0., -M_PI / 2), Point3(0, 0, 0));
|
Pose3 poseDrift = Pose3(Rot3::Ypr(-M_PI / 2, 0., -M_PI / 2), Point3(0, 0, 0));
|
||||||
|
|
||||||
Values rotValues;
|
Values rotValues;
|
||||||
|
@ -1391,6 +1394,9 @@ TEST( SmartStereoProjectionPoseFactor, HessianWithRotationDegenerate ) {
|
||||||
boost::shared_ptr<GaussianFactor> hessianFactorRot = smartFactor->linearize(
|
boost::shared_ptr<GaussianFactor> hessianFactorRot = smartFactor->linearize(
|
||||||
rotValues);
|
rotValues);
|
||||||
|
|
||||||
|
// check that it is non degenerate
|
||||||
|
EXPECT(smartFactor->isValid());
|
||||||
|
|
||||||
// Hessian is invariant to rotations in the nondegenerate case
|
// Hessian is invariant to rotations in the nondegenerate case
|
||||||
EXPECT(
|
EXPECT(
|
||||||
assert_equal(hessianFactor->information(),
|
assert_equal(hessianFactor->information(),
|
||||||
|
@ -1407,10 +1413,14 @@ TEST( SmartStereoProjectionPoseFactor, HessianWithRotationDegenerate ) {
|
||||||
boost::shared_ptr<GaussianFactor> hessianFactorRotTran =
|
boost::shared_ptr<GaussianFactor> hessianFactorRotTran =
|
||||||
smartFactor->linearize(tranValues);
|
smartFactor->linearize(tranValues);
|
||||||
|
|
||||||
// Hessian is invariant to rotations and translations in the nondegenerate case
|
// Hessian is invariant to rotations and translations in the degenerate case
|
||||||
EXPECT(
|
EXPECT(
|
||||||
assert_equal(hessianFactor->information(),
|
assert_equal(hessianFactor->information(),
|
||||||
|
#ifdef GTSAM_USE_EIGEN_MKL
|
||||||
|
hessianFactorRotTran->information(), 1e-5));
|
||||||
|
#else
|
||||||
hessianFactorRotTran->information(), 1e-6));
|
hessianFactorRotTran->information(), 1e-6));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
Loading…
Reference in New Issue