Ocean
Loading...
Searching...
No Matches
TestJLinkage.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_TEST_TESTGEOMETRY_TEST_JLINKAGE_H
9#define META_OCEAN_TEST_TESTGEOMETRY_TEST_JLINKAGE_H
10
12
14
15namespace Ocean
16{
17
18namespace Test
19{
20
21namespace TestGeometry
22{
23
24/**
25 * This class implements homography tests using J-Linkage.
26 * @ingroup testgeometry
27 */
28class OCEAN_TEST_GEOMETRY_EXPORT TestJLinkage
29{
30 public:
31
32 /**
33 * Definition of the linkage method.
34 */
36 {
37 /// JLinkage method.
39 /// TLinkage method.
40 LM_TLINKAGE
41 };
42
43 /**
44 * Tests all J-Linkage functions.
45 * @param testDuration Number of seconds for each test, with range (0, infinity)
46 * @param selector Selector for individual tests
47 * @return True, if succeeded
48 */
49 static bool testJLinkage(const double testDuration, const TestSelector& selector);
50
51 /**
52 * Tests all T-Linkage functions.
53 * @param testDuration Number of seconds for each test, with range (0, infinity)
54 * @param selector Selector for individual tests
55 * @return True, if succeeded
56 */
57 static bool testTLinkage(const double testDuration, const TestSelector& selector);
58
59 protected:
60
61 /**
62 * Tests a single faultless homography.
63 * @param testDuration Number of seconds for each test, with range (0, infinity)
64 * @return True, if succeeded
65 * @tparam tLinkageType Defines the linkage method
66 */
67 template <LinkageMethod tLinkageType>
68 static bool testFaultlessSingleHomography(const double testDuration);
69
70 /**
71 * Tests the 3D planar 2D-2D homography.
72 * @param testDuration Number of seconds for each test, with range (0, infinity)
73 * @return True, if succeeded
74 * @tparam tLinkageType Defines the linkage method
75 */
76 template <LinkageMethod tLinkageType>
77 static bool testFaultlessNoisedSingleHomography(const double testDuration);
78
79 /**
80 * Tests multiple faultless homographies.
81 * @param testDuration Number of seconds for each test, with range (0, infinity)
82 * @return True, if succeeded
83 * @tparam tLinkageType Defines the linkage method
84 */
85 template <LinkageMethod tLinkageType>
86 static bool testFaultlessMultipleHomography(const double testDuration);
87
88 /**
89 * Tests multiple faultless lines.
90 * @param testDuration Number of seconds for each test, with range (0, infinity)
91 * @return True, if succeeded
92 * @tparam tLinkageType Defines the linkage method
93 */
94 template <LinkageMethod tLinkageType>
95 static bool testFaultlessLines(const double testDuration);
96};
97
98}
99
100}
101
102}
103
104#endif // META_OCEAN_TEST_TESTGEOMETRY_TEST_JLINKAGE_H
This class implements homography tests using J-Linkage.
Definition TestJLinkage.h:29
static bool testFaultlessMultipleHomography(const double testDuration)
Tests multiple faultless homographies.
static bool testJLinkage(const double testDuration, const TestSelector &selector)
Tests all J-Linkage functions.
static bool testTLinkage(const double testDuration, const TestSelector &selector)
Tests all T-Linkage functions.
static bool testFaultlessSingleHomography(const double testDuration)
Tests a single faultless homography.
LinkageMethod
Definition of the linkage method.
Definition TestJLinkage.h:36
@ LM_JLINKAGE
JLinkage method.
Definition TestJLinkage.h:38
static bool testFaultlessNoisedSingleHomography(const double testDuration)
Tests the 3D planar 2D-2D homography.
static bool testFaultlessLines(const double testDuration)
Tests multiple faultless lines.
This class implements a test selector that parses test function strings and determines which tests sh...
Definition TestSelector.h:51
The namespace covering the entire Ocean framework.
Definition Accessor.h:15