add demarkers

release/4.3a0
Varun Agrawal 2022-05-27 15:28:11 -04:00
parent 7bfa011886
commit d60c4aca5a
2 changed files with 13 additions and 15 deletions

View File

@ -23,12 +23,12 @@ virtual class HybridConditional {
bool equals(const gtsam::HybridConditional& other, double tol = 1e-9) const;
size_t nrFrontals() const;
size_t nrParents() const;
Factor* getInner();
Factor* inner();
};
#include <gtsam/hybrid/GaussianMixtureFactor.h>
class GaussianMixtureFactor : gtsam::HybridFactor {
static GaussianMixtureFactor FromFactorList(
static GaussianMixtureFactor FromFactors(
const gtsam::KeyVector& continuousKeys,
const gtsam::DiscreteKeys& discreteKeys,
const std::vector<gtsam::GaussianFactor::shared_ptr>& factorsList);
@ -40,7 +40,7 @@ class GaussianMixtureFactor : gtsam::HybridFactor {
#include <gtsam/hybrid/GaussianMixtureConditional.h>
class GaussianMixtureConditional : gtsam::HybridFactor {
static GaussianMixtureConditional FromConditionalList(
static GaussianMixtureConditional FromConditionals(
const gtsam::KeyVector& continuousFrontals,
const gtsam::KeyVector& continuousParents,
const gtsam::DiscreteKeys& discreteParents,

View File

@ -90,6 +90,7 @@ TEST(HybridFactorGraph, creation) {
GTSAM_PRINT(clgc);
}
/* ************************************************************************* */
TEST(HybridFactorGraph, eliminate) {
HybridFactorGraph hfg;
@ -100,6 +101,7 @@ TEST(HybridFactorGraph, eliminate) {
EXPECT_LONGS_EQUAL(result.first->size(), 1);
}
/* ************************************************************************* */
TEST(HybridFactorGraph, eliminateMultifrontal) {
HybridFactorGraph hfg;
@ -116,6 +118,7 @@ TEST(HybridFactorGraph, eliminateMultifrontal) {
EXPECT_LONGS_EQUAL(result.second->size(), 1);
}
/* ************************************************************************* */
TEST(HybridFactorGraph, eliminateFullSequentialEqualChance) {
HybridFactorGraph hfg;
@ -139,9 +142,8 @@ TEST(HybridFactorGraph, eliminateFullSequentialEqualChance) {
EXPECT_DOUBLES_EQUAL(0.6225, dc->operator()(dv), 1e-3);
}
/* ************************************************************************* */
TEST(HybridFactorGraph, eliminateFullSequentialSimple) {
std::cout << ">>>>>>>>>>>>>>\n";
HybridFactorGraph hfg;
DiscreteKey c1(C(1), 2);
@ -168,9 +170,8 @@ TEST(HybridFactorGraph, eliminateFullSequentialSimple) {
GTSAM_PRINT(*result);
}
/* ************************************************************************* */
TEST(HybridFactorGraph, eliminateFullMultifrontalSimple) {
std::cout << ">>>>>>>>>>>>>>\n";
HybridFactorGraph hfg;
DiscreteKey c1(C(1), 2);
@ -202,9 +203,8 @@ TEST(HybridFactorGraph, eliminateFullMultifrontalSimple) {
GTSAM_PRINT(*result->marginalFactor(C(2)));
}
/* ************************************************************************* */
TEST(HybridFactorGraph, eliminateFullMultifrontalCLG) {
std::cout << ">>>>>>>>>>>>>>\n";
HybridFactorGraph hfg;
DiscreteKey c(C(1), 2);
@ -235,13 +235,12 @@ TEST(HybridFactorGraph, eliminateFullMultifrontalCLG) {
*/
}
/* ************************************************************************* */
/*
* This test is about how to assemble the Bayes Tree roots after we do partial
* elimination
*/
TEST(HybridFactorGraph, eliminateFullMultifrontalTwoClique) {
std::cout << ">>>>>>>>>>>>>>\n";
HybridFactorGraph hfg;
hfg.add(JacobianFactor(X(0), I_3x3, X(1), -I_3x3, Z_3x1));
@ -308,6 +307,7 @@ TEST(HybridFactorGraph, eliminateFullMultifrontalTwoClique) {
*/
}
/* ************************************************************************* */
// TODO(fan): make a graph like Varun's paper one
TEST(HybridFactorGraph, Switching) {
auto N = 12;
@ -415,6 +415,7 @@ TEST(HybridFactorGraph, Switching) {
hbt->marginalFactor(C(11))->print("HBT: ");
}
/* ************************************************************************* */
// TODO(fan): make a graph like Varun's paper one
TEST(HybridFactorGraph, SwitchingISAM) {
auto N = 11;
@ -510,6 +511,7 @@ TEST(HybridFactorGraph, SwitchingISAM) {
}
}
/* ************************************************************************* */
TEST(HybridFactorGraph, SwitchingTwoVar) {
const int N = 7;
auto hfg = makeSwitchingChain(N, X);
@ -599,10 +601,6 @@ TEST(HybridFactorGraph, SwitchingTwoVar) {
/* ************************************************************************* */
int main() {
#ifdef HYBRID_DEBUG
::signal(SIGSEGV, &my_signal_handler);
::signal(SIGBUS, &my_signal_handler);
#endif
TestResult tr;
return TestRegistry::runAllTests(tr);
}