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);