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 }