Add CudaMatrix block,setBlock,setBlockValue unittest.
This commit is contained in:
@@ -184,4 +184,41 @@ TEST_F(CudaMatrix_Test, MatrixMul) {
|
||||
ASSERT_FLOAT_EQ(D1[i],dhD[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(CudaMatrix_Test, matrixfunction)
|
||||
{
|
||||
printf("Test CudaMatrix block(int aDim,int aBeginIndx, int aEndIndex) const\r\n");
|
||||
{
|
||||
float *dataA = new float[9]{1,6,9,4,1,0,5,8,1};
|
||||
float *dataB = new float[3]{1,2,3};
|
||||
Aurora::CudaMatrix A = Aurora::Matrix::fromRawData(dataA, 3, 3).toDeviceMatrix();
|
||||
Aurora::CudaMatrix B = Aurora::Matrix::fromRawData(dataB, 1, 3).toDeviceMatrix();
|
||||
|
||||
Aurora::Matrix block1 = A.block(0, 1, 2).toHostMatrix();
|
||||
Aurora::Matrix block2 = A.toHostMatrix().block(0, 1, 2);
|
||||
for (size_t i = 0; i < block1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(block1[i], block2[i]);
|
||||
}
|
||||
|
||||
block2 = A.toHostMatrix();
|
||||
A.setBlockValue(0, 1, 2,-1);
|
||||
block1 = A.toHostMatrix();
|
||||
block2.setBlockValue(0, 1, 2,-1);
|
||||
for (size_t i = 0; i < block1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(block1[i], block2[i]);
|
||||
}
|
||||
|
||||
Aurora::CudaMatrix C = Aurora::zeros(2,3).toDeviceMatrix();
|
||||
EXPECT_TRUE(A.setBlock(0, 0, 1, C));
|
||||
block1 = A.block(0, 0, 1).toHostMatrix();
|
||||
block2 = C.toHostMatrix();
|
||||
for(size_t i = 0; i < C.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(block1[i], block2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user