Mercurial Hosting > traffic-intelligence
diff c/test_graph.cpp @ 201:f7ddfc4aeb1e
added tests for graphs
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 05 Mar 2012 01:52:56 -0500 |
parents | 0a27fa343257 |
children | f0f800b95765 bc4ea09b1743 |
line wrap: on
line diff
--- a/c/test_graph.cpp Fri Mar 02 19:32:54 2012 -0500 +++ b/c/test_graph.cpp Mon Mar 05 01:52:56 2012 -0500 @@ -6,15 +6,18 @@ #include <boost/test/unit_test.hpp> #include <boost/test/floating_point_comparison.hpp> +#include <iostream> + using namespace std; using namespace cv; BOOST_AUTO_TEST_SUITE(test_graph) -BOOST_AUTO_TEST_CASE(graph_add_delete) { - FeatureGraph featureGraph(5, 1, 5 /* min time interval */, 1.); - FeatureTrajectoryPtr ft1 = createFeatureTrajectory(10, 20, Point2f(1,1), Point2f(0.5, 0.)); - FeatureTrajectoryPtr ft2 = createFeatureTrajectory(10, 20, Point2f(1.1,1), Point2f(0.5, 0.)); +BOOST_AUTO_TEST_CASE(graph_add_connected_components) { + FeatureGraph featureGraph(5, 1, 5 , 1.); // (float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) + unsigned int lastInstant = 20; + FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, 10, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); + FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, 10, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); featureGraph.addFeature(ft1); BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 1); @@ -24,7 +27,37 @@ BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); - + featureGraph.connectedComponents(lastInstant); + vector<vector<unsigned int> > components = featureGraph.getFeatureGroups(); + BOOST_CHECK_EQUAL(components.size(), 0); + BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); + BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); + + featureGraph.connectedComponents(lastInstant+1); + components = featureGraph.getFeatureGroups(); + BOOST_CHECK_EQUAL(components.size(), 1); + BOOST_CHECK_EQUAL(components[0].size(), 2); + BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); + BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); + + // test connection distance + featureGraph.addFeature(ft1); + featureGraph.addFeature(ft2); + FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, 10, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only + featureGraph.addFeature(ft3); + FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, 10, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected + featureGraph.addFeature(ft4); + + BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 4); + BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 2); + + featureGraph.connectedComponents(lastInstant+1); + components = featureGraph.getFeatureGroups(); + BOOST_CHECK_EQUAL(components.size(), 2); + BOOST_CHECK_EQUAL(components[0].size(), 3); + BOOST_CHECK_EQUAL(components[1].size(), 1); + BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); + BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); } BOOST_AUTO_TEST_SUITE_END()