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