Mercurial > hg > nsaunier > traffic-intelligence
comparison c/test_graph.cpp @ 231:249d65ff6c35
merged modifications for windows
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Mon, 02 Jul 2012 23:49:39 -0400 |
| parents | bc4ea09b1743 f0f800b95765 |
| children | cc8e54997d4c |
comparison
equal
deleted
inserted
replaced
| 230:bc4ea09b1743 | 231:249d65ff6c35 |
|---|---|
| 1 #include "Motion.hpp" | 1 #include "Motion.hpp" |
| 2 #include "testutils.hpp" | 2 #include "testutils.hpp" |
| 3 | 3 |
| 4 #include "opencv2/core/core.hpp" | 4 #include "opencv2/core/core.hpp" |
| 5 | 5 |
| 6 #include <boost/test/unit_test.hpp> | 6 #include "catch.hpp" |
| 7 #include <boost/test/floating_point_comparison.hpp> | |
| 8 | 7 |
| 9 #include <iostream> | 8 #include <iostream> |
| 10 | 9 |
| 11 using namespace std; | 10 using namespace std; |
| 12 using namespace cv; | 11 using namespace cv; |
| 13 | 12 |
| 14 BOOST_AUTO_TEST_SUITE(test_graph) | 13 TEST_CASE("graph/connected_components", "test graph connected components") { |
| 15 | |
| 16 BOOST_AUTO_TEST_CASE(graph_add_connected_components) { | |
| 17 FeatureGraph featureGraph(5, 1, 5 , 1.); // (float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) | 14 FeatureGraph featureGraph(5, 1, 5 , 1.); // (float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) |
| 18 unsigned int lastInstant = 20; | 15 unsigned int lastInstant = 20; |
| 19 FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, 10, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); | 16 FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, 10, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); |
| 20 FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, 10, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); | 17 FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, 10, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); |
| 21 | 18 |
| 22 featureGraph.addFeature(ft1); | 19 featureGraph.addFeature(ft1); |
| 23 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 1); | 20 REQUIRE(featureGraph.getNVertices() == 1); |
| 24 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); | 21 REQUIRE(featureGraph.getNEdges() == 0); |
| 25 | 22 |
| 26 featureGraph.addFeature(ft2); | 23 featureGraph.addFeature(ft2); |
| 27 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); | 24 REQUIRE(featureGraph.getNVertices() == 2); |
| 28 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); | 25 REQUIRE(featureGraph.getNEdges() == 1); |
| 29 | 26 |
| 30 featureGraph.connectedComponents(lastInstant); | 27 featureGraph.connectedComponents(lastInstant); |
| 31 std::vector<std::vector<unsigned int> > components = featureGraph.getFeatureGroups(); | 28 vector<vector<unsigned int> > components = featureGraph.getFeatureGroups(); |
| 32 BOOST_CHECK_EQUAL(components.size(), 0); | 29 REQUIRE(components.size() == 0); |
| 33 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); | 30 REQUIRE(featureGraph.getNVertices() == 2); |
| 34 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); | 31 REQUIRE(featureGraph.getNEdges() == 1); |
| 35 | 32 |
| 36 featureGraph.connectedComponents(lastInstant+1); | 33 featureGraph.connectedComponents(lastInstant+1); |
| 37 components = featureGraph.getFeatureGroups(); | 34 components = featureGraph.getFeatureGroups(); |
| 38 BOOST_CHECK_EQUAL(components.size(), 1); | 35 REQUIRE(components.size() == 1); |
| 39 BOOST_CHECK_EQUAL(components[0].size(), 2); | 36 REQUIRE(components[0].size() == 2); |
| 40 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); | 37 REQUIRE(featureGraph.getNVertices() == 0); |
| 41 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); | 38 REQUIRE(featureGraph.getNEdges() == 0); |
| 42 | 39 |
| 43 // test connection distance | 40 // test connection distance |
| 44 featureGraph.addFeature(ft1); | 41 featureGraph.addFeature(ft1); |
| 45 featureGraph.addFeature(ft2); | 42 featureGraph.addFeature(ft2); |
| 46 FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, 10, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only | 43 FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, 10, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only |
| 47 featureGraph.addFeature(ft3); | 44 featureGraph.addFeature(ft3); |
| 48 FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, 10, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected | 45 FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, 10, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected |
| 49 featureGraph.addFeature(ft4); | 46 featureGraph.addFeature(ft4); |
| 50 | 47 |
| 51 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 4); | 48 REQUIRE(featureGraph.getNVertices() == 4); |
| 52 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 2); | 49 REQUIRE(featureGraph.getNEdges() == 2); |
| 53 | 50 |
| 54 featureGraph.connectedComponents(lastInstant+1); | 51 featureGraph.connectedComponents(lastInstant+1); |
| 55 components = featureGraph.getFeatureGroups(); | 52 components = featureGraph.getFeatureGroups(); |
| 56 BOOST_CHECK_EQUAL(components.size(), 2); | 53 REQUIRE(components.size() == 2); |
| 57 BOOST_CHECK_EQUAL(components[0].size(), 3); | 54 REQUIRE(components[0].size() == 3); |
| 58 BOOST_CHECK_EQUAL(components[1].size(), 1); | 55 REQUIRE(components[1].size() == 1); |
| 59 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); | 56 REQUIRE(featureGraph.getNVertices() == 0); |
| 60 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); | 57 REQUIRE(featureGraph.getNEdges() == 0); |
| 61 } | 58 } |
| 62 | |
| 63 BOOST_AUTO_TEST_SUITE_END() |
