Add min and max to Function2D.

This commit is contained in:
Krad
2023-04-23 16:02:08 +08:00
parent c0e413e80c
commit 4c08268887
3 changed files with 212 additions and 0 deletions

View File

@@ -72,6 +72,65 @@ TEST_F(Function2D_Test, std){
}
TEST_F(Function2D_Test, min) {
double *dataA = new double[3]{1, 2, 3};
double *dataB = new double[9]{2, 3, 3, 2, 2, 1, 3, 3, 3};
double *dataC = new double[1]{1.5};
auto A = Aurora::Matrix::fromRawData(dataA, 3, 1);
auto B = Aurora::Matrix::fromRawData(dataB, 3, 3);
auto C = Aurora::Matrix::fromRawData(dataC, 1);
auto D = Aurora::Matrix::copyFromRawData(dataA, 1, 3);
Aurora::Matrix ret = Aurora::min(B);
EXPECT_EQ(1, ret.getDimSize(0));
EXPECT_EQ(3, ret.getDimSize(1));
EXPECT_DOUBLE_EQ(2, ret.getData()[0]);
EXPECT_DOUBLE_EQ(1, ret.getData()[1]);
EXPECT_DOUBLE_EQ(3, ret.getData()[2]);
ret = Aurora::min(B, Aurora::All);
EXPECT_DOUBLE_EQ(1, ret.getDataSize());
EXPECT_DOUBLE_EQ(1, ret.getData()[0]);
ret = Aurora::min(B, Aurora::Row);
EXPECT_DOUBLE_EQ(3, ret.getDataSize());
EXPECT_EQ(3, ret.getDimSize(0));
EXPECT_EQ(1, ret.getDimSize(1));
EXPECT_DOUBLE_EQ(2, ret.getData()[0]);
EXPECT_DOUBLE_EQ(2, ret.getData()[1]);
EXPECT_DOUBLE_EQ(1, ret.getData()[2]);
ret = Aurora::min(A, C);
EXPECT_DOUBLE_EQ(3, ret.getDataSize());
EXPECT_DOUBLE_EQ(1, ret.getData()[0]);
EXPECT_DOUBLE_EQ(1.5, ret.getData()[1]);
EXPECT_DOUBLE_EQ(1.5, ret.getData()[2]);
ret = Aurora::min(B,D);
EXPECT_DOUBLE_EQ(9, ret.getDataSize());
EXPECT_DOUBLE_EQ(1, ret.getData()[0]);
EXPECT_DOUBLE_EQ(1, ret.getData()[1]);
EXPECT_DOUBLE_EQ(1, ret.getData()[2]);
}
TEST_F(Function2D_Test, max) {
double *dataA = new double[3]{1, 2, 3};
double *dataB = new double[9]{2, 3, 3, 2, 2, 1, 3, 3, 3};
auto A = Aurora::Matrix::fromRawData(dataA, 3, 1);
auto B = Aurora::Matrix::fromRawData(dataB, 3, 3);
Aurora::Matrix ret = Aurora::max(B);
EXPECT_EQ(1, ret.getDimSize(0));
EXPECT_EQ(3, ret.getDimSize(1));
EXPECT_DOUBLE_EQ(3, ret.getData()[0]);
EXPECT_DOUBLE_EQ(2, ret.getData()[1]);
EXPECT_DOUBLE_EQ(3, ret.getData()[2]);
ret = Aurora::max(B, Aurora::All);
EXPECT_DOUBLE_EQ(1, ret.getDataSize());
EXPECT_DOUBLE_EQ(3, ret.getData()[0]);
ret = Aurora::max(B, Aurora::Row);
EXPECT_DOUBLE_EQ(3, ret.getDataSize());
EXPECT_EQ(3, ret.getDimSize(0));
EXPECT_EQ(1, ret.getDimSize(1));
EXPECT_DOUBLE_EQ(3, ret.getData()[0]);
EXPECT_DOUBLE_EQ(3, ret.getData()[1]);
EXPECT_DOUBLE_EQ(3, ret.getData()[2]);
}
TEST_F(Function2D_Test, fftAndComplexAndIfft){
// double input[10]{1,1,0,2,2,0,1,1,0,2};
// std::complex<double>* complexInput = Aurora::complex(10,input);