Fixed bug in equality check
parent
12290dc7b2
commit
6b14e652ff
|
@ -117,11 +117,13 @@ void LinearContainerFactor::print(const std::string& s, const KeyFormatter& keyF
|
|||
/* ************************************************************************* */
|
||||
bool LinearContainerFactor::equals(const NonlinearFactor& f, double tol) const {
|
||||
const LinearContainerFactor* jcf = dynamic_cast<const LinearContainerFactor*>(&f);
|
||||
if (!jcf || factor_->equals(*jcf->factor_, tol) || NonlinearFactor::equals(f))
|
||||
if (!jcf || !factor_->equals(*jcf->factor_, tol) || !NonlinearFactor::equals(f))
|
||||
return false;
|
||||
if (!linearizationPoint_ && !jcf->linearizationPoint_)
|
||||
return true;
|
||||
return jcf->linearizationPoint_ && linearizationPoint_->equals(*jcf->linearizationPoint_, tol);
|
||||
if (linearizationPoint_ && jcf->linearizationPoint_)
|
||||
return linearizationPoint_->equals(*jcf->linearizationPoint_, tol);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include <gtsam_unstable/nonlinear/LinearContainerFactor.h>
|
||||
|
||||
#include <gtsam/base/TestableAssertions.h>
|
||||
#include <gtsam/geometry/Pose2.h>
|
||||
|
||||
using namespace gtsam;
|
||||
|
@ -95,6 +96,11 @@ TEST( testLinearContainerFactor, jacobian_factor_withlinpoints ) {
|
|||
values.insert(x2, poseA2);
|
||||
|
||||
LinearContainerFactor actFactor(expLinFactor, ordering, values);
|
||||
LinearContainerFactor actFactorNolin(expLinFactor, ordering);
|
||||
|
||||
EXPECT(assert_equal(actFactor, actFactor, tol));
|
||||
EXPECT(assert_inequal(actFactor, actFactorNolin, tol));
|
||||
EXPECT(assert_inequal(actFactorNolin, actFactor, tol));
|
||||
|
||||
// Check contents
|
||||
Values expLinPoint;
|
||||
|
|
Loading…
Reference in New Issue