fix minor bug in HybridConditional and test its serialization
parent
74142e4be1
commit
2bb4fd6530
|
@ -116,7 +116,6 @@ bool HybridConditional::equals(const HybridFactor &other, double tol) const {
|
||||||
auto other = e->asDiscrete();
|
auto other = e->asDiscrete();
|
||||||
return other != nullptr && dc->equals(*other, tol);
|
return other != nullptr && dc->equals(*other, tol);
|
||||||
}
|
}
|
||||||
return inner_->equals(*(e->inner_), tol);
|
|
||||||
|
|
||||||
return inner_ ? (e->inner_ ? inner_->equals(*(e->inner_), tol) : false)
|
return inner_ ? (e->inner_ ? inner_->equals(*(e->inner_), tol) : false)
|
||||||
: !(e->inner_);
|
: !(e->inner_);
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <gtsam/base/serializationTestHelpers.h>
|
#include <gtsam/base/serializationTestHelpers.h>
|
||||||
#include <gtsam/hybrid/GaussianMixture.h>
|
#include <gtsam/hybrid/GaussianMixture.h>
|
||||||
#include <gtsam/hybrid/GaussianMixtureFactor.h>
|
#include <gtsam/hybrid/GaussianMixtureFactor.h>
|
||||||
|
#include <gtsam/hybrid/HybridConditional.h>
|
||||||
#include <gtsam/hybrid/HybridDiscreteFactor.h>
|
#include <gtsam/hybrid/HybridDiscreteFactor.h>
|
||||||
#include <gtsam/hybrid/HybridGaussianFactor.h>
|
#include <gtsam/hybrid/HybridGaussianFactor.h>
|
||||||
#include <gtsam/inference/Symbol.h>
|
#include <gtsam/inference/Symbol.h>
|
||||||
|
@ -105,6 +106,20 @@ TEST(HybridSerialization, GaussianMixtureFactor) {
|
||||||
EXPECT(equalsBinary<GaussianMixtureFactor>(factor));
|
EXPECT(equalsBinary<GaussianMixtureFactor>(factor));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ****************************************************************************/
|
||||||
|
// Test HybridConditional serialization.
|
||||||
|
TEST(HybridSerialization, HybridConditional) {
|
||||||
|
const DiscreteKey mode(M(0), 2);
|
||||||
|
Matrix1 I = Matrix1::Identity();
|
||||||
|
const auto conditional = boost::make_shared<GaussianConditional>(
|
||||||
|
GaussianConditional::FromMeanAndStddev(Z(0), I, X(0), Vector1(0), 0.5));
|
||||||
|
const HybridConditional hc(conditional);
|
||||||
|
|
||||||
|
EXPECT(equalsObj<HybridConditional>(hc));
|
||||||
|
EXPECT(equalsXML<HybridConditional>(hc));
|
||||||
|
EXPECT(equalsBinary<HybridConditional>(hc));
|
||||||
|
}
|
||||||
|
|
||||||
/* ****************************************************************************/
|
/* ****************************************************************************/
|
||||||
// Test GaussianMixture serialization.
|
// Test GaussianMixture serialization.
|
||||||
TEST(HybridSerialization, GaussianMixture) {
|
TEST(HybridSerialization, GaussianMixture) {
|
||||||
|
|
Loading…
Reference in New Issue