Add setBlock method to Matrix.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user