Skip to content

Commit 01332dd

Browse files
committed
test all reasonable matrices
1 parent a3bbf0d commit 01332dd

1 file changed

Lines changed: 21 additions & 106 deletions

File tree

test/test_matrix.cpp

Lines changed: 21 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,19 @@
11
#include <gtest/gtest.h>
22
#include "SIMDMatrix.h"
33

4-
using SIMDMatrix = linear_algebra::SIMDMatrix;
5-
6-
TEST(SIMDMatrix_test, IdentityInitialization)
7-
{
8-
SIMDMatrix mat = SIMDMatrix::Identity(4);
9-
10-
for (size_t i = 0; i < 4; i++)
11-
for (size_t j = 0; j < 4; j++)
12-
{
13-
float val = mat.get(i, j);
14-
if (i == j)
15-
EXPECT_FLOAT_EQ(val, 1.0f);
16-
else
17-
EXPECT_FLOAT_EQ(val, 0.0f);
18-
}
19-
}
20-
21-
TEST(SIMDMatrix_test, IdentityAdditionTest)
22-
{
23-
SIMDMatrix mat1 = SIMDMatrix::Identity(4);
24-
SIMDMatrix mat2 = SIMDMatrix::Identity(4);
25-
26-
auto result = mat1 + mat2;
4+
static constexpr size_t MATRIX_SIZE_LIMIT = 204; // Max. 2MB of heap mem used
275

28-
EXPECT_EQ(mat1.getRowCount(), result.getRowCount());
29-
EXPECT_EQ(mat1.getColCount(), result.getColCount());
30-
EXPECT_EQ(mat2.getRowCount(), result.getRowCount());
31-
EXPECT_EQ(mat2.getColCount(), result.getColCount());
32-
33-
for (size_t i = 0; i < result.getRowCount(); i++)
34-
for (size_t j = 0; j < result.getColCount(); j++)
35-
{
36-
float val = result.get(i, j);
37-
if (i == j)
38-
EXPECT_FLOAT_EQ(val, 2.0f);
39-
else
40-
EXPECT_FLOAT_EQ(val, 0.0f);
41-
}
42-
}
43-
44-
TEST(SIMDMatrix_test, IdentityScalarMulTest)
45-
{
46-
SIMDMatrix mat = SIMDMatrix::Identity(4);
47-
48-
auto result = mat * 5;
49-
50-
EXPECT_EQ(mat.getRowCount(), result.getRowCount());
51-
EXPECT_EQ(mat.getColCount(), result.getColCount());
52-
53-
for (size_t i = 0; i < mat.getRowCount(); i++)
54-
for (size_t j = 0; j < mat.getColCount(); j++)
55-
{
56-
float val = result.get(i, j);
57-
if (i == j)
58-
EXPECT_FLOAT_EQ(val, 5.0f);
59-
else
60-
EXPECT_FLOAT_EQ(val, 0.0f);
61-
}
62-
}
63-
64-
TEST(SIMDMatrix_test, IdentityScalarMulTest1)
65-
{
66-
SIMDMatrix mat = SIMDMatrix::Identity(4);
67-
mat *= 5;
68-
69-
EXPECT_EQ(mat.getRowCount(), 4);
70-
EXPECT_EQ(mat.getColCount(), 4);
71-
72-
for (size_t i = 0; i < mat.getRowCount(); i++)
73-
for (size_t j = 0; j < mat.getColCount(); j++)
74-
{
75-
float val = mat.get(i, j);
76-
if (i == j)
77-
EXPECT_FLOAT_EQ(val, 5.0f);
78-
else
79-
EXPECT_FLOAT_EQ(val, 0.0f);
80-
}
81-
}
6+
using SIMDMatrix = linear_algebra::SIMDMatrix;
827

83-
TEST(SIMDMatrix_test, LargeMatricesScalarMulTest)
8+
TEST(SIMDMatrix, IdentityScalarMultiplication)
849
{
85-
static constexpr size_t SIZE_LIMIT = 102; // k * k * 100 <= 1 048 576 (1mb)
86-
87-
for (size_t s = 1; s < SIZE_LIMIT; s++)
10+
for (size_t size = 1; size <= MATRIX_SIZE_LIMIT; size++)
8811
{
89-
SIMDMatrix mat = SIMDMatrix::Identity(s);
12+
SIMDMatrix mat = SIMDMatrix::Identity(size);
9013
mat *= 5;
9114

92-
EXPECT_EQ(mat.getRowCount(), s);
93-
EXPECT_EQ(mat.getColCount(), s);
94-
95-
for (size_t i = 0; i < mat.getRowCount(); i++)
96-
for (size_t j = 0; j < mat.getColCount(); j++)
15+
for (size_t i = 0; i < size; i++)
16+
for (size_t j = 0; j < size; j++)
9717
{
9818
float val = mat.get(i, j);
9919
if (i == j)
@@ -104,26 +24,21 @@ TEST(SIMDMatrix_test, LargeMatricesScalarMulTest)
10424
}
10525
}
10626

107-
TEST(SIMDMatrix_test, LatgeMatricesAdditionTest)
27+
TEST(SIMDMatrix, IdentityAddition)
10828
{
109-
static constexpr size_t SIZE_LIMIT = 102; // k * k * 100 <= 1'048'576 (1mb)
110-
111-
for (size_t s = 1; s < SIZE_LIMIT; s++)
29+
for (size_t size = 1; size <= MATRIX_SIZE_LIMIT; size++)
11230
{
113-
SIMDMatrix mat = SIMDMatrix::Identity(s);
114-
mat += mat;
115-
116-
EXPECT_EQ(mat.getRowCount(), s);
117-
EXPECT_EQ(mat.getColCount(), s);
118-
119-
for (size_t i = 0; i < mat.getRowCount(); i++)
120-
for (size_t j = 0; j < mat.getColCount(); j++)
121-
{
122-
float val = mat.get(i, j);
123-
if (i == j)
124-
EXPECT_FLOAT_EQ(val, 2.0f);
125-
else
126-
EXPECT_FLOAT_EQ(val, 0.0f);
127-
}
31+
SIMDMatrix mat = SIMDMatrix::Identity(size);
32+
mat += SIMDMatrix::Identity(size) * 27;
33+
34+
for (size_t i = 0; i < size; i++)
35+
for (size_t j = 0; j < size; j++)
36+
{
37+
float val = mat.get(i, j);
38+
if (i == j)
39+
EXPECT_FLOAT_EQ(val, 28.0f);
40+
else
41+
EXPECT_FLOAT_EQ(val, 0.0f);
42+
}
12843
}
12944
}

0 commit comments

Comments
 (0)