added test for this issue
parent
1209857a33
commit
f1bed302e4
|
|
@ -363,6 +363,34 @@ TEST(TestLinearContainerFactor, Rekey) {
|
|||
CHECK(assert_equal(linearization_pt_rekeyed.keys()[0], lcf_factor_rekey_ptr->keys()[1]));
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(TestLinearContainerFactor, Rekey2) {
|
||||
// Make an example factor
|
||||
auto nonlinear_factor =
|
||||
boost::make_shared<gtsam::BetweenFactor<gtsam::Point3>>(
|
||||
gtsam::Symbol('x', 0), gtsam::Symbol('l', 0), gtsam::Point3(0, 0, 0),
|
||||
gtsam::noiseModel::Isotropic::Sigma(3, 1));
|
||||
|
||||
// Linearize and create an LCF
|
||||
gtsam::Values linearization_pt;
|
||||
linearization_pt.insert(gtsam::Symbol('x', 0), gtsam::Point3(0, 0, 0));
|
||||
linearization_pt.insert(gtsam::Symbol('l', 0), gtsam::Point3(0, 0, 0));
|
||||
|
||||
LinearContainerFactor lcf_factor(
|
||||
nonlinear_factor->linearize(linearization_pt), linearization_pt);
|
||||
|
||||
// Define a key mapping with only a single key remapped.
|
||||
// This should throw an exception if there is a bug.
|
||||
std::map<gtsam::Key, gtsam::Key> key_map;
|
||||
key_map[gtsam::Symbol('x', 0)] = gtsam::Symbol('x', 4);
|
||||
|
||||
// Cast back to LCF ptr
|
||||
LinearContainerFactor::shared_ptr lcf_factor_rekey_ptr =
|
||||
boost::static_pointer_cast<LinearContainerFactor>(
|
||||
lcf_factor.rekey(key_map));
|
||||
CHECK(lcf_factor_rekey_ptr);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
int main() { TestResult tr; return TestRegistry::runAllTests(tr); }
|
||||
/* ************************************************************************* */
|
||||
|
|
|
|||
Loading…
Reference in New Issue