Add norm and norm's unittest.

This commit is contained in:
sunwen
2023-04-25 11:24:24 +08:00
parent bbd2320c56
commit c54471ef6a
3 changed files with 74 additions and 0 deletions

View File

@@ -288,3 +288,23 @@ TEST_F(Function1D_Test, conj) {
EXPECT_DOUBLE_AE(result.getData()[5],2);
EXPECT_DOUBLE_AE((double)result.getValueType(), (double)Aurora::Normal);
}
TEST_F(Function1D_Test, norm) {
double *data = new double[3]{1,2,-3};
auto matrix = Aurora::Matrix::fromRawData(data, 3);
auto result = Aurora::norm(matrix,Aurora::NormMethod::Norm1);
EXPECT_DOUBLE_AE(result,6);
result = Aurora::norm(matrix,Aurora::NormMethod::Norm2);
EXPECT_DOUBLE_AE(result,3.74166);
result = Aurora::norm(matrix,Aurora::NormMethod::NormF);
EXPECT_DOUBLE_AE(result,3.74166);
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);
EXPECT_DOUBLE_AE(result,46.9);
result = Aurora::norm(matrix,Aurora::NormMethod::Norm2);
EXPECT_DOUBLE_AE(result,26.7284);
result = Aurora::norm(matrix,Aurora::NormMethod::NormF);
EXPECT_DOUBLE_AE(result,27.4089);
}