diff --git a/.cproject b/.cproject index 98eedc90b..2f30bd246 100644 --- a/.cproject +++ b/.cproject @@ -322,6 +322,14 @@ true true + + make + -j2 + testGaussianFactor.run + true + true + true + make -j2 @@ -348,7 +356,6 @@ make - tests/testBayesTree.run true false @@ -356,7 +363,6 @@ make - testBinaryBayesNet.run true false @@ -404,7 +410,6 @@ make - testSymbolicBayesNet.run true false @@ -412,7 +417,6 @@ make - tests/testSymbolicFactor.run true false @@ -420,7 +424,6 @@ make - testSymbolicFactorGraph.run true false @@ -436,20 +439,11 @@ make - tests/testBayesTree true false true - - make - -j2 - testGaussianFactor.run - true - true - true - make -j2 @@ -484,6 +478,7 @@ make + testGraph.run true false @@ -579,6 +574,7 @@ make + testInference.run true false @@ -586,6 +582,7 @@ make + testGaussianBayesNet.run true false @@ -593,6 +590,7 @@ make + testGaussianFactor.run true false @@ -600,6 +598,7 @@ make + testJunctionTree.run true false @@ -607,6 +606,7 @@ make + testSymbolicBayesNet.run true false @@ -614,6 +614,7 @@ make + testSymbolicFactorGraph.run true false @@ -821,12 +822,19 @@ make - testGaussianISAM.run true true true + + make + + testSymbolicFactorGraph.run + true + true + true + make -j2 @@ -925,7 +933,6 @@ make - testErrors.run true false @@ -1075,10 +1082,10 @@ true true - + make - -j2 - testEliminationTree.run + + tests/testEliminationTree.run true true true @@ -1099,6 +1106,14 @@ true true + + make + + tests/testConditional.run + true + true + true + make -j2 @@ -1261,6 +1276,7 @@ make + testSimulated2DOriented.run true false @@ -1300,6 +1316,7 @@ make + testSimulated2D.run true false @@ -1307,6 +1324,7 @@ make + testSimulated3D.run true false @@ -1354,6 +1372,7 @@ make + tests/testGaussianISAM2 true false @@ -1375,86 +1394,6 @@ true true - - make - -j2 - install - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - dist - true - true - true - - - make - -j2 - inference/tests/testEliminationTree - true - true - true - - - make - -j2 - slam/tests/testGaussianISAM2 - true - true - true - - - make - -j2 - inference/tests/testVariableIndex - true - true - true - - - make - -j2 - inference/tests/testJunctionTree - true - true - true - - - make - -j2 - linear/tests/testGaussianJunctionTree - true - true - true - make -j2 @@ -1551,6 +1490,86 @@ true true + + make + -j2 + install + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + dist + true + true + true + + + make + -j2 + inference/tests/testEliminationTree + true + true + true + + + make + -j2 + slam/tests/testGaussianISAM2 + true + true + true + + + make + -j2 + inference/tests/testVariableIndex + true + true + true + + + make + -j2 + inference/tests/testJunctionTree + true + true + true + + + make + -j2 + linear/tests/testGaussianJunctionTree + true + true + true + make -j2 @@ -1905,6 +1924,14 @@ true true + + make + -j2 + testGaussianFactor.run + true + true + true + make -j2 @@ -1931,7 +1958,6 @@ make - tests/testBayesTree.run true false @@ -1939,7 +1965,6 @@ make - testBinaryBayesNet.run true false @@ -1987,7 +2012,6 @@ make - testSymbolicBayesNet.run true false @@ -1995,7 +2019,6 @@ make - tests/testSymbolicFactor.run true false @@ -2003,7 +2026,6 @@ make - testSymbolicFactorGraph.run true false @@ -2019,20 +2041,11 @@ make - tests/testBayesTree true false true - - make - -j2 - testGaussianFactor.run - true - true - true - make -j2 @@ -2067,6 +2080,7 @@ make + testGraph.run true false @@ -2162,6 +2176,7 @@ make + testInference.run true false @@ -2169,6 +2184,7 @@ make + testGaussianBayesNet.run true false @@ -2176,6 +2192,7 @@ make + testGaussianFactor.run true false @@ -2183,6 +2200,7 @@ make + testJunctionTree.run true false @@ -2190,6 +2208,7 @@ make + testSymbolicBayesNet.run true false @@ -2197,6 +2216,7 @@ make + testSymbolicFactorGraph.run true false @@ -2404,12 +2424,19 @@ make - testGaussianISAM.run true true true + + make + + testSymbolicFactorGraph.run + true + true + true + make -j2 @@ -2508,7 +2535,6 @@ make - testErrors.run true false @@ -2658,10 +2684,10 @@ true true - + make - -j2 - testEliminationTree.run + + tests/testEliminationTree.run true true true @@ -2682,6 +2708,14 @@ true true + + make + + tests/testConditional.run + true + true + true + make -j2 @@ -2844,6 +2878,7 @@ make + testSimulated2DOriented.run true false @@ -2883,6 +2918,7 @@ make + testSimulated2D.run true false @@ -2890,6 +2926,7 @@ make + testSimulated3D.run true false @@ -2937,6 +2974,7 @@ make + tests/testGaussianISAM2 true false @@ -2958,86 +2996,6 @@ true true - - make - -j2 - install - true - true - true - - - make - -j2 - clean - true - true - true - - - make - -j2 - check - true - true - true - - - make - -j2 - all - true - true - true - - - make - -j2 - dist - true - true - true - - - make - -j2 - inference/tests/testEliminationTree - true - true - true - - - make - -j2 - slam/tests/testGaussianISAM2 - true - true - true - - - make - -j2 - inference/tests/testVariableIndex - true - true - true - - - make - -j2 - inference/tests/testJunctionTree - true - true - true - - - make - -j2 - linear/tests/testGaussianJunctionTree - true - true - true - make -j2 @@ -3134,6 +3092,86 @@ true true + + make + -j2 + install + true + true + true + + + make + -j2 + clean + true + true + true + + + make + -j2 + check + true + true + true + + + make + -j2 + all + true + true + true + + + make + -j2 + dist + true + true + true + + + make + -j2 + inference/tests/testEliminationTree + true + true + true + + + make + -j2 + slam/tests/testGaussianISAM2 + true + true + true + + + make + -j2 + inference/tests/testVariableIndex + true + true + true + + + make + -j2 + inference/tests/testJunctionTree + true + true + true + + + make + -j2 + linear/tests/testGaussianJunctionTree + true + true + true + make -j2 diff --git a/inference/Makefile.am b/inference/Makefile.am index e1c020d83..5aec1229e 100644 --- a/inference/Makefile.am +++ b/inference/Makefile.am @@ -19,8 +19,8 @@ headers += SymbolMap.h Factor-inl.h Conditional.h IndexTable.h # Symbolic Inference sources += Factor.cpp SymbolicFactorGraph.cpp -check_PROGRAMS += tests/testSymbolicFactor tests/testSymbolicFactorGraph tests/testSymbolicBayesNet -check_PROGRAMS += tests/testVariableIndex tests/testVariableSlots +check_PROGRAMS += tests/testSymbolicFactor tests/testSymbolicFactorGraph tests/testConditional +check_PROGRAMS += tests/testSymbolicBayesNet tests/testVariableIndex tests/testVariableSlots # Inference headers += inference-inl.h VariableSlots-inl.h diff --git a/inference/tests/testConditional.cpp b/inference/tests/testConditional.cpp new file mode 100644 index 000000000..c383c3e6b --- /dev/null +++ b/inference/tests/testConditional.cpp @@ -0,0 +1,95 @@ +/** + * @file testConditional.cpp + * @brief Unit tests for Conditional class + * @author Frank Dellaert + */ + +#include // for operator += +#include // for operator += +using namespace boost::assign; + +#include +#include +#include + +using namespace std; +using namespace gtsam; + +/* ************************************************************************* */ +TEST( Conditional, empty ) +{ + Conditional c0; + LONGS_EQUAL(0,c0.nrFrontals()) + LONGS_EQUAL(0,c0.nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, noParents ) +{ + Conditional c0(0); + LONGS_EQUAL(1,c0.nrFrontals()) + LONGS_EQUAL(0,c0.nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, oneParents ) +{ + Conditional c0(0,1); + LONGS_EQUAL(1,c0.nrFrontals()) + LONGS_EQUAL(1,c0.nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, twoParents ) +{ + Conditional c0(0,1,2); + LONGS_EQUAL(1,c0.nrFrontals()) + LONGS_EQUAL(2,c0.nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, threeParents ) +{ + Conditional c0(0,1,2,3); + LONGS_EQUAL(1,c0.nrFrontals()) + LONGS_EQUAL(3,c0.nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, fourParents ) +{ + vector parents; + parents += 1,2,3,4; + Conditional c0(0,parents); + LONGS_EQUAL(1,c0.nrFrontals()) + LONGS_EQUAL(4,c0.nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, fromRange ) +{ + list keys; + keys += 1,2,3,4,5; + Conditional::shared_ptr c0 = Conditional::fromRange(keys.begin(),keys.end(),2); + LONGS_EQUAL(2,c0->nrFrontals()) + LONGS_EQUAL(3,c0->nrParents()) +} + +/* ************************************************************************* */ +TEST( Conditional, equals ) +{ + Conditional c0(0, 1, 2), c1(0, 1, 2), c2(1, 2, 3), c3(3,4); + CHECK(c0.equals(c1)); + CHECK(c1.equals(c0)); + CHECK(!c0.equals(c2)); + CHECK(!c2.equals(c0)); + CHECK(!c0.equals(c3)); + CHECK(!c3.equals(c0)); +} + +/* ************************************************************************* */ +int main() { + TestResult tr; + return TestRegistry::runAllTests(tr); +} +/* ************************************************************************* */