Mercurial Hosting > traffic-intelligence
comparison 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 |
comparison
equal
deleted
inserted
replaced
200:0a27fa343257 | 201:f7ddfc4aeb1e |
---|---|
4 #include "opencv2/core/core.hpp" | 4 #include "opencv2/core/core.hpp" |
5 | 5 |
6 #include <boost/test/unit_test.hpp> | 6 #include <boost/test/unit_test.hpp> |
7 #include <boost/test/floating_point_comparison.hpp> | 7 #include <boost/test/floating_point_comparison.hpp> |
8 | 8 |
9 #include <iostream> | |
10 | |
9 using namespace std; | 11 using namespace std; |
10 using namespace cv; | 12 using namespace cv; |
11 | 13 |
12 BOOST_AUTO_TEST_SUITE(test_graph) | 14 BOOST_AUTO_TEST_SUITE(test_graph) |
13 | 15 |
14 BOOST_AUTO_TEST_CASE(graph_add_delete) { | 16 BOOST_AUTO_TEST_CASE(graph_add_connected_components) { |
15 FeatureGraph featureGraph(5, 1, 5 /* min time interval */, 1.); | 17 FeatureGraph featureGraph(5, 1, 5 , 1.); // (float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) |
16 FeatureTrajectoryPtr ft1 = createFeatureTrajectory(10, 20, Point2f(1,1), Point2f(0.5, 0.)); | 18 unsigned int lastInstant = 20; |
17 FeatureTrajectoryPtr ft2 = createFeatureTrajectory(10, 20, Point2f(1.1,1), Point2f(0.5, 0.)); | 19 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.)); | |
18 | 21 |
19 featureGraph.addFeature(ft1); | 22 featureGraph.addFeature(ft1); |
20 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 1); | 23 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 1); |
21 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); | 24 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); |
22 | 25 |
23 featureGraph.addFeature(ft2); | 26 featureGraph.addFeature(ft2); |
24 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); | 27 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); |
25 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); | 28 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); |
26 | 29 |
27 | 30 featureGraph.connectedComponents(lastInstant); |
31 vector<vector<unsigned int> > components = featureGraph.getFeatureGroups(); | |
32 BOOST_CHECK_EQUAL(components.size(), 0); | |
33 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); | |
34 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); | |
35 | |
36 featureGraph.connectedComponents(lastInstant+1); | |
37 components = featureGraph.getFeatureGroups(); | |
38 BOOST_CHECK_EQUAL(components.size(), 1); | |
39 BOOST_CHECK_EQUAL(components[0].size(), 2); | |
40 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); | |
41 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); | |
42 | |
43 // test connection distance | |
44 featureGraph.addFeature(ft1); | |
45 featureGraph.addFeature(ft2); | |
46 FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, 10, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only | |
47 featureGraph.addFeature(ft3); | |
48 FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, 10, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected | |
49 featureGraph.addFeature(ft4); | |
50 | |
51 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 4); | |
52 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 2); | |
53 | |
54 featureGraph.connectedComponents(lastInstant+1); | |
55 components = featureGraph.getFeatureGroups(); | |
56 BOOST_CHECK_EQUAL(components.size(), 2); | |
57 BOOST_CHECK_EQUAL(components[0].size(), 3); | |
58 BOOST_CHECK_EQUAL(components[1].size(), 1); | |
59 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); | |
60 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); | |
28 } | 61 } |
29 | 62 |
30 BOOST_AUTO_TEST_SUITE_END() | 63 BOOST_AUTO_TEST_SUITE_END() |