|
@ -6,29 +6,119 @@ |
|
|
#include "mat.h"
|
|
|
#include "mat.h"
|
|
|
|
|
|
|
|
|
#define TESTSIZE 4
|
|
|
#define TESTSIZE 4
|
|
|
|
|
|
int testMat [TESTSIZE][TESTSIZE]; |
|
|
|
|
|
int testVec [TESTSIZE]; |
|
|
|
|
|
|
|
|
TEST_GROUP(Matrix) |
|
|
TEST_GROUP(Matrix) |
|
|
{ |
|
|
{ |
|
|
void setup() |
|
|
void setup() |
|
|
{ |
|
|
{ |
|
|
|
|
|
int i = 1; |
|
|
|
|
|
int j = 1; |
|
|
|
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
|
|
|
{ |
|
|
|
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
|
|
|
{ |
|
|
|
|
|
testMat[x][y] = i++; |
|
|
|
|
|
} |
|
|
|
|
|
testVec[x] = j++; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void teardown() |
|
|
void teardown() |
|
|
{ |
|
|
{ |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
TEST(Matrix, set) |
|
|
|
|
|
|
|
|
TEST(Matrix, vectorMultiply) |
|
|
|
|
|
{ |
|
|
|
|
|
Mat<int, TESTSIZE> a = testMat; |
|
|
|
|
|
Vec<int, TESTSIZE> v = testVec; |
|
|
|
|
|
|
|
|
|
|
|
//Vec<int, TESTSIZE> b = a * v;
|
|
|
|
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
|
|
|
{ |
|
|
|
|
|
int val = 0; |
|
|
|
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
|
|
|
{ |
|
|
|
|
|
val += testMat[x][y] * testVec[x]; |
|
|
|
|
|
} |
|
|
|
|
|
//CHECK_EQUAL(val,b(x));
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, scalarDivide) |
|
|
|
|
|
{ |
|
|
|
|
|
Mat<int, TESTSIZE> a = testMat; |
|
|
|
|
|
|
|
|
|
|
|
a = a / 5; |
|
|
|
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
|
|
|
{ |
|
|
|
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
|
|
|
{ |
|
|
|
|
|
int val = testMat[x][y] / 5; |
|
|
|
|
|
CHECK_EQUAL(val,a(x,y)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, scalarSubstract) |
|
|
|
|
|
{ |
|
|
|
|
|
Mat<int, TESTSIZE> a = testMat; |
|
|
|
|
|
|
|
|
|
|
|
a = a - 5; |
|
|
|
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
|
|
|
{ |
|
|
|
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
|
|
|
{ |
|
|
|
|
|
int val = testMat[x][y] - 5; |
|
|
|
|
|
CHECK_EQUAL(val,a(x,y)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, scalarAdd) |
|
|
|
|
|
{ |
|
|
|
|
|
Mat<int, TESTSIZE> a = testMat; |
|
|
|
|
|
|
|
|
|
|
|
a = a + 5; |
|
|
|
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
|
|
|
{ |
|
|
|
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
|
|
|
{ |
|
|
|
|
|
int val = testMat[x][y] + 5; |
|
|
|
|
|
CHECK_EQUAL(val,a(x,y)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, scalarMultiply) |
|
|
|
|
|
{ |
|
|
|
|
|
Mat<int, TESTSIZE> a = testMat; |
|
|
|
|
|
|
|
|
|
|
|
a = a + 5; |
|
|
|
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
|
|
|
{ |
|
|
|
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
|
|
|
{ |
|
|
|
|
|
int val = testMat[x][y] + 5; |
|
|
|
|
|
CHECK_EQUAL(val,a(x,y)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, setIndex) |
|
|
{ |
|
|
{ |
|
|
Mat<int,TESTSIZE> a ; |
|
|
Mat<int,TESTSIZE> a ; |
|
|
Mat<int,TESTSIZE> b ; |
|
|
Mat<int,TESTSIZE> b ; |
|
|
|
|
|
|
|
|
|
|
|
int val = 1; |
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
{ |
|
|
{ |
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
{ |
|
|
{ |
|
|
int val = (x+1)*TESTSIZE+y; |
|
|
|
|
|
a(x,y) = val; |
|
|
a(x,y) = val; |
|
|
CHECK_EQUAL(val,a(x,y)); |
|
|
CHECK_EQUAL(val,a(x,y)); |
|
|
|
|
|
val++; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -40,16 +130,19 @@ TEST(Matrix, set) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
b = a; |
|
|
b = a; |
|
|
|
|
|
val = 1; |
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
{ |
|
|
{ |
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
for (int y = 0; y <TESTSIZE ; y++) |
|
|
{ |
|
|
{ |
|
|
int val = (x+1)*TESTSIZE+y; |
|
|
|
|
|
|
|
|
a(x,y) = val; |
|
|
CHECK_EQUAL(val,b(x,y)); |
|
|
CHECK_EQUAL(val,b(x,y)); |
|
|
|
|
|
val++; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
TEST(Matrix, init_set) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, initAndSet) |
|
|
{ |
|
|
{ |
|
|
Mat<int,TESTSIZE> a ; |
|
|
Mat<int,TESTSIZE> a ; |
|
|
|
|
|
|
|
@ -70,7 +163,8 @@ TEST(Matrix, init_set) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
TEST(Matrix, init) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST(Matrix, initZeroed) |
|
|
{ |
|
|
{ |
|
|
Mat<int,TESTSIZE> a ; |
|
|
Mat<int,TESTSIZE> a ; |
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|
for (int x = 0; x <TESTSIZE ; x++) |
|
|