Mercurial Hosting > traffic-intelligence
comparison trajectorymanagement/test/HausdorffMetricTest.cpp @ 1159:e1e7acef8eab
moved trajectory management library into Traffic Intelligence
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 22 Feb 2021 22:09:35 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1158:7eb972942f22 | 1159:e1e7acef8eab |
---|---|
1 #include "HausdorffMetricTest.h" | |
2 | |
3 void HausdorffMetricTest::setUp(void) | |
4 { | |
5 trajectoryA = new Trajectory<CvPoint> (); | |
6 trajectoryB = new Trajectory<CvPoint> (); | |
7 metric = new HausdorffMetric<CvPoint, double> (); | |
8 } | |
9 | |
10 void HausdorffMetricTest::tearDown(void) | |
11 { | |
12 delete trajectoryA; | |
13 delete trajectoryB; | |
14 delete metric; | |
15 | |
16 trajectoryA = NULL; | |
17 trajectoryB = NULL; | |
18 metric = NULL; | |
19 } | |
20 | |
21 void HausdorffMetricTest::testMetric1(void) | |
22 { | |
23 double result = double(0); | |
24 CPPUNIT_ASSERT_THROW(metric->distance(trajectoryA, trajectoryB, result), TrajectoryLengthErrorException); | |
25 } | |
26 | |
27 void HausdorffMetricTest::testMetric2(void) | |
28 { | |
29 double result = double(0); | |
30 trajectoryA->add(cvPoint(0, 0)); | |
31 CPPUNIT_ASSERT_THROW(metric->distance(trajectoryA, trajectoryB, result), TrajectoryLengthErrorException); | |
32 } | |
33 | |
34 void HausdorffMetricTest::testMetric3(void) | |
35 { | |
36 double result = double(0); | |
37 trajectoryA->add(cvPoint(0, 0)); | |
38 trajectoryB->add(cvPoint(0, 0)); | |
39 metric->distance(trajectoryA, trajectoryB, result); | |
40 CPPUNIT_ASSERT_EQUAL(result, double(0)); | |
41 } | |
42 | |
43 void HausdorffMetricTest::testMetric4(void) | |
44 { | |
45 double result = double(0); | |
46 trajectoryA->add(cvPoint(0, 0)); | |
47 trajectoryB->add(cvPoint(1, 1)); | |
48 metric->distance(trajectoryA, trajectoryB, result); | |
49 CPPUNIT_ASSERT_EQUAL(result, sqrt(double(2))); | |
50 } | |
51 | |
52 void HausdorffMetricTest::testMetric5(void) | |
53 { | |
54 double result = double(0); | |
55 trajectoryA->add(cvPoint(0, 0)); | |
56 trajectoryB->add(cvPoint(3, 4)); | |
57 metric->distance(trajectoryA, trajectoryB, result); | |
58 CPPUNIT_ASSERT_EQUAL(result, double(5)); | |
59 } | |
60 | |
61 void HausdorffMetricTest::testMetric6(void) | |
62 { | |
63 double result = double(0); | |
64 unsigned n = 100; | |
65 for (unsigned i = 0; i < n; ++i) | |
66 { | |
67 trajectoryA->add(cvPoint(0, i)); | |
68 trajectoryB ->add(cvPoint(1, i)); | |
69 } | |
70 metric->distance(trajectoryA, trajectoryB, result); | |
71 CPPUNIT_ASSERT_EQUAL(result, double(1)); | |
72 } | |
73 | |
74 void HausdorffMetricTest::testMetric7(void) | |
75 { | |
76 double result = double(0); | |
77 unsigned n = 100; | |
78 for (unsigned i = 0; i < n; ++i) | |
79 { | |
80 trajectoryA->add(cvPoint(i, i)); | |
81 trajectoryB ->add(cvPoint(n + i, n - 2 + i)); | |
82 } | |
83 metric->distance(trajectoryA, trajectoryB, result); | |
84 CPPUNIT_ASSERT_EQUAL(result, norm(cv::Point_<int>(n, n - 2))); | |
85 } | |
86 | |
87 void HausdorffMetricTest::testMetric8(void) | |
88 { | |
89 double result = double(0); | |
90 unsigned n = 100; | |
91 for (unsigned i = 0; i < n; ++i) | |
92 { | |
93 trajectoryA->add(cvPoint(i, i)); | |
94 } | |
95 trajectoryB ->add(cvPoint(0, 0)); | |
96 metric->distance(trajectoryA, trajectoryB, result); | |
97 CPPUNIT_ASSERT_EQUAL(result, norm(cv::Point_<int>(n - 1, n - 1))); | |
98 } |