5 #include "gtest/gtest.h"
15 TEST(MatrixTest, Multiply) {
16 Matrix x(0.0, 0.0, 0.0, 1.0,
21 Matrix result = translate * x;
25 11.0, 21.0, 0.0, 1.0)));
34 TEST(MatrixTest, NotEquals) {
40 TEST(MatrixTest, HasPerspective2D) {
41 EXPECT_FALSE(
Matrix().HasPerspective2D());
43 auto test = [](
int index,
bool expect) {
46 matrix.
m[index] = 0.5f;
51 test( 0,
false); test( 1,
false); test( 2,
false); test( 3,
true);
52 test( 4,
false); test( 5,
false); test( 6,
false); test( 7,
true);
53 test( 8,
false); test( 9,
false); test(10,
false); test(11,
false);
54 test(12,
false); test(13,
false); test(14,
false); test(15,
true);
58 TEST(MatrixTest, HasPerspective) {
59 EXPECT_FALSE(
Matrix().HasPerspective());
61 auto test = [](
int index,
bool expect) {
64 matrix.
m[index] = 0.5f;
69 test( 0,
false); test( 1,
false); test( 2,
false); test( 3,
true);
70 test( 4,
false); test( 5,
false); test( 6,
false); test( 7,
true);
71 test( 8,
false); test( 9,
false); test(10,
false); test(11,
true);
72 test(12,
false); test(13,
false); test(14,
false); test(15,
true);
76 TEST(MatrixTest, HasTranslation) {
80 EXPECT_FALSE(
Matrix().HasTranslation());
83 TEST(MatrixTest, IsAligned2D) {
84 EXPECT_TRUE(
Matrix().IsAligned2D());
87 auto test = [](
int index,
bool expect) {
90 matrix.
m[index] = 0.5f;
91 EXPECT_EQ(matrix.
IsAligned2D(), expect) <<
"index: " << index;
95 test( 0,
true); test( 1,
false); test( 2,
true); test( 3,
false);
96 test( 4,
false); test( 5,
true); test( 6,
true); test( 7,
false);
97 test( 8,
true); test( 9,
true); test(10,
true); test(11,
true);
98 test(12,
true); test(13,
true); test(14,
true); test(15,
false);
102 for (
int i = -1000; i < 1000; i++) {
109 for (
int i = -1000; i < 1000; i++) {
117 EXPECT_TRUE(
Matrix().IsAligned());
130 ASSERT_FALSE(result);
134 auto test = [](
int index,
bool expect) {
137 matrix.
m[index] = 0.5f;
138 EXPECT_EQ(matrix.
IsAligned(), expect) <<
"index: " << index;
142 test( 0,
true); test( 1,
false); test( 2,
false); test( 3,
false);
143 test( 4,
false); test( 5,
true); test( 6,
false); test( 7,
false);
144 test( 8,
false); test( 9,
false); test(10,
true); test(11,
false);
145 test(12,
true); test(13,
true); test(14,
true); test(15,
false);
149 for (
int i = -1000; i < 1000; i++) {
156 for (
int i = -1000; i < 1000; i++) {
163 TEST(MatrixTest, TransformHomogenous) {
166 2.0f, 3.0f, 5.0f, 7.0f,
167 11.0f, 13.0f, 17.0f, 19.0f,
168 23.0f, 29.0f, 31.0f, 37.0f,
169 41.0f, 43.0f, 47.0f, 53.0f
176 TEST(MatrixTest, GetMaxBasisXYNegativeScale) {
187 TEST(MatrixTest, GetMaxBasisXYWithLargeAndSmallScalingFactor) {
195 TEST(MatrixTest, GetMaxBasisXYWithLargeAndSmallScalingFactorNonScaleTranslate) {
202 TEST(MatrixTest, TranslateWithPerspective) {
206 0.0, 2.0, 0.0, 30.0);
209 0.0, 1.0, 0.0, 220.0,
211 0.0, 2.0, 0.0, 430.0)));