Exemple #1
0
// =================================================================================================

TEST_CASE("cppmat::tiny::array", "matrix.h")
{

// =================================================================================================
// arithmetic
// =================================================================================================

SECTION( "array += array" )
{
  MatD a = MatD::Random(M,N);
  MatD b = MatD::Random(M,N);

  Arr A = Arr::Copy(a.data(), a.data()+a.size());
  Arr B = Arr::Copy(b.data(), b.data()+b.size());

  for ( size_t i = 0 ; i < M ; ++i )
    for ( size_t j = 0 ; j < N ; ++j )
      a(i,j) += b(i,j);

  A += B;

  Equal(A, a);
}

// -------------------------------------------------------------------------------------------------

SECTION( "array -= array" )
{
// =================================================================================================

TEST_CASE("cppmat::tiny::diagonal::matrix", "matrix.h")
{

// =================================================================================================
// arithmetic
// =================================================================================================

SECTION( "matrix += matrix" )
{
  MatD a = makeDiagonal(MatD::Random(M,N));
  MatD b = makeDiagonal(MatD::Random(M,N));

  dMat A = dMat::CopyDense(a.data(), a.data()+a.size());
  dMat B = dMat::CopyDense(b.data(), b.data()+b.size());

  for ( size_t i = 0 ; i < M ; ++i )
    for ( size_t j = 0 ; j < N ; ++j )
      a(i,j) += b(i,j);

  A += B;

  Equal(A, a);
}

// -------------------------------------------------------------------------------------------------

SECTION( "matrix -= matrix" )
{
// =================================================================================================

TEST_CASE("cppmat::symmetric::matrix", "matrix.h")
{

// =================================================================================================
// arithmetic
// =================================================================================================

SECTION( "matrix += matrix" )
{
  MatD a = makeSymmetric(MatD::Random(M,N));
  MatD b = makeSymmetric(MatD::Random(M,N));

  sMat A = sMat::CopyDense(M, N, a.data(), a.data()+a.size());
  sMat B = sMat::CopyDense(M, N, b.data(), b.data()+b.size());

  for ( size_t i = 0 ; i < M ; ++i )
    for ( size_t j = 0 ; j < N ; ++j )
      a(i,j) += b(i,j);

  A += B;

  Equal(A, a);
}

// -------------------------------------------------------------------------------------------------

SECTION( "matrix -= matrix" )
{