Mercurial Hosting > traffic-intelligence
diff c/test_graph.cpp @ 614:5e09583275a4
Merged Nicolas/trafficintelligence into default
author | Mohamed Gomaa <eng.m.gom3a@gmail.com> |
---|---|
date | Fri, 05 Dec 2014 12:13:53 -0500 |
parents | 03dbecd3a887 |
children | 05ccd8ef150c |
line wrap: on
line diff
--- a/c/test_graph.cpp Thu Apr 18 15:29:33 2013 -0400 +++ b/c/test_graph.cpp Fri Dec 05 12:13:53 2014 -0500 @@ -11,10 +11,14 @@ using namespace cv; TEST_CASE("graph/connected_components", "test graph 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.)); + float connectionDistance = 5.; + float segmentationDistance = 1.; + unsigned int minFeatureTime = 5; + float minNFeaturesPerGroup = 0.99; + FeatureGraph featureGraph(connectionDistance, segmentationDistance, minFeatureTime, minNFeaturesPerGroup); + unsigned int firstInstant = 10, lastInstant = 20; + FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, firstInstant, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); + FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, firstInstant, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); featureGraph.addFeature(ft1); REQUIRE(featureGraph.getNVertices() == 1); @@ -25,13 +29,14 @@ REQUIRE(featureGraph.getNEdges() == 1); featureGraph.connectedComponents(lastInstant); - vector<vector<unsigned int> > components = featureGraph.getFeatureGroups(); + vector<vector<FeatureTrajectoryPtr> > components; + featureGraph.getFeatureGroups(components); REQUIRE(components.size() == 0); REQUIRE(featureGraph.getNVertices() == 2); REQUIRE(featureGraph.getNEdges() == 1); featureGraph.connectedComponents(lastInstant+1); - components = featureGraph.getFeatureGroups(); + featureGraph.getFeatureGroups(components); REQUIRE(components.size() == 1); REQUIRE(components[0].size() == 2); REQUIRE(featureGraph.getNVertices() == 0); @@ -40,16 +45,23 @@ // 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 + FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, firstInstant, 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 + FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, firstInstant, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected featureGraph.addFeature(ft4); + REQUIRE(ft1->minMaxSimilarity(*ft2, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE(ft2->minMaxSimilarity(*ft3, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft1->minMaxSimilarity(*ft3, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft1->minMaxSimilarity(*ft4, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft2->minMaxSimilarity(*ft4, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE_FALSE(ft3->minMaxSimilarity(*ft4, firstInstant, lastInstant, connectionDistance, segmentationDistance)); + REQUIRE(featureGraph.getNVertices() == 4); REQUIRE(featureGraph.getNEdges() == 2); featureGraph.connectedComponents(lastInstant+1); - components = featureGraph.getFeatureGroups(); + featureGraph.getFeatureGroups(components); REQUIRE(components.size() == 2); REQUIRE(components[0].size() == 3); REQUIRE(components[1].size() == 1);