Add mean and mean's unit test.
This commit is contained in:
@@ -74,7 +74,7 @@ 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 *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);
|
||||
@@ -84,18 +84,18 @@ TEST_F(Function2D_Test, min) {
|
||||
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(-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]);
|
||||
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]);
|
||||
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]);
|
||||
@@ -132,24 +132,104 @@ TEST_F(Function2D_Test, max) {
|
||||
}
|
||||
|
||||
TEST_F(Function2D_Test, sum) {
|
||||
double *dataB = new double[9]{2, 3, 3, 2, 2, 1, 3, 3, 3};
|
||||
double *dataB = new double[9]{2, 3, 3, 2, 2, 1, 3, 3, -3};
|
||||
auto B = Aurora::Matrix::fromRawData(dataB, 3, 3);
|
||||
Aurora::Matrix ret = Aurora::sum(B);
|
||||
EXPECT_EQ(1, ret.getDimSize(0));
|
||||
EXPECT_EQ(3, ret.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(8, ret.getData()[0]);
|
||||
EXPECT_DOUBLE_EQ(5, ret.getData()[1]);
|
||||
EXPECT_DOUBLE_EQ(9, ret.getData()[2]);
|
||||
EXPECT_DOUBLE_EQ(3, ret.getData()[2]);
|
||||
ret = Aurora::sum(B, Aurora::All);
|
||||
EXPECT_DOUBLE_EQ(1, ret.getDataSize());
|
||||
EXPECT_DOUBLE_EQ(22, ret.getData()[0]);
|
||||
EXPECT_DOUBLE_EQ(16, ret.getData()[0]);
|
||||
ret = Aurora::sum(B, Aurora::Row);
|
||||
EXPECT_DOUBLE_EQ(3, ret.getDataSize());
|
||||
EXPECT_EQ(3, ret.getDimSize(0));
|
||||
EXPECT_EQ(1, ret.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(7, ret.getData()[0]);
|
||||
EXPECT_DOUBLE_EQ(8, ret.getData()[1]);
|
||||
EXPECT_DOUBLE_EQ(7, ret.getData()[2]);
|
||||
EXPECT_DOUBLE_EQ(1, ret.getData()[2]);
|
||||
}
|
||||
|
||||
TEST_F(Function2D_Test, mean) {
|
||||
{
|
||||
double *dataB = new double[16]{1.1, 2.6, 3.8, 6.2,
|
||||
4.3, 5.7, 6.9, 10.6,
|
||||
7.1, 8.3, 9.7, 11.2,
|
||||
17.8, 13.3, 26.5, -7.7};
|
||||
auto B = Aurora::Matrix::fromRawData(dataB, 4, 4);
|
||||
auto r = Aurora::mean(B, Aurora::All);
|
||||
EXPECT_EQ(1, r.getDimSize(0));
|
||||
EXPECT_EQ(1, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(7.9625, fourDecimalRound(r.getData()[0]));
|
||||
|
||||
r = Aurora::mean(B);
|
||||
EXPECT_EQ(1, r.getDimSize(0));
|
||||
EXPECT_EQ(4, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(3.4250, fourDecimalRound(r.getData()[0]));
|
||||
EXPECT_DOUBLE_EQ(6.8750, fourDecimalRound(r.getData()[1]));
|
||||
EXPECT_DOUBLE_EQ(9.0750, fourDecimalRound(r.getData()[2]));
|
||||
EXPECT_DOUBLE_EQ(12.4750, fourDecimalRound(r.getData()[3]));
|
||||
|
||||
r = Aurora::mean(B, Aurora::Row);
|
||||
EXPECT_EQ(4, r.getDimSize(0));
|
||||
EXPECT_EQ(1, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(7.5750, fourDecimalRound(r.getData()[0]));
|
||||
EXPECT_DOUBLE_EQ(7.4750, fourDecimalRound(r.getData()[1]));
|
||||
EXPECT_DOUBLE_EQ(11.7250, fourDecimalRound(r.getData()[2]));
|
||||
EXPECT_DOUBLE_EQ(5.0750, fourDecimalRound(r.getData()[3]));
|
||||
}
|
||||
//with nan
|
||||
{
|
||||
double tnan = std::nan("");
|
||||
double *dataB = new double[16]{1.1, 2.6, 3.8, 6.2,
|
||||
4.3, 5.7, 6.9, 10.6,
|
||||
7.1, 8.3, 9.7, 11.2,
|
||||
17.8, 13.3,tnan , -7.7};
|
||||
auto B = Aurora::Matrix::fromRawData(dataB, 4, 4);
|
||||
auto r = Aurora::mean(B, Aurora::All);
|
||||
EXPECT_EQ(1, r.getDimSize(0));
|
||||
EXPECT_EQ(1, r.getDimSize(1));
|
||||
EXPECT_TRUE(std::isnan(r.getData()[0]));
|
||||
|
||||
r = Aurora::mean(B);
|
||||
EXPECT_EQ(1, r.getDimSize(0));
|
||||
EXPECT_EQ(4, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(3.4250, fourDecimalRound(r.getData()[0]));
|
||||
EXPECT_DOUBLE_EQ(6.8750, fourDecimalRound(r.getData()[1]));
|
||||
EXPECT_DOUBLE_EQ(9.0750, fourDecimalRound(r.getData()[2]));
|
||||
EXPECT_TRUE(std::isnan(r.getData()[3]));
|
||||
|
||||
r = Aurora::mean(B, Aurora::Row);
|
||||
EXPECT_EQ(4, r.getDimSize(0));
|
||||
EXPECT_EQ(1, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(7.5750, fourDecimalRound(r.getData()[0]));
|
||||
EXPECT_DOUBLE_EQ(7.4750, fourDecimalRound(r.getData()[1]));
|
||||
EXPECT_TRUE(std::isnan(r.getData()[2]));
|
||||
EXPECT_DOUBLE_EQ(5.0750, fourDecimalRound(r.getData()[3]));
|
||||
|
||||
r = Aurora::mean(B, Aurora::All,false);
|
||||
EXPECT_EQ(1, r.getDimSize(0));
|
||||
EXPECT_EQ(1, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(6.7267, fourDecimalRound(r.getData()[0]));
|
||||
|
||||
r = Aurora::mean(B, Aurora::Column, false);
|
||||
EXPECT_EQ(1, r.getDimSize(0));
|
||||
EXPECT_EQ(4, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(3.4250, fourDecimalRound(r.getData()[0]));
|
||||
EXPECT_DOUBLE_EQ(6.8750, fourDecimalRound(r.getData()[1]));
|
||||
EXPECT_DOUBLE_EQ(9.0750, fourDecimalRound(r.getData()[2]));
|
||||
EXPECT_DOUBLE_EQ(7.8, fourDecimalRound(r.getData()[3]));
|
||||
|
||||
r = Aurora::mean(B, Aurora::Row, false);
|
||||
EXPECT_EQ(4, r.getDimSize(0));
|
||||
EXPECT_EQ(1, r.getDimSize(1));
|
||||
EXPECT_DOUBLE_EQ(7.5750, fourDecimalRound(r.getData()[0]));
|
||||
EXPECT_DOUBLE_EQ(7.4750, fourDecimalRound(r.getData()[1]));
|
||||
EXPECT_DOUBLE_EQ(6.8, fourDecimalRound(r.getData()[2]));
|
||||
EXPECT_DOUBLE_EQ(5.0750, fourDecimalRound(r.getData()[3]));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(Function2D_Test, fftAndComplexAndIfft){
|
||||
|
||||
Reference in New Issue
Block a user