Some more tests and comments about associated Bayes trees. All succeed on Mac.
							parent
							
								
									0be63753bc
								
							
						
					
					
						commit
						36426fade4
					
				
							
								
								
									
										26
									
								
								.cproject
								
								
								
								
							
							
						
						
									
										26
									
								
								.cproject
								
								
								
								
							|  | @ -1277,7 +1277,6 @@ | |||
| 			</target> | ||||
| 			<target name="testSimulated2DOriented.run" path="slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSimulated2DOriented.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1317,7 +1316,6 @@ | |||
| 			</target> | ||||
| 			<target name="testSimulated2D.run" path="slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSimulated2D.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1325,7 +1323,6 @@ | |||
| 			</target> | ||||
| 			<target name="testSimulated3D.run" path="slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSimulated3D.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1429,6 +1426,7 @@ | |||
| 			</target> | ||||
| 			<target name="testErrors.run" path="linear" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testErrors.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1723,6 +1721,7 @@ | |||
| 			</target> | ||||
| 			<target name="Generate DEB Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>-G DEB</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1730,6 +1729,7 @@ | |||
| 			</target> | ||||
| 			<target name="Generate RPM Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>-G RPM</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1737,6 +1737,7 @@ | |||
| 			</target> | ||||
| 			<target name="Generate TGZ Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>-G TGZ</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1744,6 +1745,7 @@ | |||
| 			</target> | ||||
| 			<target name="Generate TGZ Source Package" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>cpack</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>--config CPackSourceConfig.cmake</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -1935,7 +1937,6 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testGaussianISAM2" path="build/slam" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testGaussianISAM2</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2087,6 +2088,7 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testBayesTree.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testBayesTree.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2094,6 +2096,7 @@ | |||
| 			</target> | ||||
| 			<target name="testBinaryBayesNet.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testBinaryBayesNet.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2141,6 +2144,7 @@ | |||
| 			</target> | ||||
| 			<target name="testSymbolicBayesNet.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSymbolicBayesNet.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2148,6 +2152,7 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testSymbolicFactor.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testSymbolicFactor.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2155,6 +2160,7 @@ | |||
| 			</target> | ||||
| 			<target name="testSymbolicFactorGraph.run" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSymbolicFactorGraph.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2170,6 +2176,7 @@ | |||
| 			</target> | ||||
| 			<target name="tests/testBayesTree" path="inference" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>tests/testBayesTree</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -2671,6 +2678,14 @@ | |||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testSymbolicBayesTree.run" path="build/gtsam/symbolic/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j4</buildArguments> | ||||
| 				<buildTarget>testSymbolicBayesTree.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>true</useDefaultCommand> | ||||
| 				<runAllBuilders>true</runAllBuilders> | ||||
| 			</target> | ||||
| 			<target name="testLago.run" path="build/gtsam/nonlinear/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments>-j5</buildArguments> | ||||
|  | @ -3289,6 +3304,7 @@ | |||
| 			</target> | ||||
| 			<target name="testGraph.run" path="build/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testGraph.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -3296,6 +3312,7 @@ | |||
| 			</target> | ||||
| 			<target name="testJunctionTree.run" path="build/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testJunctionTree.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  | @ -3303,6 +3320,7 @@ | |||
| 			</target> | ||||
| 			<target name="testSymbolicBayesNetB.run" path="build/tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> | ||||
| 				<buildCommand>make</buildCommand> | ||||
| 				<buildArguments/> | ||||
| 				<buildTarget>testSymbolicBayesNetB.run</buildTarget> | ||||
| 				<stopOnError>true</stopOnError> | ||||
| 				<useDefaultCommand>false</useDefaultCommand> | ||||
|  |  | |||
|  | @ -241,11 +241,10 @@ TEST(Ordering, MetisLoop) { | |||
|   // METIS
 | ||||
|   { | ||||
|     Ordering actual = Ordering::Create(Ordering::METIS, sfg); | ||||
|     // 0,3
 | ||||
|     //  1,3
 | ||||
|     //   2
 | ||||
|     //  4,0
 | ||||
|     //   5
 | ||||
|     //  - P( 1 0 3)
 | ||||
|     //  | - P( 4 | 0 3)
 | ||||
|     //  | | - P( 5 | 0 4)
 | ||||
|     //  | - P( 2 | 1 3)
 | ||||
|     Ordering expected = Ordering(list_of(5)(4)(2)(1)(0)(3)); | ||||
|     EXPECT(assert_equal(expected, actual)); | ||||
|   } | ||||
|  | @ -259,6 +258,11 @@ TEST(Ordering, Create) { | |||
| 
 | ||||
|   // COLAMD
 | ||||
|   { | ||||
|     //- P( 4 5)
 | ||||
|     //| - P( 3 | 4)
 | ||||
|     //| | - P( 2 | 3)
 | ||||
|     //| | | - P( 1 | 2)
 | ||||
|     //| | | | - P( 0 | 1)
 | ||||
|     Ordering actual = Ordering::Create(Ordering::COLAMD, sfg); | ||||
|     Ordering expected = Ordering(list_of(0)(1)(2)(3)(4)(5)); | ||||
|     EXPECT(assert_equal(expected, actual)); | ||||
|  | @ -267,12 +271,9 @@ TEST(Ordering, Create) { | |||
|   // METIS
 | ||||
|   { | ||||
|     Ordering actual = Ordering::Create(Ordering::METIS, sfg); | ||||
|     // 2
 | ||||
|     //  0
 | ||||
|     //   1
 | ||||
|     //  4
 | ||||
|     //   3
 | ||||
|     //   5
 | ||||
|     //- P( 1 0 2)
 | ||||
|     //| - P( 3 4 | 2)
 | ||||
|     //| | - P( 5 | 4)
 | ||||
|     Ordering expected = Ordering(list_of(5)(3)(4)(1)(0)(2)); | ||||
|     EXPECT(assert_equal(expected, actual)); | ||||
|   } | ||||
|  |  | |||
|  | @ -691,6 +691,63 @@ TEST(SymbolicBayesTree, complicatedMarginal) | |||
|   } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| TEST(SymbolicBayesTree, COLAMDvsMETIS) { | ||||
| 
 | ||||
|   // create circular graph
 | ||||
|   SymbolicFactorGraph sfg; | ||||
|   sfg.push_factor(0, 1); | ||||
|   sfg.push_factor(1, 2); | ||||
|   sfg.push_factor(2, 3); | ||||
|   sfg.push_factor(3, 4); | ||||
|   sfg.push_factor(4, 5); | ||||
|   sfg.push_factor(0, 5); | ||||
| 
 | ||||
|   // COLAMD
 | ||||
|   { | ||||
|     Ordering ordering = Ordering::Create(Ordering::COLAMD, sfg); | ||||
|     EXPECT(assert_equal(Ordering(list_of(0)(5)(1)(4)(2)(3)), ordering)); | ||||
| 
 | ||||
|     //  - P( 4 2 3)
 | ||||
|     //  | - P( 1 | 2 4)
 | ||||
|     //  | | - P( 5 | 1 4)
 | ||||
|     //  | | | - P( 0 | 1 5)
 | ||||
|     SymbolicBayesTree expected; | ||||
|     expected.insertRoot( | ||||
|         MakeClique(list_of(4)(2)(3), 3, | ||||
|             list_of( | ||||
|                 MakeClique(list_of(1)(2)(4), 1, | ||||
|                     list_of( | ||||
|                         MakeClique(list_of(5)(1)(4), 1, | ||||
|                             list_of(MakeClique(list_of(0)(1)(5), 1)))))))); | ||||
| 
 | ||||
|     SymbolicBayesTree actual = *sfg.eliminateMultifrontal(ordering); | ||||
|     EXPECT(assert_equal(expected, actual)); | ||||
|   } | ||||
| 
 | ||||
|   // METIS
 | ||||
|   { | ||||
|     Ordering ordering = Ordering::Create(Ordering::METIS, sfg); | ||||
|     EXPECT(assert_equal(Ordering(list_of(5)(4)(2)(1)(0)(3)), ordering)); | ||||
| 
 | ||||
|     //  - P( 1 0 3)
 | ||||
|     //  | - P( 4 | 0 3)
 | ||||
|     //  | | - P( 5 | 0 4)
 | ||||
|     //  | - P( 2 | 1 3)
 | ||||
|     SymbolicBayesTree expected; | ||||
|     expected.insertRoot( | ||||
|         MakeClique(list_of(1)(0)(3), 3, | ||||
|             list_of( | ||||
|                 MakeClique(list_of(4)(0)(3), 1, | ||||
|                     list_of(MakeClique(list_of(5)(0)(4), 1))))( | ||||
|                 MakeClique(list_of(2)(1)(3), 1)))); | ||||
| 
 | ||||
|     SymbolicBayesTree actual = *sfg.eliminateMultifrontal(ordering); | ||||
|     EXPECT(assert_equal(expected, actual)); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| int main() { | ||||
|   TestResult tr; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue