Ocean
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 
13 namespace Ocean
14 {
15 
16 namespace Test
17 {
18 
19 namespace TestGeometry
20 {
21 
22 /**
23  * This class implements homography tests using J-Linkage.
24  * @ingroup testgeometry
25  */
26 class OCEAN_TEST_GEOMETRY_EXPORT TestJLinkage
27 {
28  public:
29 
30  /**
31  * Definition of the linkage method.
32  */
34  {
35  /// JLinkage method.
37  /// TLinkage method.
38  LM_TLINKAGE
39  };
40 
41  /**
42  * Tests all J-Linkage functions.
43  * @param testDuration Number of seconds for each test, with range (0, infinity)
44  * @return True, if succeeded
45  */
46  static bool testJLinkage(const double testDuration);
47 
48  /**
49  * Tests all T-Linkage functions.
50  * @param testDuration Number of seconds for each test, with range (0, infinity)
51  * @return True, if succeeded
52  */
53  static bool testTLinkage(const double testDuration);
54 
55  protected:
56 
57  /**
58  * Tests a single faultless homography.
59  * @param testDuration Number of seconds for each test, with range (0, infinity)
60  * @return True, if succeeded
61  * @tparam tLinkageType Defines the linkage method
62  */
63  template <LinkageMethod tLinkageType>
64  static bool testFaultlessSingleHomography(const double testDuration);
65 
66  /**
67  * Tests the 3D planar 2D-2D homography.
68  * @param testDuration Number of seconds for each test, with range (0, infinity)
69  * @return True, if succeeded
70  * @tparam tLinkageType Defines the linkage method
71  */
72  template <LinkageMethod tLinkageType>
73  static bool testFaultlessNoisedSingleHomography(const double testDuration);
74 
75  /**
76  * Tests multiple faultless homographies.
77  * @param testDuration Number of seconds for each test, with range (0, infinity)
78  * @return True, if succeeded
79  * @tparam tLinkageType Defines the linkage method
80  */
81  template <LinkageMethod tLinkageType>
82  static bool testFaultlessMultipleHomography(const double testDuration);
83 
84  /**
85  * Tests multiple faultless lines.
86  * @param testDuration Number of seconds for each test, with range (0, infinity)
87  * @return True, if succeeded
88  * @tparam tLinkageType Defines the linkage method
89  */
90  template <LinkageMethod tLinkageType>
91  static bool testFaultlessLines(const double testDuration);
92 };
93 
94 }
95 
96 }
97 
98 }
99 
100 #endif // META_OCEAN_TEST_TESTGEOMETRY_TEST_JLINKAGE_H
This class implements homography tests using J-Linkage.
Definition: TestJLinkage.h:27
static bool testFaultlessMultipleHomography(const double testDuration)
Tests multiple faultless homographies.
static bool testJLinkage(const double testDuration)
Tests all J-Linkage functions.
static bool testFaultlessSingleHomography(const double testDuration)
Tests a single faultless homography.
LinkageMethod
Definition of the linkage method.
Definition: TestJLinkage.h:34
@ LM_JLINKAGE
JLinkage method.
Definition: TestJLinkage.h:36
static bool testTLinkage(const double testDuration)
Tests all T-Linkage functions.
static bool testFaultlessNoisedSingleHomography(const double testDuration)
Tests the 3D planar 2D-2D homography.
static bool testFaultlessLines(const double testDuration)
Tests multiple faultless lines.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15