Mercurial Hosting > traffic-intelligence
annotate c/test_graph.cpp @ 212:ce44605f888a
minor modifications
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 06 Jun 2012 23:39:03 -0400 |
parents | f7ddfc4aeb1e |
children | f0f800b95765 bc4ea09b1743 |
rev | line source |
---|---|
196
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #include "Motion.hpp" |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 #include "testutils.hpp" |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 #include "opencv2/core/core.hpp" |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
5 |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 #include <boost/test/unit_test.hpp> |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 #include <boost/test/floating_point_comparison.hpp> |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
8 |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
9 #include <iostream> |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
10 |
196
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
11 using namespace std; |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 using namespace cv; |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 BOOST_AUTO_TEST_SUITE(test_graph) |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
15 |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
16 BOOST_AUTO_TEST_CASE(graph_add_connected_components) { |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
17 FeatureGraph featureGraph(5, 1, 5 , 1.); // (float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
18 unsigned int lastInstant = 20; |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
19 FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, 10, lastInstant, Point2f(1,1), Point2f(0.5, 0.)); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
20 FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, 10, lastInstant, Point2f(1.1,1), Point2f(0.5, 0.)); |
196
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
21 |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
22 featureGraph.addFeature(ft1); |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
23 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 1); |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
24 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
25 |
200
0a27fa343257
added one test and cleaned the first and last instant mess
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
26 featureGraph.addFeature(ft2); |
0a27fa343257
added one test and cleaned the first and last instant mess
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
27 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); |
0a27fa343257
added one test and cleaned the first and last instant mess
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
28 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); |
196
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
29 |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
30 featureGraph.connectedComponents(lastInstant); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
31 vector<vector<unsigned int> > components = featureGraph.getFeatureGroups(); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
32 BOOST_CHECK_EQUAL(components.size(), 0); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
33 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 2); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
34 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 1); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
35 |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
36 featureGraph.connectedComponents(lastInstant+1); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
37 components = featureGraph.getFeatureGroups(); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
38 BOOST_CHECK_EQUAL(components.size(), 1); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
39 BOOST_CHECK_EQUAL(components[0].size(), 2); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
40 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
41 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
42 |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
43 // test connection distance |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
44 featureGraph.addFeature(ft1); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
45 featureGraph.addFeature(ft2); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
46 FeatureTrajectoryPtr ft3 = createFeatureTrajectory(3, 10, lastInstant, Point2f(6.05,1), Point2f(0.5, 0.)); // connected to ft2 only |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
47 featureGraph.addFeature(ft3); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
48 FeatureTrajectoryPtr ft4 = createFeatureTrajectory(4, 10, lastInstant, Point2f(11.1,1), Point2f(0.5, 0.)); // not connected |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
49 featureGraph.addFeature(ft4); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
50 |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
51 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 4); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
52 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 2); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
53 |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
54 featureGraph.connectedComponents(lastInstant+1); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
55 components = featureGraph.getFeatureGroups(); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
56 BOOST_CHECK_EQUAL(components.size(), 2); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
57 BOOST_CHECK_EQUAL(components[0].size(), 3); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
58 BOOST_CHECK_EQUAL(components[1].size(), 1); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
59 BOOST_CHECK_EQUAL(featureGraph.getNVertices(), 0); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
60 BOOST_CHECK_EQUAL(featureGraph.getNEdges(), 0); |
196
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
61 } |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
62 |
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
63 BOOST_AUTO_TEST_SUITE_END() |