Add Matrix method setBlockValue
This commit is contained in:
@@ -5,11 +5,9 @@
|
||||
#include "Function1D.h"
|
||||
#include "Function2D.h"
|
||||
#include "Function3D.h"
|
||||
#include "TestUtility.h"
|
||||
|
||||
|
||||
|
||||
#define DISPLAY_MATRIX
|
||||
|
||||
class Matrix_Test : public ::testing::Test {
|
||||
protected:
|
||||
static void SetUpMatrixTester() {
|
||||
@@ -401,4 +399,32 @@ TEST_F(Matrix_Test, matrixfunction){
|
||||
EXPECT_DOUBLE_EQ(C.getData()[6], 24);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[7], 306);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[8], 460);
|
||||
|
||||
double *dataE = Aurora::random(60);
|
||||
Aurora::Matrix E = Aurora::Matrix::New(dataE, 3, 4, 5);
|
||||
Aurora::Matrix block1 = E.block(0, 1, 2);
|
||||
for (size_t i = 0; i < block1.getDimSize(2); i++)
|
||||
{
|
||||
for (size_t j = 0; j < block1.getDimSize(1); j++)
|
||||
{
|
||||
for (size_t k = 1; k < E.getDimSize(0); k++)
|
||||
{
|
||||
auto index1 = k+j*E.getDimSize(0)+i*E.getDimSize(1)*E.getDimSize(0);
|
||||
auto index2 = k-1+j*block1.getDimSize(0)+i*block1.getDimSize(1)*block1.getDimSize(0);
|
||||
EXPECT_DOUBLE_AE(E[index1],block1[index2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
E.setBlockValue(0, 1, 2,-1);
|
||||
for (size_t i = 0; i < block1.getDimSize(2); i++)
|
||||
{
|
||||
for (size_t j = 0; j < block1.getDimSize(1); j++)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user