X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FTest%2FSauvLoaderTest.cxx;h=3a5b6d1c5846291eea3cdad97bba5794b601b5f3;hb=4634ee886bd8cf51b4dbcb0e70909892a5f3f999;hp=66fbcda6b31ce6ff23df870f4bee6636ff30c221;hpb=46b819946914fdf15215ad330f101d1bba5edc5b;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Test/SauvLoaderTest.cxx b/src/MEDLoader/Test/SauvLoaderTest.cxx index 66fbcda6b..3a5b6d1c5 100644 --- a/src/MEDLoader/Test/SauvLoaderTest.cxx +++ b/src/MEDLoader/Test/SauvLoaderTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -27,7 +27,7 @@ #include "TestInterpKernelUtils.hxx" // getResourceFile() #ifdef WIN32 -# include +#include #else # include #endif @@ -35,14 +35,14 @@ #include #include -using namespace ParaMEDMEM; +using namespace MEDCoupling; void SauvLoaderTest::testSauv2Med() { // read a file containing all types of readable piles std::string file = INTERP_TEST::getResourceFile("allPillesTest.sauv", 3); - MEDCouplingAutoRefCountObjectPtr sr=SauvReader::New(file.c_str()); - MEDCouplingAutoRefCountObjectPtr d2=sr->loadInMEDFileDS(); + MCAuto sr=SauvReader::New(file.c_str()); + MCAuto d2=sr->loadInMEDFileDS(); // write MED d2->write("allPillesTest.med",0); // check @@ -59,23 +59,23 @@ void SauvLoaderTest::testMed2SauvOnAMeshWithVoidFamily() const int nbOfNodes = 6; double coords[nbOfNodes*spaceDim] = {0,0, 1,0, 1,1, 0,1, 2,0, 2,1}; int conn[8]={0,1,2,3, 1,4,5,2}; - MEDCouplingAutoRefCountObjectPtr mesh2d=MEDCouplingUMesh::New("Mesh",spaceDim); + MCAuto mesh2d=MEDCouplingUMesh::New("Mesh",spaceDim); mesh2d->allocateCells(2); mesh2d->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,conn); mesh2d->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,conn+4); mesh2d->finishInsertingCells(); - MEDCouplingAutoRefCountObjectPtr myCoords=DataArrayDouble::New(); + MCAuto myCoords=DataArrayDouble::New(); myCoords->alloc(nbOfNodes,spaceDim); std::copy(coords,coords+nbOfNodes*spaceDim,myCoords->getPointer()); mesh2d->setCoords(myCoords); // create a MedFileUMesh - MEDCouplingAutoRefCountObjectPtr m= MEDFileUMesh::New(); + MCAuto m= MEDFileUMesh::New(); m->setMeshAtLevel(0,mesh2d); // Create families and groups - MEDCouplingAutoRefCountObjectPtr fam = DataArrayInt::New(); + MCAuto fam = DataArrayInt::New(); fam->alloc(2,1); int elemsFams[2] = {-2,-3}; std::copy(elemsFams,elemsFams+2,fam->getPointer()); @@ -102,23 +102,23 @@ void SauvLoaderTest::testMed2SauvOnAMeshWithVoidFamily() // write to SAUV const char* sauvFile = "mesh_with_void_family.sauv"; - MEDCouplingAutoRefCountObjectPtr medData = MEDFileData::New(); - MEDCouplingAutoRefCountObjectPtr medMeshes = MEDFileMeshes::New(); - MEDCouplingAutoRefCountObjectPtr sw=SauvWriter::New(); + MCAuto medData = MEDFileData::New(); + MCAuto medMeshes = MEDFileMeshes::New(); + MCAuto sw=SauvWriter::New(); medMeshes->setMeshAtPos(0, m); medData->setMeshes(medMeshes); sw->setMEDFileDS(medData); sw->write(sauvFile); // read SAUV and check groups - MEDCouplingAutoRefCountObjectPtr sr=SauvReader::New(sauvFile); - MEDCouplingAutoRefCountObjectPtr d2=sr->loadInMEDFileDS(); + MCAuto sr=SauvReader::New(sauvFile); + MCAuto d2=sr->loadInMEDFileDS(); MEDFileUMesh* m2 = static_cast( d2->getMeshes()->getMeshAtPos(0) ); - MEDCouplingAutoRefCountObjectPtr group1 = m2->getGroup(0, "Group1"); + MCAuto group1 = m2->getGroup(0, "Group1"); CPPUNIT_ASSERT_EQUAL(1,(int)group1->getNumberOfCells()); - MEDCouplingAutoRefCountObjectPtr group2 = m2->getGroup(0, "Group2"); + MCAuto group2 = m2->getGroup(0, "Group2"); CPPUNIT_ASSERT_EQUAL(1,(int)group2->getNumberOfCells()); - MEDCouplingAutoRefCountObjectPtr grptot = m2->getGroup(0, "Grouptot"); + MCAuto grptot = m2->getGroup(0, "Grouptot"); CPPUNIT_ASSERT_EQUAL(2,(int)grptot->getNumberOfCells()); } @@ -126,22 +126,22 @@ void SauvLoaderTest::testSauv2MedOnA3SubsField() { // read SAUV std::string sauvFile = INTERP_TEST::getResourceFile("portico_3subs.sauv", 3); - MEDCouplingAutoRefCountObjectPtr sr=SauvReader::New(sauvFile.c_str()); - MEDCouplingAutoRefCountObjectPtr d2=sr->loadInMEDFileDS(); + MCAuto sr=SauvReader::New(sauvFile.c_str()); + MCAuto d2=sr->loadInMEDFileDS(); // check mesh MEDFileUMesh* m2 = static_cast(d2->getMeshes()->getMeshAtPos(0)); - MEDCouplingAutoRefCountObjectPtr mesh1d = m2->getMeshAtLevel(0); - MEDCouplingAutoRefCountObjectPtr length1dField = mesh1d->getMeasureField(0); + MCAuto mesh1d = m2->getMeshAtLevel(0); + MCAuto length1dField = mesh1d->getMeasureField(0); std::cout << "Length of 1d elements: " << length1dField->accumulate(0) << std::endl; CPPUNIT_ASSERT_DOUBLES_EQUAL(3, length1dField->accumulate(0), 1e-12); // check field - MEDCouplingAutoRefCountObjectPtr field = + MCAuto field = dynamic_cast(d2->getFields()->getFieldWithName("CHAM1D")); std::cout << "Number of components in field: " << field->getInfo().size() << std::endl; CPPUNIT_ASSERT_EQUAL(6,(int)field->getInfo().size()); std::vector< std::pair > timesteps = field->getIterations(); - MEDCouplingAutoRefCountObjectPtr field1d = + MCAuto field1d = field->getFieldOnMeshAtLevel(ON_GAUSS_NE, timesteps[0].first, timesteps[0].second, 0, m2); // Check first component of the field @@ -170,11 +170,11 @@ void SauvLoaderTest::testMed2Sauv() { // read pointe.med std::string file = INTERP_TEST::getResourceFile("pointe.med", 3); - MEDCouplingAutoRefCountObjectPtr pointeMed=MEDFileData::New(file.c_str()); + MCAuto pointeMed=MEDFileData::New(file.c_str()); // add 3 faces to pointeMed MEDFileUMesh* pointeMedMesh = static_cast(pointeMed->getMeshes()->getMeshAtPos(0)); - MEDCouplingAutoRefCountObjectPtr pointeM1D = MEDCouplingUMesh::New(); + MCAuto pointeM1D = MEDCouplingUMesh::New(); DataArrayDouble *coords = pointeMedMesh->getCoords(); pointeM1D->setCoords( coords ); pointeM1D->setMeshDimension( 2 ); @@ -191,11 +191,11 @@ void SauvLoaderTest::testMed2Sauv() pointeMed->getMeshes()->setMeshAtPos( 0, pointeMedMesh ); // add a field on 2 faces to pointeMed - MEDCouplingAutoRefCountObjectPtr ff1=MEDFileFieldMultiTS::New(); - MEDCouplingAutoRefCountObjectPtr f1=MEDCouplingFieldDouble::New(ON_GAUSS_NE,ONE_TIME); + MCAuto ff1=MEDFileFieldMultiTS::New(); + MCAuto f1=MEDCouplingFieldDouble::New(ON_GAUSS_NE,ONE_TIME); f1->setMesh( pointeM1D ); f1->setName("Field on 2 faces"); - MEDCouplingAutoRefCountObjectPtr d=DataArrayDouble::New(); + MCAuto d=DataArrayDouble::New(); d->alloc(3+4,2); d->setInfoOnComponent(0,"sigX [MPa]"); d->setInfoOnComponent(1,"sigY [GPa]"); @@ -205,7 +205,7 @@ void SauvLoaderTest::testMed2Sauv() }; std::copy(vals,vals+d->getNbOfElems(),d->getPointer()); f1->setArray(d); - MEDCouplingAutoRefCountObjectPtr da=DataArrayInt::New(); + MCAuto da=DataArrayInt::New(); int ids[] = { 0,2 @@ -220,7 +220,7 @@ void SauvLoaderTest::testMed2Sauv() MEDFileFields* pointeFields = pointeMed->getFields(); for ( int i = 0; i < pointeFields->getNumberOfFields(); ++i ) { - MEDCouplingAutoRefCountObjectPtr ts = pointeFields->getFieldAtPos(i); + MCAuto ts = pointeFields->getFieldAtPos(i); if ( std::string("fieldnodeint") == ts->getName()) { pointeFields->destroyFieldAtPos( i ); @@ -229,13 +229,13 @@ void SauvLoaderTest::testMed2Sauv() } // write pointeMed to SAUV const char* sauvFile = "pointe.sauv"; - MEDCouplingAutoRefCountObjectPtr sw=SauvWriter::New(); + MCAuto sw=SauvWriter::New(); sw->setMEDFileDS(pointeMed); sw->write(sauvFile); // read SAUV and check - MEDCouplingAutoRefCountObjectPtr sr=SauvReader::New(sauvFile); - MEDCouplingAutoRefCountObjectPtr d2=sr->loadInMEDFileDS(); + MCAuto sr=SauvReader::New(sauvFile); + MCAuto d2=sr->loadInMEDFileDS(); CPPUNIT_ASSERT_EQUAL(1,d2->getNumberOfMeshes()); CPPUNIT_ASSERT_EQUAL(4,d2->getNumberOfFields()); MEDFileUMesh * m = static_cast( d2->getMeshes()->getMeshAtPos(0) ); @@ -250,25 +250,25 @@ void SauvLoaderTest::testMed2Sauv() CPPUNIT_ASSERT( std::find(groups.begin(),groups.end(),"groupe5") != groups.end() ); CPPUNIT_ASSERT( std::find(groups.begin(),groups.end(),"maa1") != groups.end() ); CPPUNIT_ASSERT_EQUAL(16,m->getSizeAtLevel(0)); - MEDCouplingAutoRefCountObjectPtr um0 = m->getGenMeshAtLevel(0); + MCAuto um0 = m->getMeshAtLevel(0); CPPUNIT_ASSERT_EQUAL(12, um0->getNumberOfCellsWithType( INTERP_KERNEL::NORM_TETRA4 )); CPPUNIT_ASSERT_EQUAL(2, um0->getNumberOfCellsWithType( INTERP_KERNEL::NORM_PYRA5 )); CPPUNIT_ASSERT_EQUAL(2, um0->getNumberOfCellsWithType( INTERP_KERNEL::NORM_HEXA8 )); - MEDCouplingAutoRefCountObjectPtr um1 = m->getGenMeshAtLevel(-1); + MCAuto um1 = m->getMeshAtLevel(-1); CPPUNIT_ASSERT_EQUAL(2, um1->getNumberOfCellsWithType( INTERP_KERNEL::NORM_TRI3 )); - MEDCouplingAutoRefCountObjectPtr pointeUM0 = - static_cast( pointeMedMesh->getGenMeshAtLevel(0)); + MCAuto pointeUM0 = + static_cast( pointeMedMesh->getMeshAtLevel(0)); DataArrayDouble *coo = m->getCoords(); DataArrayDouble *pointeCoo = pointeMedMesh->getCoords(); CPPUNIT_ASSERT(coo->isEqualWithoutConsideringStr(*pointeCoo,1e-12)); - MEDCouplingAutoRefCountObjectPtr vol = um0->getMeasureField(0); - MEDCouplingAutoRefCountObjectPtr pointeVol = pointeUM0->getMeasureField(0); + MCAuto vol = um0->getMeasureField(0); + MCAuto pointeVol = pointeUM0->getMeasureField(0); CPPUNIT_ASSERT_DOUBLES_EQUAL( vol->accumulate(0), pointeVol->accumulate(0),1e-12); // check fields // fieldnodedouble - MEDCouplingAutoRefCountObjectPtr fieldnodedoubleTS1 = + MCAuto fieldnodedoubleTS1 = dynamic_cast(pointeMed->getFields()->getFieldWithName("fieldnodedouble")); - MEDCouplingAutoRefCountObjectPtr fieldnodedoubleTS2 = + MCAuto fieldnodedoubleTS2 = dynamic_cast(d2->getFields()->getFieldWithName("fieldnodedouble")); CPPUNIT_ASSERT_EQUAL( fieldnodedoubleTS1->getInfo().size(), fieldnodedoubleTS2->getInfo().size()); for ( size_t i = 0; i < fieldnodedoubleTS1->getInfo().size(); ++i ) @@ -278,16 +278,16 @@ void SauvLoaderTest::testMed2Sauv() std::vector< std::pair > io2 = fieldnodedoubleTS2->getIterations(); for ( int i =0; i < fieldnodedoubleTS1->getNumberOfTS(); ++i ) { - MEDCouplingAutoRefCountObjectPtr fnd1 = + MCAuto fnd1 = fieldnodedoubleTS1->getFieldOnMeshAtLevel(ON_NODES, io1[i].first,io1[i].second,pointeUM0); - MEDCouplingAutoRefCountObjectPtr fnd2 = + MCAuto fnd2 = fieldnodedoubleTS2->getFieldOnMeshAtLevel(ON_NODES, io2[i].first,io2[i].second,um0); CPPUNIT_ASSERT( fnd1->getArray()->isEqual( *fnd2->getArray(), 1e-12 )); } // fieldcelldoublevector - MEDCouplingAutoRefCountObjectPtr fieldcelldoublevectorTS1 = + MCAuto fieldcelldoublevectorTS1 = dynamic_cast(pointeMed->getFields()->getFieldWithName("fieldcelldoublevector")); - MEDCouplingAutoRefCountObjectPtr fieldcelldoublevectorTS2 = + MCAuto fieldcelldoublevectorTS2 = dynamic_cast(d2->getFields()->getFieldWithName("fieldcelldoublevector")); CPPUNIT_ASSERT_EQUAL( fieldcelldoublevectorTS1->getInfo().size(), fieldcelldoublevectorTS2->getInfo().size()); for ( size_t i = 0; i < fieldcelldoublevectorTS1->getInfo().size(); ++i ) @@ -297,19 +297,19 @@ void SauvLoaderTest::testMed2Sauv() io2 = fieldcelldoublevectorTS2->getIterations(); for ( int i =0; i < fieldcelldoublevectorTS1->getNumberOfTS(); ++i ) { - MEDCouplingAutoRefCountObjectPtr fnd1 = + MCAuto fnd1 = fieldcelldoublevectorTS1->getFieldOnMeshAtLevel(ON_CELLS, io1[i].first,io1[i].second,pointeUM0); - MEDCouplingAutoRefCountObjectPtr fnd2 = + MCAuto fnd2 = fieldcelldoublevectorTS2->getFieldOnMeshAtLevel(ON_CELLS, io2[i].first,io2[i].second,um0); CPPUNIT_ASSERT_DOUBLES_EQUAL( fnd1->accumulate(0), fnd2->accumulate(0), 1e-12 ); CPPUNIT_ASSERT_DOUBLES_EQUAL( fnd1->accumulate(1), fnd2->accumulate(1), 1e-12 ); CPPUNIT_ASSERT_DOUBLES_EQUAL( fnd1->accumulate(2), fnd2->accumulate(2), 1e-12 ); } // "Field on 2 faces" - MEDCouplingAutoRefCountObjectPtr fieldOnFaces = + MCAuto fieldOnFaces = dynamic_cast(d2->getFields()->getFieldWithName(f1->getName().c_str())); io1 = fieldOnFaces->getIterations(); - MEDCouplingAutoRefCountObjectPtr fof = + MCAuto fof = fieldOnFaces->getFieldOnMeshAtLevel(f1->getTypeOfField(),io1[0].first,io1[0].second,um1); CPPUNIT_ASSERT( d->isEqual( *fof->getArray(), 1e-12 )); }