Fix UnitTest add cudamatrix add and mul
This commit is contained in:
@@ -25,10 +25,10 @@ protected:
|
||||
};
|
||||
|
||||
TEST_F(Matrix_Test, MatrixCreate) {
|
||||
double *dataA = Aurora::malloc(9);
|
||||
double *dataB = new double[9];
|
||||
double *dataC = new double[9];
|
||||
double *dataD = new double[9];
|
||||
float *dataA = Aurora::malloc(9);
|
||||
float *dataB = new float[9];
|
||||
float *dataC = new float[9];
|
||||
float *dataD = new float[9];
|
||||
//mkl matrix
|
||||
{
|
||||
Aurora::Matrix A = Aurora::Matrix::New(dataA, 3, 3);
|
||||
@@ -40,7 +40,7 @@ TEST_F(Matrix_Test, MatrixCreate) {
|
||||
EXPECT_EQ(Aurora::Normal, A.getValueType());
|
||||
DISPLAY_MATRIX(A);
|
||||
}
|
||||
// double [] matrix
|
||||
// float [] matrix
|
||||
{
|
||||
Aurora::Matrix B = Aurora::Matrix::fromRawData(dataB, 3, 3);
|
||||
EXPECT_EQ(dataB, B.getData());
|
||||
@@ -51,7 +51,7 @@ TEST_F(Matrix_Test, MatrixCreate) {
|
||||
EXPECT_EQ(Aurora::Normal, B.getValueType());
|
||||
DISPLAY_MATRIX(B);
|
||||
}
|
||||
// copy from double [] to mkl matrix
|
||||
// copy from float [] to mkl matrix
|
||||
{
|
||||
Aurora::Matrix C = Aurora::Matrix::copyFromRawData(dataC, 3, 3);
|
||||
EXPECT_NE(dataC, C.getData());
|
||||
@@ -98,7 +98,7 @@ TEST_F(Matrix_Test, MatrixCreate) {
|
||||
}
|
||||
// 3d matrix
|
||||
{
|
||||
double *tempData = new double[9];
|
||||
float *tempData = new float[9];
|
||||
Aurora::Matrix C = Aurora::Matrix::fromRawData(tempData, 3, 3, 1);
|
||||
EXPECT_EQ(dataD, C.getData());
|
||||
EXPECT_EQ(9, C.getDataSize());
|
||||
@@ -111,7 +111,7 @@ TEST_F(Matrix_Test, MatrixCreate) {
|
||||
}
|
||||
// 3d matrix 2
|
||||
{
|
||||
double *tempData = new double[9];
|
||||
float *tempData = new float[9];
|
||||
Aurora::Matrix C = Aurora::Matrix::fromRawData(tempData, 3, 1, 3);
|
||||
EXPECT_EQ(tempData, C.getData());
|
||||
EXPECT_EQ(9, C.getDataSize());
|
||||
@@ -125,13 +125,13 @@ TEST_F(Matrix_Test, MatrixCreate) {
|
||||
}
|
||||
|
||||
TEST_F(Matrix_Test, matrixSlice) {
|
||||
double *dataA = Aurora::malloc(8);
|
||||
double *dataB = Aurora::malloc(8);
|
||||
double *dataC = Aurora::malloc(8);
|
||||
float *dataA = Aurora::malloc(8);
|
||||
float *dataB = Aurora::malloc(8);
|
||||
float *dataC = Aurora::malloc(8);
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
dataA[i] = (double) (i);
|
||||
dataB[i] = (double) (1);
|
||||
dataC[i] = (double) (9 - i);
|
||||
dataA[i] = (float) (i);
|
||||
dataB[i] = (float) (1);
|
||||
dataC[i] = (float) (9 - i);
|
||||
}
|
||||
Aurora::Matrix A = Aurora::Matrix::New(dataA, 2, 2, 2);
|
||||
Aurora::Matrix B = Aurora::Matrix::New(dataB, 2, 2, 2);
|
||||
@@ -158,9 +158,9 @@ TEST_F(Matrix_Test, matrixSlice) {
|
||||
EXPECT_EQ(9, D.getData()[0]);
|
||||
|
||||
|
||||
double *dataD = Aurora::malloc(27);
|
||||
float *dataD = Aurora::malloc(27);
|
||||
for (int i = 0; i < 27; ++i) {
|
||||
dataD[i] = (double) (i);
|
||||
dataD[i] = (float) (i);
|
||||
}
|
||||
Aurora::Matrix D1 = Aurora::Matrix::New(dataD, 3, 3, 3);
|
||||
auto r1 = D1.block(0, 0, 1);
|
||||
@@ -177,12 +177,12 @@ TEST_F(Matrix_Test, matrixSlice) {
|
||||
TEST_F(Matrix_Test, matrixOpertaor) {
|
||||
//3D
|
||||
{
|
||||
double *dataA = new double[8];
|
||||
double *dataB = new double[8];
|
||||
double *dataD = new double[8];
|
||||
float *dataA = new float[8];
|
||||
float *dataB = new float[8];
|
||||
float *dataD = new float[8];
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
dataA[i] = (double) (i);
|
||||
dataB[i] = (double) (2);
|
||||
dataA[i] = (float) (i);
|
||||
dataB[i] = (float) (2);
|
||||
}
|
||||
Aurora::Matrix A = Aurora::Matrix::fromRawData(dataA, 2, 2, 2);
|
||||
DISPLAY_MATRIX(A);
|
||||
@@ -203,13 +203,13 @@ TEST_F(Matrix_Test, matrixOpertaor) {
|
||||
}
|
||||
//complex
|
||||
{
|
||||
double *dataA = Aurora::malloc(8, true);
|
||||
double *dataB = Aurora::malloc(8, true);
|
||||
double *dataD = new double[8];
|
||||
float *dataA = Aurora::malloc(8, true);
|
||||
float *dataB = Aurora::malloc(8, true);
|
||||
float *dataD = new float[8];
|
||||
for (int i = 0; i < 16; ++i) {
|
||||
dataA[i] = (double) (i + 1);
|
||||
dataB[i] = (double) (2);
|
||||
if (i < 8) dataD[i] = (double) (2);
|
||||
dataA[i] = (float) (i + 1);
|
||||
dataB[i] = (float) (2);
|
||||
if (i < 8) dataD[i] = (float) (2);
|
||||
}
|
||||
Aurora::Matrix A = Aurora::Matrix::New(dataA, 2, 2, 2, Aurora::Complex);
|
||||
DISPLAY_MATRIX(A);
|
||||
@@ -302,11 +302,11 @@ TEST_F(Matrix_Test, matrixOpertaor) {
|
||||
}
|
||||
|
||||
TEST_F(Matrix_Test, matrixCompare){
|
||||
double *dataA = new double[8];
|
||||
double *dataB = new double[8];
|
||||
float *dataA = new float[8];
|
||||
float *dataB = new float[8];
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
dataA[i] = (double) (i);
|
||||
dataB[i] = (double) (2);
|
||||
dataA[i] = (float) (i);
|
||||
dataB[i] = (float) (2);
|
||||
}
|
||||
Aurora::Matrix A = Aurora::Matrix::fromRawData(dataA, 2, 2, 2);
|
||||
Aurora::Matrix B = Aurora::Matrix::fromRawData(dataB, 2, 2, 2);
|
||||
@@ -374,33 +374,33 @@ TEST_F(Matrix_Test, matrixCompare){
|
||||
}
|
||||
|
||||
TEST_F(Matrix_Test, matrixfunction){
|
||||
double *dataA = new double[9]{1,6,9,4,1,0,5,8,1};
|
||||
double *dataB = new double[3]{1,2,3};
|
||||
float *dataA = new float[9]{1,6,9,4,1,0,5,8,1};
|
||||
float *dataB = new float[3]{1,2,3};
|
||||
Aurora::Matrix A = Aurora::Matrix::fromRawData(dataA, 3, 3);
|
||||
Aurora::Matrix B = Aurora::Matrix::fromRawData(dataB, 1, 3);
|
||||
auto C = B.mul(A);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[0], 40);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[1], 6);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[2], 24);
|
||||
EXPECT_FLOAT_EQ(C.getData()[0], 40);
|
||||
EXPECT_FLOAT_EQ(C.getData()[1], 6);
|
||||
EXPECT_FLOAT_EQ(C.getData()[2], 24);
|
||||
B.forceReshape(3, 1, 1);
|
||||
C = A.mul(B);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[0], 24);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[1], 32);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[2], 12);
|
||||
double *dataD = new double[9]{2.1,3,9,-3,1,0,51,-8,1};
|
||||
EXPECT_FLOAT_EQ(C.getData()[0], 24);
|
||||
EXPECT_FLOAT_EQ(C.getData()[1], 32);
|
||||
EXPECT_FLOAT_EQ(C.getData()[2], 12);
|
||||
float *dataD = new float[9]{2.1,3,9,-3,1,0,51,-8,1};
|
||||
Aurora::Matrix D = Aurora::Matrix::fromRawData(dataD, 3, 3);
|
||||
C = A.mul(D);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[0], 59.1);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[1], 87.6);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[2], 27.9);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[3], 1);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[4], -17);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[5], -27);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[6], 24);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[7], 306);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[8], 460);
|
||||
EXPECT_FLOAT_EQ(C.getData()[0], 59.1);
|
||||
EXPECT_FLOAT_EQ(C.getData()[1], 87.6);
|
||||
EXPECT_FLOAT_EQ(C.getData()[2], 27.9);
|
||||
EXPECT_FLOAT_EQ(C.getData()[3], 1);
|
||||
EXPECT_FLOAT_EQ(C.getData()[4], -17);
|
||||
EXPECT_FLOAT_EQ(C.getData()[5], -27);
|
||||
EXPECT_FLOAT_EQ(C.getData()[6], 24);
|
||||
EXPECT_FLOAT_EQ(C.getData()[7], 306);
|
||||
EXPECT_FLOAT_EQ(C.getData()[8], 460);
|
||||
|
||||
double *dataE = Aurora::random(60);
|
||||
float *dataE = Aurora::random(60);
|
||||
Aurora::Matrix E = Aurora::Matrix::New(dataE, 3, 4, 5);
|
||||
Aurora::Matrix block1 = E.block(0, 1, 2);
|
||||
for (size_t i = 0; i < block1.getDimSize(2); i++)
|
||||
@@ -411,7 +411,7 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
{
|
||||
auto index1 = k+j*E.getDimSize(0)+i*E.getDimSize(1)*E.getDimSize(0);
|
||||
auto index2 = k-1+j*block1.getDimSize(0)+i*block1.getDimSize(1)*block1.getDimSize(0);
|
||||
EXPECT_DOUBLE_AE(E[index1],block1[index2]);
|
||||
EXPECT_FLOAT_AE(E[index1],block1[index2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -422,7 +422,7 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
{
|
||||
for (size_t k = 1; k < E.getDimSize(0); k++)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(E(k,i,j).toMatrix().getScalar(),-1);
|
||||
EXPECT_FLOAT_AE(E(k,i,j).toMatrix().getScalar(),-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -432,7 +432,7 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
{
|
||||
for (size_t j = 0; j < 5; j++)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(E(0,i,j).toMatrix().getScalar(), 0.0);
|
||||
EXPECT_FLOAT_AE(E(0,i,j).toMatrix().getScalar(), 0.0);
|
||||
}
|
||||
}
|
||||
auto z2 = Aurora::zeros(3,2,5);
|
||||
@@ -444,7 +444,7 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
{
|
||||
for (size_t k = 0; k < 3; k++)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(E(k,i,j).toMatrix().getScalar(), 0.0);
|
||||
EXPECT_FLOAT_AE(E(k,i,j).toMatrix().getScalar(), 0.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -458,7 +458,7 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
{
|
||||
for (size_t k = 0; k < 3; k++)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(E(k,i,j).toMatrix().getScalar(), 1.0);
|
||||
EXPECT_FLOAT_AE(E(k,i,j).toMatrix().getScalar(), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -467,7 +467,8 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
EXPECT_TRUE(ZZ.setBlock(1, 10, 19, OO));
|
||||
for (size_t i = 0; i < ZZ.getDataSize(); i++)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(ZZ[i], i>9?1.0:0.0);
|
||||
EXPECT_FLOAT_AE(ZZ[i], i>9?1.0:0.0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user