Add vecnorm and vecnorm's unittest.
Add norm function with complex support.
This commit is contained in:
@@ -290,6 +290,7 @@ TEST_F(Function1D_Test, conj) {
|
||||
}
|
||||
|
||||
TEST_F(Function1D_Test, norm) {
|
||||
//1Dim
|
||||
double *data = new double[3]{1,2,-3};
|
||||
auto matrix = Aurora::Matrix::fromRawData(data, 3);
|
||||
auto result = Aurora::norm(matrix,Aurora::NormMethod::Norm1);
|
||||
@@ -299,6 +300,7 @@ TEST_F(Function1D_Test, norm) {
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::NormF);
|
||||
EXPECT_DOUBLE_AE(result,3.74166);
|
||||
|
||||
//2Dims
|
||||
data = new double[8]{1,2,-3,6,7,9,22.3,-8.6};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 4,2);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::Norm1);
|
||||
@@ -307,6 +309,26 @@ TEST_F(Function1D_Test, norm) {
|
||||
EXPECT_DOUBLE_AE(result,26.7284);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::NormF);
|
||||
EXPECT_DOUBLE_AE(result,27.4089);
|
||||
|
||||
//1Dim Complex
|
||||
data = new double[6]{1,2,-3,4,5,-6};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 3,1,1,Aurora::Complex);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::Norm1);
|
||||
EXPECT_DOUBLE_AE(result,15.0463);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::Norm2);
|
||||
EXPECT_DOUBLE_AE(result,9.5394);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::NormF);
|
||||
EXPECT_DOUBLE_AE(result,9.5394);
|
||||
|
||||
//2Dims Complex
|
||||
data = new double[12]{1,2,-3,4,5,-6,7,8,9,22,24,25};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 3,2,1,Aurora::Complex);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::Norm1);
|
||||
EXPECT_DOUBLE_AE(result,69.0553);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::Norm2);
|
||||
EXPECT_DOUBLE_AE(result,43.5314);
|
||||
result = Aurora::norm(matrix,Aurora::NormMethod::NormF);
|
||||
EXPECT_DOUBLE_AE(result,44.3847);
|
||||
}
|
||||
|
||||
TEST_F(Function1D_Test, transpose) {
|
||||
@@ -368,3 +390,41 @@ TEST_F(Function1D_Test, horzcat) {
|
||||
EXPECT_DOUBLE_EQ(result.getDimSize(0),3);
|
||||
EXPECT_DOUBLE_EQ(result.getDimSize(1),2);
|
||||
}
|
||||
|
||||
TEST_F(Function1D_Test, vecnrom) {
|
||||
//1Dim
|
||||
double *data = new double[3]{1,2,-3};
|
||||
auto matrix = Aurora::Matrix::fromRawData(data, 3);
|
||||
auto result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],6);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],3.74166);
|
||||
|
||||
//2Dims
|
||||
data = new double[8]{1,2,-3,6,7,9,22.3,-8.6};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 4,2);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],12);
|
||||
EXPECT_DOUBLE_AE(result.getData()[1],46.9);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],7.0711);
|
||||
EXPECT_DOUBLE_AE(result.getData()[1],26.4811);
|
||||
|
||||
//1Dim Complex
|
||||
data = new double[6]{1,2,-3,4,5,-6};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 3,1,1,Aurora::Complex);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],15.0463);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],9.5394);
|
||||
|
||||
//2Dims Complex
|
||||
data = new double[12]{1,2,-3,4,5,-6,7,8,9,22,24,25};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 3,2,1,Aurora::Complex);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],15.0463);
|
||||
EXPECT_DOUBLE_AE(result.getData()[1],69.0553);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],9.5394);
|
||||
EXPECT_DOUBLE_AE(result.getData()[1],43.3474);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user