5 #include "gtest/gtest.h"
14 TEST(MatrixTest, Multiply) {
15 Matrix x(0.0, 0.0, 0.0, 1.0,
20 Matrix result = translate * x;
24 11.0, 21.0, 0.0, 1.0)));
27 TEST(MatrixTest, HasPerspective2D) {
28 EXPECT_FALSE(
Matrix().HasPerspective2D());
30 auto test = [](
int index,
bool expect) {
33 matrix.
m[index] = 0.5f;
38 test( 0,
false); test( 1,
false); test( 2,
false); test( 3,
true);
39 test( 4,
false); test( 5,
false); test( 6,
false); test( 7,
true);
40 test( 8,
false); test( 9,
false); test(10,
false); test(11,
false);
41 test(12,
false); test(13,
false); test(14,
false); test(15,
true);
45 TEST(MatrixTest, HasPerspective) {
46 EXPECT_FALSE(
Matrix().HasPerspective());
48 auto test = [](
int index,
bool expect) {
51 matrix.
m[index] = 0.5f;
56 test( 0,
false); test( 1,
false); test( 2,
false); test( 3,
true);
57 test( 4,
false); test( 5,
false); test( 6,
false); test( 7,
true);
58 test( 8,
false); test( 9,
false); test(10,
false); test(11,
true);
59 test(12,
false); test(13,
false); test(14,
false); test(15,
true);
63 TEST(MatrixTest, HasTranslation) {
67 EXPECT_FALSE(
Matrix().HasTranslation());
70 TEST(MatrixTest, IsAligned2D) {
71 EXPECT_TRUE(
Matrix().IsAligned2D());
74 auto test = [](
int index,
bool expect) {
77 matrix.
m[index] = 0.5f;
78 EXPECT_EQ(matrix.
IsAligned2D(), expect) <<
"index: " << index;
82 test( 0,
true); test( 1,
false); test( 2,
true); test( 3,
false);
83 test( 4,
false); test( 5,
true); test( 6,
true); test( 7,
false);
84 test( 8,
true); test( 9,
true); test(10,
true); test(11,
true);
85 test(12,
true); test(13,
true); test(14,
true); test(15,
false);
89 for (
int i = -1000; i < 1000; i++) {
96 for (
int i = -1000; i < 1000; i++) {
104 EXPECT_TRUE(
Matrix().IsAligned());
117 ASSERT_FALSE(result);
121 auto test = [](
int index,
bool expect) {
124 matrix.
m[index] = 0.5f;
125 EXPECT_EQ(matrix.
IsAligned(), expect) <<
"index: " << index;
129 test( 0,
true); test( 1,
false); test( 2,
false); test( 3,
false);
130 test( 4,
false); test( 5,
true); test( 6,
false); test( 7,
false);
131 test( 8,
false); test( 9,
false); test(10,
true); test(11,
false);
132 test(12,
true); test(13,
true); test(14,
true); test(15,
false);
136 for (
int i = -1000; i < 1000; i++) {
143 for (
int i = -1000; i < 1000; i++) {
150 TEST(MatrixTest, TransformHomogenous) {
153 2.0f, 3.0f, 5.0f, 7.0f,
154 11.0f, 13.0f, 17.0f, 19.0f,
155 23.0f, 29.0f, 31.0f, 37.0f,
156 41.0f, 43.0f, 47.0f, 53.0f