Add setBlock method to Matrix.

This commit is contained in:
kradchen
2023-05-29 14:28:23 +08:00
parent ce91b7a868
commit eb98e532b9
3 changed files with 148 additions and 8 deletions

View File

@@ -422,9 +422,52 @@ TEST_F(Matrix_Test, matrixfunction){
{
for (size_t k = 1; k < E.getDimSize(0); k++)
{
auto index1 = k+j*E.getDimSize(0)+i*E.getDimSize(1)*E.getDimSize(0);
EXPECT_DOUBLE_AE(E[index1],-1);
EXPECT_DOUBLE_AE(E(k,i,j).toMatrix().getScalar(),-1);
}
}
}
auto z = Aurora::zeros(1,4,5);
EXPECT_TRUE(E.setBlock(0, 0, 0,z));
for (size_t i = 0; i < 4; i++)
{
for (size_t j = 0; j < 5; j++)
{
EXPECT_DOUBLE_AE(E(0,i,j).toMatrix().getScalar(), 0.0);
}
}
auto z2 = Aurora::zeros(3,2,5);
EXPECT_FALSE(E.setBlock(1, 1, 2,z));
EXPECT_TRUE(E.setBlock(1, 1, 2,z2));
for (size_t j = 0; j < 5; j++)
{
for (size_t i = 1; i < 3; i++)
{
for (size_t k = 0; k < 3; k++)
{
EXPECT_DOUBLE_AE(E(k,i,j).toMatrix().getScalar(), 0.0);
}
}
}
auto o2 = Aurora::ones(3,4,2);
EXPECT_FALSE(E.setBlock(2, 1, 2,z));
EXPECT_FALSE(E.setBlock(2, 1, 2,z2));
EXPECT_TRUE(E.setBlock(2, 1, 2,o2));
for (size_t j = 1; j < 3; j++)
{
for (size_t i = 1; i < 3; i++)
{
for (size_t k = 0; k < 3; k++)
{
EXPECT_DOUBLE_AE(E(k,i,j).toMatrix().getScalar(), 1.0);
}
}
}
auto ZZ = Aurora::zeros(1,20);
auto OO = Aurora::ones(1,10);
EXPECT_TRUE(ZZ.setBlock(1, 10, 19, OO));
for (size_t i = 0; i < ZZ.getDataSize(); i++)
{
EXPECT_DOUBLE_AE(ZZ[i], i>9?1.0:0.0);
}
}