Ocean
TestQuaternion.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_TESTMATH_TEST_QUATERNION_H
9 #define META_OCEAN_TEST_TESTMATH_TEST_QUATERNION_H
10 
12 
13 namespace Ocean
14 {
15 
16 namespace Test
17 {
18 
19 namespace TestMath
20 {
21 
22 /**
23  * This class implements a quaternion test.
24  * @ingroup testmath
25  */
26 class OCEAN_TEST_MATH_EXPORT TestQuaternion
27 {
28  public:
29 
30  /**
31  * Executes all quaternion tests.
32  * @param testDuration Number of seconds for each test
33  * @return True, if succeeded
34  */
35  static bool test(const double testDuration);
36 
37  /**
38  * Tests the messenger function.
39  * @return True, if succeeded
40  */
41  static bool testWriteToMessenger();
42 
43  /**
44  * Tests the constructor.
45  * @param testDuration Number of seconds for each test
46  * @return True, if succeeded
47  */
48  static bool testConstructor(const double testDuration);
49 
50  /**
51  * Tests the normalization of a quaternion.
52  * @param testDuration Number of seconds for each test, with range (0, infinity)
53  * @return True, if succeeded
54  */
55  static bool testNormalization(const double testDuration);
56 
57  /**
58  * Tests the inverting of a quaternion.
59  * @param testDuration Number of seconds for each test, with range (0, infinity)
60  * @return True, if succeeded
61  */
62  static bool testInverting(const double testDuration);
63 
64  /**
65  * Tests the conversion from a quaternion to a rotation.
66  * @param testDuration Number of seconds for each test, with range (0, infinity)
67  * @return True, if succeeded
68  */
69  static bool testConversionToRotation(const double testDuration);
70 
71  /**
72  * Tests the reference-offset constructor.
73  * @param testDuration Number of seconds for each test
74  * @return True, if succeeded
75  */
76  static bool testReferenceOffsetConstructor(const double testDuration);
77 
78  /**
79  * Tests the calculation of the Quaternion's angle.
80  * @param testDuration Number of seconds for each test
81  * @return True, if succeeded
82  * @tparam T The data type of the scalar value to be used
83  */
84  template <typename T>
85  static bool testAngle(const double testDuration);
86 
87  /**
88  * Tests the slerp function.
89  * @param testDuration Number of seconds for each test
90  * @return True, if succeeded
91  * @tparam T The data type of the scalar value to be used
92  */
93  template <typename T>
94  static bool testSlerp(const double testDuration);
95 };
96 
97 }
98 
99 }
100 
101 }
102 
103 #endif // META_OCEAN_TEST_TESTMATH_TEST_QUATERNION_H
This class implements a quaternion test.
Definition: TestQuaternion.h:27
static bool testAngle(const double testDuration)
Tests the calculation of the Quaternion's angle.
static bool test(const double testDuration)
Executes all quaternion tests.
static bool testConversionToRotation(const double testDuration)
Tests the conversion from a quaternion to a rotation.
static bool testConstructor(const double testDuration)
Tests the constructor.
static bool testWriteToMessenger()
Tests the messenger function.
static bool testSlerp(const double testDuration)
Tests the slerp function.
static bool testNormalization(const double testDuration)
Tests the normalization of a quaternion.
static bool testInverting(const double testDuration)
Tests the inverting of a quaternion.
static bool testReferenceOffsetConstructor(const double testDuration)
Tests the reference-offset constructor.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15