diff --git a/AMDiS/test/Meshtest/src/Meshtest.cpp b/AMDiS/test/Meshtest/src/Meshtest.cpp index 4f8811b40a157ed65816279270ca0db706b96a0a..afc68390c9d9f7079c30f19028b7a618eb0e336b 100644 --- a/AMDiS/test/Meshtest/src/Meshtest.cpp +++ b/AMDiS/test/Meshtest/src/Meshtest.cpp @@ -3,9 +3,33 @@ #include "ProblemScal.h" #include <sstream> +#include <string> +#include <stdexcept> + +typedef std::vector< std::string > StringVector ; + +template< typename Test > +void require(Test l, Test r, int line, std::string message) { + if(l != r) { + std::stringstream ss; + ss<< "Condition for "<<message<<" is wrong\n"; + ss<< "l: "<<l<<"\n"<<"r: "<<r<<"\n"; + throw std::runtime_error(ss.str()); + } +} + +template< typename Test > +void require(Test l, Test r, std::string message, StringVector& res) { + if(l != r) { + std::stringstream ss; + ss<< "Condition for "<<message<<" is wrong\n"; + ss<< "l: "<<l<<"\n"<<"r: "<<r<<"\n"; + res.push_back(ss.str()); + } +} using namespace AMDiS; -void testMesh(int dim) { +void testMesh(int dim, int nrEls, int nrVert , StringVector& res) { std::stringstream ss; ss<< dim; Parameters::addGlobalParameter(0, "dimension of world", ss.str()); @@ -15,6 +39,11 @@ void testMesh(int dim) { ln_dof[VERTEX]=1; mesh.createDOFAdmin("vertex_dofs", ln_dof); mesh.initialize(); + require(mesh.getDim(), dim, __LINE__, "mesh dimension"); + std::stringstream ss2; + ss2<<"\ncurrent dimension: "<<dim<<"\n"; + require(mesh.getNumberOfElements() , nrEls, ss2.str() + "number of elements",res); + require(mesh.getNumberOfVertices(), nrVert, ss2.str() + "number of vertices",res); } int main(int argc, char** argv) { @@ -23,10 +52,17 @@ int main(int argc, char** argv) { Parameters::addGlobalParameter(0,"testMesh2->macro file name","macro/macro.stand.2d"); Parameters::addGlobalParameter(0,"testMesh3->macro file name","macro/macro.stand.3d"); - testMesh(1); - testMesh(2); - testMesh(3); + StringVector errorMessages; + testMesh(1,1,2, errorMessages); + testMesh(2,4,5, errorMessages); + testMesh(3,6,8, errorMessages); - return 0; + if(errorMessages.size() > 0) + std::cout<<" got errors: \n"; + for(StringVector::size_type i=0; i< errorMessages.size();++i) + std::cout<<errorMessages[i]<<"\n"; + if (errorMessages.size() != 0) + return 1; + return 0; } diff --git a/AMDiS/test/demoimpl/src/ParametricProject.hh b/AMDiS/test/demoimpl/src/ParametricProject.hh index 75b1e5ad6c1b520e56f15b676a8f9e36c8f97450..c78773e2aa4d78610ef09f15d60172556b69d328 100644 --- a/AMDiS/test/demoimpl/src/ParametricProject.hh +++ b/AMDiS/test/demoimpl/src/ParametricProject.hh @@ -54,7 +54,7 @@ public: void buildBeforeCoarsen(AdaptInfo *adaptInfo, Flag flag) { FUNCNAME("ParametricSphere::buildAfterCoarsen()"); MSG("calculation of parametric coordinates\n"); - int preDOFs = this->getFeSpace()->getAdmin()->getNumberOfPreDOFs(VERTEX); + int preDOFs = this->getFeSpace()->getAdmin()->getNumberOfPreDofs(VERTEX); int dim = this->getMesh()->getDim(); int dow = Global::getGeo(WORLD); WorldVector<double> vertexCoords;