sandbox
Loading...
Searching...
No Matches
quaternion_tests.hpp
1// SPDX-License-Identifier: MIT
2#ifndef LIBSBX_MATH_TESTS_QUATERNION_TESTS_HPP_
3#define LIBSBX_MATH_TESTS_QUATERNION_TESTS_HPP_
4
5#include <gtest/gtest.h>
6
7#include <libsbx/math/quaternion.hpp>
8
9TEST(libsbx_math_quaternion, default_constructor) {
10 auto quaternion = sbx::math::quaternion{};
11
12 EXPECT_FLOAT_EQ(quaternion.complex().x(), 0.0f);
13 EXPECT_FLOAT_EQ(quaternion.complex().y(), 0.0f);
14 EXPECT_FLOAT_EQ(quaternion.complex().z(), 0.0f);
15 EXPECT_FLOAT_EQ(quaternion.scalar(), 0.0f);
16}
17
18TEST(libsbx_math_quaternion, constructor) {
19 auto quaternion = sbx::math::quaternion{1.0f, 2.0f, 3.0f, 4.0f};
20
21 EXPECT_FLOAT_EQ(quaternion.complex().x(), 1.0f);
22 EXPECT_FLOAT_EQ(quaternion.complex().y(), 2.0f);
23 EXPECT_FLOAT_EQ(quaternion.complex().z(), 3.0f);
24 EXPECT_FLOAT_EQ(quaternion.scalar(), 4.0f);
25}
26
27TEST(libsbx_math_quaternion, vector_constructor) {
28 auto quaternion = sbx::math::quaternion{sbx::math::vector3{1.0f, 2.0f, 3.0f}, 4.0f};
29
30 EXPECT_FLOAT_EQ(quaternion.complex().x(), 1.0f);
31 EXPECT_FLOAT_EQ(quaternion.complex().y(), 2.0f);
32 EXPECT_FLOAT_EQ(quaternion.complex().z(), 3.0f);
33 EXPECT_FLOAT_EQ(quaternion.scalar(), 4.0f);
34}
35
36TEST(libsbx_math_quaternion, equality) {
37 auto quaternion = sbx::math::quaternion{1.0f, 2.0f, 3.0f, 4.0f};
38
39 auto other = sbx::math::quaternion{1.0f, 2.0f, 3.0f, 4.0f};
40
41 EXPECT_EQ(quaternion, other);
42}
43
44TEST(libsbx_math_quaternion, inequality) {
45 auto quaternion = sbx::math::quaternion{1.0f, 2.0f, 3.0f, 4.0f};
46
47 auto other = sbx::math::quaternion{5.0f, 6.0f, 7.0f, 8.0f};
48
49 EXPECT_NE(quaternion, other);
50}
51
52#endif // LIBSBX_MATH_TESTS_QUATERNION_TESTS_HPP_
Definition: quaternion.hpp:25
Definition: vector3.hpp:23