Mercurial Hosting > traffic-intelligence
annotate c/test_feature.cpp @ 1039:5621e4ad2428
removing prefix option to loadtrajectories from SQLite
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 04 Jul 2018 12:24:37 -0400 |
parents | b6ad86ee7033 |
children | 05ccd8ef150c |
rev | line source |
---|---|
220
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
1 #define CATCH_CONFIG_MAIN |
162
61fd5aff418c
added basics to run tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
3 #include "Motion.hpp" |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
4 #include "testutils.hpp" |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
5 |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
6 #include "opencv2/core/core.hpp" |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
7 |
220
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
8 #include "catch.hpp" |
162
61fd5aff418c
added basics to run tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 |
61fd5aff418c
added basics to run tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 using namespace std; |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
11 using namespace cv; |
162
61fd5aff418c
added basics to run tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 |
481
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
13 TEST_CASE("trajectory/smoothing", "test trajectory smoothing (from trajectory management library)") { |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
14 TrajectoryPoint2f t1; |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
15 for(int i=0; i<20;++i) |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
16 t1.add(i, cv::Point2f(1+i, 1+0.5*i)); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
17 |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
18 TrajectoryPoint2f t2(t1); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
19 t2.movingAverage(3); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
20 for(int i=0; i<20;++i) |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
21 REQUIRE(t1.getPoint(i) == t2.getPoint(i)); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
22 t1.clear(); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
23 cv::Point2f p0(1,1); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
24 cv::Point2f p1(2,2); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
25 cv::Point2f p2(2.4,3); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
26 cv::Point2f p3(3.1,3.4); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
27 cv::Point2f p4(3.4,4); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
28 cv::Point2f p5(3.6,4.5); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
29 |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
30 t1.add(0, p0); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
31 t1.add(1, p1); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
32 t1.add(2, p2); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
33 t1.add(3, p3); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
34 t1.add(4, p4); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
35 t1.add(5, p5); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
36 t1.movingAverage(2); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
37 REQUIRE(t1.getPoint(0) == p0); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
38 REQUIRE(t1.getPoint(1) == (p0+p1+p2)*(1./3.)); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
39 REQUIRE(t1.getPoint(2) == (p0+p1+p2+p3+p4)*(1./5.)); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
40 REQUIRE(t1.getPoint(3) == (p1+p2+p3+p4+p5)*(1./5.)); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
41 REQUIRE(t1.getPoint(4) == (p3+p4+p5)*(1./3.)); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
42 REQUIRE(t1.getPoint(5) == p5); |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
43 } |
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
220
diff
changeset
|
44 |
220
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
45 TEST_CASE("features/similarity", "test feature similarity measure") { |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
46 FeatureTrajectoryPtr ft1 = createFeatureTrajectory(1, 10, 20, Point2f(1,1), Point2f(0, 1)); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
47 FeatureTrajectoryPtr ft2 = createFeatureTrajectory(2, 10, 20, Point2f(2,1), Point2f(0, 1)); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
48 |
220
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
49 REQUIRE_FALSE(ft1->minMaxSimilarity(*ft2, 10, 20, 0.5, 0.1)); |
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
50 REQUIRE(ft1->minMaxSimilarity(*ft2, 10, 20, 1, 0.1)); |
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
51 |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
52 ft2 = createFeatureTrajectory(2, 10, 19, Point2f(1,1), Point2f(0, 1)); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
53 Mat homography; |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
54 ft2->addPoint(20, Point2f(1,11.5), homography); |
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
55 |
220
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
56 REQUIRE_FALSE(ft1->minMaxSimilarity(*ft2, 10, 20, 0, 0.4)); |
f0f800b95765
switched to Catch for the tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
57 REQUIRE(ft1->minMaxSimilarity(*ft2, 10, 20, 0, 0.5)); |
162
61fd5aff418c
added basics to run tests
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
58 } |