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();
|
||||
return other != nullptr && dc->equals(*other, tol);
|
||||
}
|
||||
return inner_->equals(*(e->inner_), tol);
|
||||
|
||||
return inner_ ? (e->inner_ ? inner_->equals(*(e->inner_), tol) : false)
|
||||
: !(e->inner_);
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <gtsam/base/serializationTestHelpers.h>
|
||||
#include <gtsam/hybrid/GaussianMixture.h>
|
||||
#include <gtsam/hybrid/GaussianMixtureFactor.h>
|
||||
#include <gtsam/hybrid/HybridConditional.h>
|
||||
#include <gtsam/hybrid/HybridDiscreteFactor.h>
|
||||
#include <gtsam/hybrid/HybridGaussianFactor.h>
|
||||
#include <gtsam/inference/Symbol.h>
|
||||
|
@ -105,6 +106,20 @@ TEST(HybridSerialization, GaussianMixtureFactor) {
|
|||
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(HybridSerialization, GaussianMixture) {
|
||||
|
|
Loading…
Reference in New Issue