Added conversion to base BayesNet from derived (includes Symbolic from Gaussian)
parent
19d1514008
commit
6b5a385b7e
|
|
@ -74,6 +74,12 @@ public:
|
||||||
/** Default constructor as an empty BayesNet */
|
/** Default constructor as an empty BayesNet */
|
||||||
BayesNet() {};
|
BayesNet() {};
|
||||||
|
|
||||||
|
/** convert from a derived type */
|
||||||
|
template<class DERIVEDCONDITIONAL>
|
||||||
|
BayesNet(const BayesNet<DERIVEDCONDITIONAL>& bn) {
|
||||||
|
conditionals_.assign(bn.begin(), bn.end());
|
||||||
|
}
|
||||||
|
|
||||||
/** BayesNet with 1 conditional */
|
/** BayesNet with 1 conditional */
|
||||||
BayesNet(const sharedConditional& conditional) { push_back(conditional); }
|
BayesNet(const sharedConditional& conditional) { push_back(conditional); }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,11 +34,6 @@ using namespace example;
|
||||||
Key kx(size_t i) { return Symbol('x',i); }
|
Key kx(size_t i) { return Symbol('x',i); }
|
||||||
Key kl(size_t i) { return Symbol('l',i); }
|
Key kl(size_t i) { return Symbol('l',i); }
|
||||||
|
|
||||||
//Symbol _B_('B', 0), _L_('L', 0);
|
|
||||||
//IndexConditional::shared_ptr
|
|
||||||
// B(new IndexConditional(_B_)),
|
|
||||||
// L(new IndexConditional(_L_, _B_));
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( SymbolicBayesNet, constructor )
|
TEST( SymbolicBayesNet, constructor )
|
||||||
{
|
{
|
||||||
|
|
@ -64,6 +59,18 @@ TEST( SymbolicBayesNet, constructor )
|
||||||
CHECK(assert_equal(expected, actual));
|
CHECK(assert_equal(expected, actual));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
TEST( SymbolicBayesNet, FromGaussian) {
|
||||||
|
SymbolicBayesNet expected;
|
||||||
|
expected.push_back(IndexConditional::shared_ptr(new IndexConditional(0, 1)));
|
||||||
|
expected.push_back(IndexConditional::shared_ptr(new IndexConditional(1)));
|
||||||
|
|
||||||
|
GaussianBayesNet gbn = createSmallGaussianBayesNet();
|
||||||
|
SymbolicBayesNet actual(gbn);
|
||||||
|
|
||||||
|
EXPECT(assert_equal(expected, actual));
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int main() {
|
int main() {
|
||||||
TestResult tr;
|
TestResult tr;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue