Add vecnorm and unitest

This commit is contained in:
sunwen
2023-11-30 17:55:02 +08:00
parent a8c65f21b1
commit 7db741502e
3 changed files with 134 additions and 0 deletions

View File

@@ -902,3 +902,41 @@ TEST_F(Function1D_Cuda_Test, vertcat) {
EXPECT_FLOAT_EQ(result.getDimSize(0),6);
EXPECT_FLOAT_EQ(result.getDimSize(1),1);
}
TEST_F(Function1D_Cuda_Test, vecnorm) {
//1Dim
float *data = new float[3]{1,2,-3};
auto matrix = Aurora::Matrix::fromRawData(data, 3).toDeviceMatrix();
auto result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],6);
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],3.74166);
//2Dims
data = new float[8]{1,2,-3,6,7,9,22.3,-8.6};
matrix = Aurora::Matrix::fromRawData(data, 4,2).toDeviceMatrix();
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],12);
EXPECT_FLOAT_AE(result.getData()[1],46.9);
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],7.0711);
EXPECT_FLOAT_AE(result.getData()[1],26.4811);
//1Dim Complex
data = new float[6]{1,2,-3,4,5,-6};
matrix = Aurora::Matrix::fromRawData(data, 3,1,1,Aurora::Complex).toDeviceMatrix();
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],15.0463);
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],9.5394);
//2Dims Complex
data = new float[12]{1,2,-3,4,5,-6,7,8,9,22,24,25};
matrix = Aurora::Matrix::fromRawData(data, 3,2,1,Aurora::Complex).toDeviceMatrix();
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],15.0463);
EXPECT_FLOAT_AE(result.getData()[1],69.0553);
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
EXPECT_FLOAT_AE(result.getData()[0],9.5394);
EXPECT_FLOAT_AE(result.getData()[1],43.3474);
}