UnitTest for complex mul and div for CudaMatrix

This commit is contained in:
kradchen
2023-12-08 16:19:11 +08:00
parent 7dc3bc221a
commit 1cb8d62f01

View File

@@ -350,6 +350,53 @@ TEST_F(CudaMatrix_Test, MatrixDiv) {
} }
} }
TEST_F(CudaMatrix_Test, MatrixComplexMulAndDiv){
float * dataA = new float[100];
float * dataB = new float[100];
auto A = Aurora::Matrix::fromRawData(dataA,5,10,1,Aurora::Complex);
auto B = Aurora::Matrix::fromRawData(dataB,5,10,1,Aurora::Complex);
for (size_t i = 0; i < 100; i++)
{
dataA[i] = (float)1;
dataB[i] = (float)(-2);
}
auto dA = A.toDeviceMatrix();
auto dB = B.toDeviceMatrix();
auto ret1 = A*B;
auto ret2 = dA*dB;
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
{
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
}
ret2 = A.toDeviceMatrix()*dB;
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
{
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
}
ret2 = dA*B.toDeviceMatrix();
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
{
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
}
ret1 = A/B;
ret2 = dA/dB;
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
{
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
}
ret2 = A.toDeviceMatrix()/dB;
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
{
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
}
ret2 = dA/B.toDeviceMatrix();
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
{
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
}
}
TEST_F(CudaMatrix_Test, MatrixPow){ TEST_F(CudaMatrix_Test, MatrixPow){
auto A = Aurora::zeros(1000,1,1); auto A = Aurora::zeros(1000,1,1);
auto B = Aurora::zeros(1000,1,1); auto B = Aurora::zeros(1000,1,1);