void MatrixTest::testMatrixMatrixOperations () { Matrix<2,3,int> lMatrix; Matrix<3,2,int> rMatrix; Matrix<2,2,int> result(0); assignList(lMatrix) = 1, 2, 3, 4, 5, 6; assignList(rMatrix) = 6, 5, 4, 3, 2, 1; // Matrix matrix multiplication multiply (lMatrix, rMatrix, result); validateEquals (result(0,0), 20); validateEquals (result(0,1), 14); validateEquals (result(1,0), 56); validateEquals (result(1,1), 41); // Bitwise comparison Matrix<2,3,int> matrixA(1); Matrix<2,3,int> matrixB(2); validate (matrixA == matrixA); validate (! (matrixA == matrixB)); // Test equalsReturnIndex Matrix<2,3,double> matrix1(1); Matrix<2,3,double> matrix2(2); int i=equalsReturnIndex(matrix1,matrix2); validateEquals(i,0); }
void MatrixTest:: testTransposedMatrix () { Matrix<3,2,int> matrix; assignList(matrix) = 1, 2, 3, 4, 5, 6; typedef Matrix<3,2,int> Matrix; TransposedMatrix<Matrix>& transposed = transpose(matrix); validateEquals (transposed(0,0), 1); validateEquals (transposed(0,1), 3); validateEquals (transposed(0,2), 5); validateEquals (transposed(1,0), 2); validateEquals (transposed(1,1), 4); validateEquals (transposed(1,2), 6); validate (transpose(transposed) == matrix); }
void DynamicColumnMatrixTest::testColumnManipulations () { DynamicColumnMatrix<int> matrix(2, 3); validateEquals (matrix.size(), 6); validateEquals (matrix.rows(), 2); validateEquals (matrix.cols(), 3); assignList(matrix) = 1, 2, 3, 4, 5, 6; // Remove columns matrix.remove(2); validateEquals (matrix.size(), 4); validateEquals (matrix.rows(), 2); validateEquals (matrix.cols(), 2); matrix.remove(1); validateEquals (matrix.size(), 2); validateEquals (matrix.rows(), 2); validateEquals (matrix.cols(), 1); matrix.remove(0); validateEquals (matrix.size(), 0); validateEquals (matrix.rows(), 0); validateEquals (matrix.cols(), 0); // Add columns matrix.append (DynamicVector<int>(3,1)); validateEquals (matrix.size(), 3); validateEquals (matrix.rows(), 3); validateEquals (matrix.cols(), 1); validateEquals (matrix(0,0), 1); validateEquals (matrix(1,0), 1); validateEquals (matrix(2,0), 1); matrix.append (DynamicVector<int>(3,2)); validateEquals (matrix.size(), 6); validateEquals (matrix.rows(), 3); validateEquals (matrix.cols(), 2); validateEquals (matrix(0,0), 1); validateEquals (matrix(1,0), 1); validateEquals (matrix(2,0), 1); validateEquals (matrix(0,1), 2); validateEquals (matrix(1,1), 2); validateEquals (matrix(2,1), 2); matrix.appendFront (DynamicVector<int>(3,3)); validateEquals (matrix.size(), 9); validateEquals (matrix.rows(), 3); validateEquals (matrix.cols(), 3); validateEquals (matrix(0,0), 3); validateEquals (matrix(1,0), 3); validateEquals (matrix(2,0), 3); validateEquals (matrix(0,1), 1); validateEquals (matrix(1,1), 1); validateEquals (matrix(2,1), 1); validateEquals (matrix(0,2), 2); validateEquals (matrix(1,2), 2); validateEquals (matrix(2,2), 2); // Shift columns matrix.shiftSetFirst (DynamicVector<int>(3,4)); validateEquals (matrix.size(), 9); validateEquals (matrix.rows(), 3); validateEquals (matrix.cols(), 3); validateEquals (matrix(0,0), 4); validateEquals (matrix(1,0), 4); validateEquals (matrix(2,0), 4); validateEquals (matrix(0,1), 3); validateEquals (matrix(1,1), 3); validateEquals (matrix(2,1), 3); validateEquals (matrix(0,2), 1); validateEquals (matrix(1,2), 1); validateEquals (matrix(2,2), 1); DynamicColumnMatrix<int> matrix2; matrix2.append (matrix); validateEquals (matrix2.size(), 9); validateEquals (matrix2.rows(), 3); validateEquals (matrix2.cols(), 3); validateEquals (matrix2(0,0), 4); validateEquals (matrix2(1,0), 4); validateEquals (matrix2(2,0), 4); validateEquals (matrix2(0,1), 3); validateEquals (matrix2(1,1), 3); validateEquals (matrix2(2,1), 3); validateEquals (matrix2(0,2), 1); validateEquals (matrix2(1,2), 1); validateEquals (matrix2(2,2), 1); // Remove columns from intermediate positions matrix2.remove (1); validateEquals (matrix2.size(), 6); validateEquals (matrix2.rows(), 3); validateEquals (matrix2.cols(), 2); validateEquals (matrix2(0,0), 4); validateEquals (matrix2(1,0), 4); validateEquals (matrix2(2,0), 4); validateEquals (matrix2(0,1), 1); validateEquals (matrix2(1,1), 1); validateEquals (matrix2(2,1), 1); matrix2.remove (0); validateEquals (matrix2.size(), 3); validateEquals (matrix2.rows(), 3); validateEquals (matrix2.cols(), 1); validateEquals (matrix2(0,0), 1); validateEquals (matrix2(1,0), 1); validateEquals (matrix2(2,0), 1); matrix2.clear (); validateEquals (matrix2.size(), 0); validateEquals (matrix2.rows(), 0); validateEquals (matrix2.cols(), 0); }
void DynamicColumnMatrixTest::testBasics () { DynamicColumnMatrix<int> matrix(2, 3, 5); validateEquals (matrix.size(), 6); validateEquals (matrix.rows(), 2); validateEquals (matrix.cols(), 3); validateEquals (matrix(0,0), 5); validateEquals (matrix(0,1), 5); validateEquals (matrix(1,2), 5); assignList(matrix) = 1, 2, 3, 4, 5, 6; validateEquals (matrix(0,0), 1); validateEquals (matrix(0,1), 2); validateEquals (matrix(0,2), 3); validateEquals (matrix(1,0), 4); validateEquals (matrix(1,1), 5); validateEquals (matrix(1,2), 6); validateEquals (matrix.column(0).size(), 2); validateEquals (matrix.column(1).size(), 2); validateEquals (matrix.column(2).size(), 2); validateEquals (matrix.column(0)[0], 1); validateEquals (matrix.column(1)[0], 2); validateEquals (matrix.column(2)[1], 6); DynamicColumnMatrix<int> matrix2(matrix); validateEquals (matrix2.size(), 6); validateEquals (matrix2.rows(), 2); validateEquals (matrix2.cols(), 3); validateEquals (matrix2(0,0), 1); validateEquals (matrix2(0,1), 2); validateEquals (matrix2(0,2), 3); validateEquals (matrix2(1,0), 4); validateEquals (matrix2(1,1), 5); validateEquals (matrix2(1,2), 6); }
void peanoclaw::tests::TestCase::test3() { // @todo Add your test here validateEquals(3,3); }
void peano::kernel::regulargrid::parallel::tests::SetupPartitionerTest::test2D_12x8ForkMessages() { #ifdef Dim2 tarch::la::Vector<DIMENSIONS,int> domain; assignList(domain) = 12,9; peano::kernel::regulargrid::parallel::SetupPartitioner partitioner(domain,9); partitioner._ranks.push_back(0); partitioner._ranks.push_back(1); partitioner._ranks.push_back(2); partitioner._ranks.push_back(3); partitioner._ranks.push_back(4); partitioner._ranks.push_back(5); partitioner._ranks.push_back(6); partitioner._ranks.push_back(7); partitioner._ranks.push_back(8); tarch::la::Vector<DIMENSIONS,int> partition; tarch::la::Vector<DIMENSIONS,double> domainOffset; tarch::la::Vector<DIMENSIONS,double> h; assignList(domainOffset) = -2.0, -3.0; assignList(h) = 0.4, 0.5; assignList(partition) = 0,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message00 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 1,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message10 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 2,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message20 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 0,1; peano::kernel::regulargrid::parallel::messages::ForkMessage message01 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 1,1; peano::kernel::regulargrid::parallel::messages::ForkMessage message11 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 2,1; peano::kernel::regulargrid::parallel::messages::ForkMessage message21 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 0,2; peano::kernel::regulargrid::parallel::messages::ForkMessage message02 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 1,2; peano::kernel::regulargrid::parallel::messages::ForkMessage message12 = partitioner.getForkMessage( partition, domainOffset, h ); assignList(partition) = 2,2; peano::kernel::regulargrid::parallel::messages::ForkMessage message22 = partitioner.getForkMessage( partition, domainOffset, h ); // validateEquals( message00.getNeighbourRanks(), h ); validateEquals( message00.getH(), h ); validateEquals( message00.getNumberOfGridPoints()(0), 5 ); validateEquals( message00.getNumberOfGridPoints()(1), 4 ); validateEquals( message00.getDomainOffset()(0), domainOffset(0) + 0*h(0)); validateEquals( message00.getDomainOffset()(1), domainOffset(1) + 0*h(1)); validateEquals( message10.getH(), h ); validateEquals( message10.getNumberOfGridPoints()(0), 5 ); validateEquals( message10.getNumberOfGridPoints()(1), 4 ); validateEquals( message10.getDomainOffset()(0), domainOffset(0) + 4*h(0)); validateEquals( message10.getDomainOffset()(1), domainOffset(1) + 0*h(1)); validateEquals( message20.getH(), h ); validateEquals( message20.getNumberOfGridPoints()(0), 4 ); validateEquals( message20.getNumberOfGridPoints()(1), 4 ); validateEquals( message20.getDomainOffset()(0), domainOffset(0) + 8*h(0)); validateEquals( message20.getDomainOffset()(1), domainOffset(1) + 0*h(1)); validateEquals( message01.getH(), h ); validateEquals( message01.getNumberOfGridPoints()(0), 5 ); validateEquals( message01.getNumberOfGridPoints()(1), 4 ); validateEquals( message01.getDomainOffset()(0), domainOffset(0) + 0*h(0)); validateEquals( message01.getDomainOffset()(1), domainOffset(1) + 3*h(1)); #endif }
void peano::kernel::regulargrid::parallel::tests::SetupPartitionerTest::test2D_12x8() { #ifdef Dim2 tarch::la::Vector<DIMENSIONS,int> domain; assignList(domain) = 12,9; peano::kernel::regulargrid::parallel::SetupPartitioner partition0(domain,8); peano::kernel::regulargrid::parallel::SetupPartitioner partition1(domain,9); peano::kernel::regulargrid::parallel::SetupPartitioner partition2(domain,10); peano::kernel::regulargrid::parallel::SetupPartitioner partition3(domain,11); validateEquals( partition0.getParallelTopology()(0), 4 ); validateEquals( partition0.getParallelTopology()(1), 2 ); validateEquals( partition1.getParallelTopology()(0), 3 ); validateEquals( partition1.getParallelTopology()(1), 3 ); validateEquals( partition2.getParallelTopology()(0), 3 ); validateEquals( partition2.getParallelTopology()(1), 3 ); validateEquals( partition3.getParallelTopology()(0), 3 ); validateEquals( partition3.getParallelTopology()(1), 3 ); tarch::la::Vector<DIMENSIONS,int> expectedSize; tarch::la::Vector<DIMENSIONS,int> expectedOffset; tarch::la::Vector<DIMENSIONS,int> subdomain; assignList(expectedSize) = 4,3; assignList(subdomain) = 0,0; assignList(expectedOffset) = 0,0; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 1,0; assignList(expectedOffset) = 4,0; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 2,0; assignList(expectedSize) = 3,3; assignList(expectedOffset) = 8,0; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 0,1; assignList(expectedSize) = 4,3; assignList(expectedOffset) = 0,3; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 1,1; assignList(expectedOffset) = 4,3; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 2,1; assignList(expectedSize) = 3,3; assignList(expectedOffset) = 8,3; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 0,2; assignList(expectedSize) = 4,2; assignList(expectedOffset) = 0,6; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 1,2; assignList(expectedSize) = 4,2; assignList(expectedOffset) = 4,6; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); assignList(subdomain) = 2,2; assignList(expectedSize) = 3,2; assignList(expectedOffset) = 8,6; validateEquals( partition1.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition2.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition3.getSizeOfPartition(subdomain), expectedSize ); validateEquals( partition1.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition2.getOffsetOfPartition(subdomain), expectedOffset ); validateEquals( partition3.getOffsetOfPartition(subdomain), expectedOffset ); #endif }
void peano::kernel::regulargrid::parallel::tests::SetupPartitionerTest::test2D_400x400ForkMessages() { #ifdef Dim2 tarch::la::Vector<DIMENSIONS,int> domain; assignList(domain) = 401,401; peano::kernel::regulargrid::parallel::SetupPartitioner partitioner(domain,2); partitioner._ranks.push_back(0); partitioner._ranks.push_back(1); tarch::la::Vector<DIMENSIONS,int> partition; tarch::la::Vector<DIMENSIONS,double> domainOffset; tarch::la::Vector<DIMENSIONS,double> h; assignList(domainOffset) = 0.0, 0.0; assignList(h) = 1.0/400.0, 1.0/400.0; assignList(partition) = 0,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message00 = partitioner.getForkMessage( partition, domainOffset, h ); validateEquals( message00.getH(), h ); validateEquals( message00.getNumberOfGridPoints()(0), 201 ); validateEquals( message00.getNumberOfGridPoints()(1), 401 ); validateEquals( message00.getDomainOffset()(0), 0.0); validateEquals( message00.getDomainOffset()(1), 0.0); assignList(partition) = 1,0; peano::kernel::regulargrid::parallel::messages::ForkMessage message10 = partitioner.getForkMessage( partition, domainOffset, h ); validateEquals( message10.getH(), h ); validateEquals( message10.getNumberOfGridPoints()(0), 201 ); validateEquals( message10.getNumberOfGridPoints()(1), 401 ); validateEquals( partitioner.getOffsetOfPartition(partition)(0), 200); validateEquals( partitioner.getOffsetOfPartition(partition)(1), 0); validateEquals( message10.getDomainOffset()(1), 0.0); validateEquals( message10.getDomainOffset()(0), 0.5); validateEquals( message10.getDomainOffset()(1), 0.0); #endif }
void MatrixTest:: testAssignment () { Matrix<2,2,int> matrix(1); assignList(matrix) = 1, 2, 3, 4; validateEquals (matrix(0,0), 1); validateEquals (matrix(0,1), 2); validateEquals (matrix(1,0), 3); validateEquals (matrix(1,1), 4); DynamicMatrix<int> dynmatrix(2, 2, 2); validateEquals (dynmatrix(0,0), 2); validateEquals (dynmatrix(0,1), 2); validateEquals (dynmatrix(1,0), 2); validateEquals (dynmatrix(1,1), 2); assign(dynmatrix) = matrix; validateEquals (dynmatrix(0,0), 1); validateEquals (dynmatrix(0,1), 2); validateEquals (dynmatrix(1,0), 3); validateEquals (dynmatrix(1,1), 4); assign(dynmatrix) = 5; validateEquals (dynmatrix(0,0), 5); validateEquals (dynmatrix(0,1), 5); validateEquals (dynmatrix(1,0), 5); validateEquals (dynmatrix(1,1), 5); assign(matrix) = dynmatrix; validateEquals (matrix(0,0), 5); validateEquals (matrix(0,1), 5); validateEquals (matrix(1,0), 5); validateEquals (matrix(1,1), 5); Matrix<1,2,int> matrix2; assignList(matrix2) = 1, 2; validateEquals (matrix2(0,0), 1); validateEquals (matrix2(0,1), 2); }
void MatrixTest::testConstruction () { Matrix<1,2,int> matrix(1); validateEquals (matrix.size(), 2); validateEquals (matrix.rows(), 1); validateEquals (matrix.cols(), 2); validateEquals (matrix(0,0), 1); validateEquals (matrix(0,1), 1); Matrix<1,2,int> matrix2(matrix); validateEquals (matrix(0,0), 1); validateEquals (matrix(0,1), 1); DynamicMatrix<int> dynmatrix(1, 2, 1); validateEquals (dynmatrix.size(), 2); validateEquals (dynmatrix.rows(), 1); validateEquals (dynmatrix.cols(), 2); validateEquals (dynmatrix(0,0), 1); validateEquals (dynmatrix(0,1), 1); DynamicMatrix<int> dynmatrix2(dynmatrix); validateEquals (dynmatrix(0,0), 1); validateEquals (dynmatrix(0,1), 1); DynamicColumnMatrix<int> dyncolmatrix(1, 2, 1); validateEquals (dyncolmatrix.size(), 2); validateEquals (dyncolmatrix.rows(), 1); validateEquals (dyncolmatrix.cols(), 2); validateEquals (dyncolmatrix(0,0), 1); validateEquals (dyncolmatrix(0,1), 1); }
void MatrixTest::testMatrixOperations () { // Test computing determinant Matrix<3,3,int> matrix; assignList(matrix) = 1, 2, 3, 4, 5, 6, 7, 8, 9; validateEquals (0, det3x3(matrix)); assignList(matrix) = -1, 2, 3, 4, -5, 2, -2, 3, 1; validateEquals (1, det3x3(matrix)); // computed by octave // Test streaming Matrix<2,2,int> matrix2; assignList(matrix2) = 1, 2, 3, 4; std::ostringstream stream; stream << matrix2; validateEquals (stream.str(), std::string("1, 2; 3, 4")); // Test matrix multiply scalar matrix2 =matrix2*2; validateEquals(matrix2(0,0),2); validateEquals(matrix2(0,1),4); validateEquals(matrix2(1,0),6); validateEquals(matrix2(1,1),8); // Test matrix add matrix // Matrix<2,2,int> matrix3; // assignList(matrix3) = 1, 2, 3, 4; // matrix3=matrix3+matrix2; // validateEquals(matrix3(0,0),3); // validateEquals(matrix3(0,1),6); // validateEquals(matrix3(1,0),9); // validateEquals(matrix3(1,1),12); // Test matrix square Matrix<2,2,double> matrix4; assignList(matrix4) = 4.0, 9.0, 16.0, 25.0; matrix4=sqrt(matrix4); validateEquals(matrix4(0,0),2.0); validateEquals(matrix4(0,1),3.0); validateEquals(matrix4(1,0),4.0); validateEquals(matrix4(1,1),5.0); }
void rotatingheatsource::expliciteuler::tests::TestCase::test3() { // @todo Add your test here validateEquals(3,3); }
void peano::applications::poisson::multigrid::tests::MultigridBatchJobTest::test3() { // @todo Add your test here validateEquals(3,3); }