X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FTest%2FMEDLoaderTest.cxx;h=138b35cd443667581774af5e5f5eb3e8ec01802f;hb=378cb2ebe08f8f4543ef632b2bd5f77fe180f978;hp=0d5516cbc13bb9d209e880a4158806630437fb9c;hpb=f1a947b32a36d8dc8e3079b25305bb50e8cb59a0;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Test/MEDLoaderTest.cxx b/src/MEDLoader/Test/MEDLoaderTest.cxx old mode 100644 new mode 100755 index 0d5516cbc..138b35cd4 --- a/src/MEDLoader/Test/MEDLoaderTest.cxx +++ b/src/MEDLoader/Test/MEDLoaderTest.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D +// Copyright (C) 2007-2014 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 // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -34,7 +34,7 @@ void MEDLoaderTest::testMesh1DRW() MEDCouplingUMesh *mesh=build1DMesh_1(); mesh->checkCoherency(); MEDLoader::WriteUMesh("file1.med",mesh,true); - MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file1.med",mesh->getName(),0); + MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file1.med",mesh->getName().c_str(),0); CPPUNIT_ASSERT(mesh->isEqual(mesh_rw,1e-12)); mesh_rw->decrRef(); mesh->decrRef(); @@ -45,7 +45,7 @@ void MEDLoaderTest::testMesh2DCurveRW() MEDCouplingUMesh *mesh=build2DCurveMesh_1(); mesh->checkCoherency(); MEDLoader::WriteUMesh("file2.med",mesh,true); - MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file2.med",mesh->getName(),0); + MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file2.med",mesh->getName().c_str(),0); CPPUNIT_ASSERT(mesh->isEqual(mesh_rw,1e-12)); mesh_rw->decrRef(); mesh->decrRef(); @@ -56,7 +56,7 @@ void MEDLoaderTest::testMesh2DRW() MEDCouplingUMesh *mesh=build2DMesh_1(); mesh->checkCoherency(); MEDLoader::WriteUMesh("file3.med",mesh,true); - MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file3.med",mesh->getName(),0); + MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file3.med",mesh->getName().c_str(),0); CPPUNIT_ASSERT(mesh->isEqual(mesh_rw,1e-12)); mesh_rw->decrRef(); mesh->decrRef(); @@ -67,7 +67,7 @@ void MEDLoaderTest::testMesh3DSurfRW() MEDCouplingUMesh *mesh=build3DSurfMesh_1(); mesh->checkCoherency(); MEDLoader::WriteUMesh("file4.med",mesh,true); - MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file4.med",mesh->getName(),0); + MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file4.med",mesh->getName().c_str(),0); CPPUNIT_ASSERT(mesh->isEqual(mesh_rw,1e-12)); mesh_rw->decrRef(); mesh->decrRef(); @@ -78,7 +78,7 @@ void MEDLoaderTest::testMesh3DRW() MEDCouplingUMesh *mesh=build3DMesh_1(); mesh->checkCoherency(); MEDLoader::WriteUMesh("file5.med",mesh,true); - MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file5.med",mesh->getName(),0); + MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile("file5.med",mesh->getName().c_str(),0); CPPUNIT_ASSERT(mesh->isEqual(mesh_rw,1e-12)); mesh_rw->decrRef(); mesh->decrRef(); @@ -91,17 +91,17 @@ void MEDLoaderTest::testFieldRW1() { MEDCouplingFieldDouble *f1=buildVecFieldOnCells_1(); MEDLoader::WriteField("file6.med",f1,true); - MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell("file6.med",f1->getMesh()->getName(),0,f1->getName(),0,1); + MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell("file6.med",f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),0,1); CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); f1->decrRef(); f2->decrRef(); // f1=buildVecFieldOnNodes_1(); MEDLoader::WriteField("file7.med",f1,true); - f2=MEDLoader::ReadFieldNode("file7.med",f1->getMesh()->getName(),0,f1->getName(),2,3); + f2=MEDLoader::ReadFieldNode("file7.med",f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,3); CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); // testing kind message on error of field type. - CPPUNIT_ASSERT_THROW(MEDLoader::ReadFieldCell("file7.med",f1->getMesh()->getName(),0,f1->getName(),2,3),INTERP_KERNEL::Exception); + CPPUNIT_ASSERT_THROW(MEDLoader::ReadFieldCell("file7.med",f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,3),INTERP_KERNEL::Exception); // f1->decrRef(); f2->decrRef(); @@ -125,22 +125,22 @@ void MEDLoaderTest::testFieldRW2() tmp[0]=VAL2; MEDLoader::WriteFieldUsingAlreadyWrittenMesh(fileName,f1); //retrieving time steps... - MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),0,f1->getName(),8,9); + MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),8,9); f1->setTime(10.,8,9); tmp[0]=VAL1; CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); f2->decrRef(); - f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),0,f1->getName(),0,1); + f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),0,1); MEDCouplingFieldDouble *f3=buildVecFieldOnCells_1(); CPPUNIT_ASSERT(f3->isEqual(f2,1e-12,1e-12)); f3->decrRef(); f2->decrRef(); - f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),0,f1->getName(),18,19); + f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),18,19); f1->setTime(10.14,18,19); tmp[0]=VAL2; CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); //test of throw on invalid (dt,it) - CPPUNIT_ASSERT_THROW(MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),0,f1->getName(),28,19),INTERP_KERNEL::Exception); + CPPUNIT_ASSERT_THROW(MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),28,19),INTERP_KERNEL::Exception); f2->decrRef(); f1->decrRef(); //ON NODES @@ -154,17 +154,17 @@ void MEDLoaderTest::testFieldRW2() f1->setTime(210.,208,209); tmp[3]=VAL2; MEDLoader::WriteFieldUsingAlreadyWrittenMesh(fileName2,f1); - f2=MEDLoader::ReadFieldNode(fileName2,f1->getMesh()->getName(),0,f1->getName(),108,109); + f2=MEDLoader::ReadFieldNode(fileName2,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),108,109); f1->setTime(110.,108,109); tmp[3]=VAL1; CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); f2->decrRef(); - f2=MEDLoader::ReadFieldNode(fileName2,f1->getMesh()->getName(),0,f1->getName(),2,3); + f2=MEDLoader::ReadFieldNode(fileName2,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,3); f3=buildVecFieldOnNodes_1(); CPPUNIT_ASSERT(f3->isEqual(f2,1e-12,1e-12)); f3->decrRef(); f2->decrRef(); - f2=MEDLoader::ReadFieldNode(fileName2,f1->getMesh()->getName(),0,f1->getName(),208,209); + f2=MEDLoader::ReadFieldNode(fileName2,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),208,209); f1->setTime(210.,208,209); tmp[3]=VAL2; CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); @@ -318,7 +318,7 @@ void MEDLoaderTest::testMultiMeshRW1() CPPUNIT_ASSERT(mesh1_2->isEqual(mesh1,1e-12)); mesh1_2->decrRef(); // - vec.clear(); vec.push_back(std::string("Family_4")); vec.push_back(std::string("Family_2")); + vec.clear(); vec.push_back(std::string("Family_-3")); vec.push_back(std::string("Family_-5")); mesh2_2=MEDLoader::ReadUMeshFromFamilies(fileName,mnane,0,vec); mesh2_2->setName("mesh2"); CPPUNIT_ASSERT(mesh2_2->isEqual(mesh2,1e-12)); @@ -326,12 +326,12 @@ void MEDLoaderTest::testMultiMeshRW1() // std::vector ret=MEDLoader::GetMeshFamiliesNamesOnGroup(fileName,"3DToto","3DMesh_1"); CPPUNIT_ASSERT_EQUAL(4,(int)ret.size()); - CPPUNIT_ASSERT(ret[0]=="Family_1"); - CPPUNIT_ASSERT(ret[1]=="Family_2"); - CPPUNIT_ASSERT(ret[2]=="Family_3"); - CPPUNIT_ASSERT(ret[3]=="Family_4"); + CPPUNIT_ASSERT(ret[0]=="Family_-2"); + CPPUNIT_ASSERT(ret[1]=="Family_-3"); + CPPUNIT_ASSERT(ret[2]=="Family_-4"); + CPPUNIT_ASSERT(ret[3]=="Family_-5"); // - std::vector ret1=MEDLoader::GetMeshGroupsNamesOnFamily(fileName,"3DToto","Family_2"); + std::vector ret1=MEDLoader::GetMeshGroupsNamesOnFamily(fileName,"3DToto","Family_-3"); CPPUNIT_ASSERT_EQUAL(2,(int)ret1.size()); CPPUNIT_ASSERT(ret1[0]=="3DMesh_1"); CPPUNIT_ASSERT(ret1[1]=="mesh2"); @@ -353,7 +353,7 @@ void MEDLoaderTest::testFieldProfilRW1() MEDLoader::WriteUMesh(fileName,mesh1,true); const int part1[5]={1,2,4,13,15}; MEDCouplingUMesh *mesh2=(MEDCouplingUMesh *)mesh1->buildPartOfMySelf(part1,part1+5,true); - mesh2->setName(mesh1->getName());//<- important for the test + mesh2->setName(mesh1->getName().c_str());//<- important for the test // int nbOfCells=mesh2->getNumberOfCells(); CPPUNIT_ASSERT_EQUAL(5,nbOfCells); @@ -372,8 +372,8 @@ void MEDLoaderTest::testFieldProfilRW1() // MEDLoader::WriteField(fileName,f1,false);//<- false important for the test // - MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),0,f1->getName(),2,7); - std::vector types=MEDLoader::GetTypesOfField(fileName,f1->getMesh()->getName(),f1->getName()); + MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,7); + std::vector types=MEDLoader::GetTypesOfField(fileName,f1->getMesh()->getName().c_str(),f1->getName().c_str()); CPPUNIT_ASSERT_EQUAL(1,(int)types.size()); CPPUNIT_ASSERT(types[0]==ON_CELLS); f2->checkCoherency(); @@ -410,10 +410,10 @@ void MEDLoaderTest::testFieldNodeProfilRW1() f1->checkCoherency(); const int arr2[2]={1,4};//node ids are 2,4,5,3,6,7 MEDCouplingFieldDouble *f2=f1->buildSubPart(arr2,arr2+2); - (const_cast(f2->getMesh()))->setName(f1->getMesh()->getName()); + (const_cast(f2->getMesh()))->setName(f1->getMesh()->getName().c_str()); MEDLoader::WriteField(fileName,f2,false);//<- false important for the test // - MEDCouplingFieldDouble *f3=MEDLoader::ReadFieldNode(fileName,f2->getMesh()->getName(),0,f2->getName(),2,7); + MEDCouplingFieldDouble *f3=MEDLoader::ReadFieldNode(fileName,f2->getMesh()->getName().c_str(),0,f2->getName().c_str(),2,7); f3->checkCoherency(); CPPUNIT_ASSERT(f3->isEqual(f2,1e-12,1e-12)); f3->decrRef(); @@ -422,7 +422,7 @@ void MEDLoaderTest::testFieldNodeProfilRW1() f2->renumberNodes(arr3); MEDLoader::WriteUMesh(fileName2,m,true); MEDLoader::WriteField(fileName2,f2,false);//<- false important for the test - f3=MEDLoader::ReadFieldNode(fileName2,f2->getMesh()->getName(),0,f2->getName(),2,7); + f3=MEDLoader::ReadFieldNode(fileName2,f2->getMesh()->getName().c_str(),0,f2->getName().c_str(),2,7); f3->checkCoherency(); CPPUNIT_ASSERT(f3->isEqual(f2,1e-12,1e-12)); f3->decrRef(); @@ -459,7 +459,7 @@ void MEDLoaderTest::testFieldNodeProfilRW2() f1->renumberNodes(renumArr); f1->checkCoherency(); MEDLoader::WriteField(fileName,f1,false);//<- false important for the test - MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldNode(fileName,f1->getMesh()->getName(),0,f1->getName(),2,7); + MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldNode(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,7); CPPUNIT_ASSERT(f2->isEqual(f1,1e-12,1e-12)); // f2->decrRef(); @@ -472,7 +472,7 @@ void MEDLoaderTest::testFieldGaussRW1() const char fileName[]="file13.med"; MEDCouplingFieldDouble *f1=buildVecFieldOnGauss_1(); MEDLoader::WriteField(fileName,f1,true); - MEDCouplingFieldDouble *f2=MEDLoader::ReadField(ON_GAUSS_PT,fileName,f1->getMesh()->getName(),0,f1->getName(),1,5); + MEDCouplingFieldDouble *f2=MEDLoader::ReadField(ON_GAUSS_PT,fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),1,5); CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); f2->decrRef(); f1->decrRef(); @@ -483,7 +483,10 @@ void MEDLoaderTest::testFieldGaussNERW1() const char fileName[]="file14.med"; MEDCouplingFieldDouble *f1=buildVecFieldOnGaussNE_1(); MEDLoader::WriteField(fileName,f1,true); - MEDCouplingFieldDouble *f2=MEDLoader::ReadField(ON_GAUSS_NE,fileName,f1->getMesh()->getName(),0,f1->getName(),1,5); + std::vector tof(MEDLoader::GetTypesOfField(fileName,"2DMesh_2","MyFieldOnGaussNE")); + CPPUNIT_ASSERT_EQUAL(1,(int)tof.size()); + CPPUNIT_ASSERT(ON_GAUSS_NE==tof[0]); + MEDCouplingFieldDouble *f2=MEDLoader::ReadField(ON_GAUSS_NE,fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),1,5); CPPUNIT_ASSERT(f1->isEqual(f2,1e-12,1e-12)); f2->decrRef(); f1->decrRef(); @@ -528,7 +531,7 @@ void MEDLoaderTest::testMesh3DSurfShuffleRW() mesh->renumberCells(renumber1,false); mesh->checkCoherency(); MEDLoader::WriteUMesh(fileName,mesh,true); - MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile(fileName,mesh->getName(),0); + MEDCouplingUMesh *mesh_rw=MEDLoader::ReadUMeshFromFile(fileName,mesh->getName().c_str(),0); CPPUNIT_ASSERT(mesh->isEqual(mesh_rw,1e-12)); mesh_rw->decrRef(); mesh->decrRef(); @@ -554,7 +557,7 @@ void MEDLoaderTest::testFieldShuffleRW1() const int renumber1[6]={2,1,5,0,3,4}; f1->renumberCells(renumber1,false); MEDLoader::WriteField(fileName,f1,true); - MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,mesh->getName(),0,f1->getName(),2,7); + MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,mesh->getName().c_str(),0,f1->getName().c_str(),2,7); CPPUNIT_ASSERT(f2->isEqual(f1,1e-12,1e-12)); f2->decrRef(); // @@ -599,7 +602,7 @@ void MEDLoaderTest::testMultiFieldShuffleRW1() its.push_back(std::pair(1,2)); its.push_back(std::pair(3,4)); its.push_back(std::pair(5,6)); - std::vector fs=MEDLoader::ReadFieldsOnSameMesh(ON_CELLS,fileName,f_1->getMesh()->getName(),0,f_1->getName(),its); + std::vector fs=MEDLoader::ReadFieldsOnSameMesh(ON_CELLS,fileName,f_1->getMesh()->getName().c_str(),0,f_1->getName().c_str(),its); CPPUNIT_ASSERT_EQUAL(3,(int)fs.size()); const MEDCouplingMesh *mm=fs[0]->getMesh(); CPPUNIT_ASSERT(fs[0]->isEqual(f_1,1e-12,1e-12)); @@ -633,11 +636,11 @@ void MEDLoaderTest::testWriteUMeshesRW1() meshes.push_back(m2d); meshes.push_back(m3d); MEDLoader::WriteUMeshes(fileName,meshes,true); - MEDCouplingUMesh *m3d_bis=MEDLoader::ReadUMeshFromFile(fileName,m2d->getName(),0); + MEDCouplingUMesh *m3d_bis=MEDLoader::ReadUMeshFromFile(fileName,m2d->getName().c_str(),0); CPPUNIT_ASSERT(!m3d_bis->isEqual(m3d,1e-12)); - m3d_bis->setName(m3d->getName()); + m3d_bis->setName(m3d->getName().c_str()); CPPUNIT_ASSERT(m3d_bis->isEqual(m3d,1e-12)); - MEDCouplingUMesh *m2d_bis=MEDLoader::ReadUMeshFromFile(fileName,m2d->getName(),-1);//-1 for faces + MEDCouplingUMesh *m2d_bis=MEDLoader::ReadUMeshFromFile(fileName,m2d->getName().c_str(),-1);//-1 for faces CPPUNIT_ASSERT(m2d_bis->isEqual(m2d,1e-12)); // Creation of a field on faces. MEDCouplingFieldDouble *f1=MEDCouplingFieldDouble::New(ON_CELLS,ONE_TIME); @@ -655,7 +658,7 @@ void MEDLoaderTest::testWriteUMeshesRW1() f1->setTime(3.14,2,7); f1->checkCoherency(); MEDLoader::WriteFieldUsingAlreadyWrittenMesh(fileName,f1); - MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),-1,f1->getName(),2,7); + MEDCouplingFieldDouble *f2=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),-1,f1->getName().c_str(),2,7); CPPUNIT_ASSERT(f2->isEqual(f1,1e-12,1e-12)); f1->decrRef(); f2->decrRef(); @@ -704,26 +707,26 @@ void MEDLoaderTest::testMixCellAndNodesFieldRW1() f2->checkCoherency(); // MEDLoader::WriteField(fileName,f1,true); - std::vector ts=MEDLoader::GetTypesOfField(fileName,f1->getMesh()->getName(),f1->getName()); + std::vector ts=MEDLoader::GetTypesOfField(fileName,f1->getMesh()->getName().c_str(),f1->getName().c_str()); CPPUNIT_ASSERT_EQUAL(1,(int)ts.size()); CPPUNIT_ASSERT_EQUAL(ON_CELLS,ts[0]); - std::vector fs=MEDLoader::GetAllFieldNamesOnMesh(fileName,f1->getMesh()->getName()); + std::vector fs=MEDLoader::GetAllFieldNamesOnMesh(fileName,f1->getMesh()->getName().c_str()); CPPUNIT_ASSERT_EQUAL(1,(int)fs.size()); CPPUNIT_ASSERT(fs[0]=="FieldMix"); MEDLoader::WriteFieldUsingAlreadyWrittenMesh(fileName,f2); - fs=MEDLoader::GetAllFieldNamesOnMesh(fileName,f1->getMesh()->getName()); + fs=MEDLoader::GetAllFieldNamesOnMesh(fileName,f1->getMesh()->getName().c_str()); CPPUNIT_ASSERT_EQUAL(1,(int)fs.size()); CPPUNIT_ASSERT(fs[0]=="FieldMix"); // - ts=MEDLoader::GetTypesOfField(fileName,f1->getMesh()->getName(),f1->getName()); + ts=MEDLoader::GetTypesOfField(fileName,f1->getMesh()->getName().c_str(),f1->getName().c_str()); CPPUNIT_ASSERT_EQUAL(2,(int)ts.size()); CPPUNIT_ASSERT_EQUAL(ON_NODES,ts[0]); CPPUNIT_ASSERT_EQUAL(ON_CELLS,ts[1]); // - MEDCouplingFieldDouble *f3=MEDLoader::ReadFieldNode(fileName,f1->getMesh()->getName(),0,f1->getName(),2,7); + MEDCouplingFieldDouble *f3=MEDLoader::ReadFieldNode(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,7); CPPUNIT_ASSERT(f3->isEqual(f2,1e-12,1e-12)); f3->decrRef(); - f3=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName(),0,f1->getName(),2,7); + f3=MEDLoader::ReadFieldCell(fileName,f1->getMesh()->getName().c_str(),0,f1->getName().c_str(),2,7); CPPUNIT_ASSERT(f3->isEqual(f1,1e-12,1e-12)); f3->decrRef(); //