from MEDLoader import *
from MEDCouplingRemapper import *
import math, os
+import tempfile,os,shutil
+
+zeDir = tempfile.mkdtemp()
+os.chdir(zeDir)
d=DataArrayDouble.New(6,2)
d[:,0]=3.
print(sum(angle2)) ; assert abs(sum(angle2)-1.12)<1e-2
print("Au pdt (%d,%d) a %r s le couple est de : %r N.m, power/omega=%r N.m"%(ts[2][0],ts[2][1],ts[2][2],zeTorque[2],power/omega))
assert abs(power/omega-0.37)<1e-2
+shutil.rmtree(zeDir)
from MEDLoader import *
from math import pi,e,sqrt
+def WriteInTmpDir(func):
+ def decaratedFunc(*args,**kwargs):
+ import tempfile,os
+ ret = None
+ with tempfile.TemporaryDirectory() as tmpdirname:
+ os.chdir(tmpdirname)
+ ret = func(*args,**kwargs)
+ pass
+ return ret
+ return decaratedFunc
+
class MEDLoaderDataForTest:
def build1DMesh_1(cls):
coords=[ 0.0, 0.3, 0.75, 1.0, 1.4, 1.3 ]
buildACompleteMEDDataStructureWithFieldsOnCells_1=classmethod(buildACompleteMEDDataStructureWithFieldsOnCells_1)
buildAMEDFileDataWithGroupOnOneFamilyForSauv=classmethod(buildAMEDFileDataWithGroupOnOneFamilyForSauv)
pass
+
+def TestWriteUMeshesRW1(tester):
+ fileName="Pyfile18.med";
+ m3d=MEDLoaderDataForTest.build3DMesh_2();
+ pt=[0.,0.,-0.3]
+ vec=[0.,0.,1.]
+ nodes=m3d.findNodesOnPlane(pt,vec,1e-12);
+ m2d=m3d.buildFacePartOfMySelfNode(nodes,True);
+ renumber=[1,2,0,4,3]
+ m2d.renumberCells(renumber,False);
+ m2d.setName("ExampleOfMultiDimW");
+ meshes=[m2d,m3d]
+ WriteUMeshes(fileName,meshes,False);
+ m3d_bis=ReadUMeshFromFile(fileName,m2d.getName(),0);
+ tester.assertTrue(not m3d_bis.isEqual(m3d,1e-12));
+ m3d_bis.setName(m3d.getName());
+ tester.assertTrue(m3d_bis.isEqual(m3d,1e-12));
+ m2d_bis=ReadUMeshFromFile(fileName,m2d.getName(),-1);#-1 for faces
+ tester.assertTrue(m2d_bis.isEqual(m2d,1e-12));
+ # Creation of a field on faces.
+ f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
+ f1.setName("FieldOnFacesShuffle");
+ f1.setMesh(m2d);
+ array=DataArrayDouble.New();
+ arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
+ array.setValues(arr1,m2d.getNumberOfCells(),2);
+ array.setInfoOnComponent(0,"plkj [mm]");
+ array.setInfoOnComponent(1,"pqqqss [mm]");
+ f1.setArray(array);
+ tmp=array.setValues(arr1,m2d.getNumberOfCells(),2);
+ f1.setTime(3.14,2,7);
+ f1.checkConsistencyLight();
+ WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
+ f2=ReadFieldCell(fileName,f1.getMesh().getName(),-1,f1.getName(),2,7);
+ tester.assertTrue(f2.isEqual(f1,1e-12,1e-12));
+ pass
+
+def TestMultiFieldShuffleRW1(tester):
+ fileName="Pyfile17.med";
+ m=MEDLoaderDataForTest.build3DMesh_2();
+ tester.assertEqual(20,m.getNumberOfCells());
+ tester.assertEqual(45,m.getNumberOfNodes());
+ polys=[1,4,6]
+ m.convertToPolyTypes(polys);
+ renum=[1,3,2,8,9,12,13,16,19,0,4,7,5,15,14,17,10,18,6,11]
+ m.renumberCells(renum,False);
+ m.orientCorrectlyPolyhedrons();
+ # Writing
+ WriteUMeshDep(fileName,m,False);
+ f1Tmp=m.getMeasureField(False);
+ f1=f1Tmp.buildNewTimeReprFromThis(ONE_TIME,False);
+ f1.setTime(0.,1,2);
+ f_1=f1.cloneWithMesh(True);
+ WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
+ f1.applyFunc("2*x");
+ f1.setTime(0.01,3,4);
+ f_2=f1.cloneWithMesh(True);
+ WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
+ f1.applyFunc("2*x/3");
+ f1.setTime(0.02,5,6);
+ f_3=f1.cloneWithMesh(True);
+ WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
+ # Reading
+ its=[(1,2),(3,4),(5,6)];
+ fs=ReadFieldsOnSameMesh(ON_CELLS,fileName,f_1.getMesh().getName(),0,f_1.getName(),its);
+ tester.assertEqual(3,len(fs));
+ tester.assertTrue(fs[0].isEqual(f_1,1e-12,1e-12));
+ tester.assertTrue(fs[1].isEqual(f_2,1e-12,1e-12));
+ tester.assertTrue(fs[2].isEqual(f_3,1e-12,1e-12));
+
+def GeneratePyfile13(tester):
+ fileName="Pyfile13.med";
+ f1=MEDLoaderDataForTest.buildVecFieldOnGauss_1();
+ WriteField(fileName,f1,True);
+ f2=ReadField(ON_GAUSS_PT,fileName,f1.getMesh().getName(),0,f1.getName(),1,5);
+ tester.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+ pass
+
+def GeneratePyfile14(tester):
+ fileName="Pyfile14.med";
+ f1=MEDLoaderDataForTest.buildVecFieldOnGaussNE_1();
+ WriteField(fileName,f1,True);
+ tester.assertEqual([ON_GAUSS_NE],GetTypesOfField(fileName,'2DMesh_2','MyFieldOnGaussNE')) #Bug 22/5/2014
+ f2=ReadField(ON_GAUSS_NE,fileName,f1.getMesh().getName(),0,f1.getName(),1,5);
+ tester.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+
+
+def GeneratePyfile18(tester):
+ fileName="Pyfile18.med";
+ m3d=MEDLoaderDataForTest.build3DMesh_2();
+ pt=[0.,0.,-0.3]
+ vec=[0.,0.,1.]
+ nodes=m3d.findNodesOnPlane(pt,vec,1e-12);
+ m2d=m3d.buildFacePartOfMySelfNode(nodes,True);
+ renumber=[1,2,0,4,3]
+ m2d.renumberCells(renumber,False);
+ m2d.setName("ExampleOfMultiDimW");
+ meshes=[m2d,m3d]
+ WriteUMeshes(fileName,meshes,True);
+ m3d_bis=ReadUMeshFromFile(fileName,m2d.getName(),0);
+ tester.assertTrue(not m3d_bis.isEqual(m3d,1e-12));
+ m3d_bis.setName(m3d.getName());
+ tester.assertTrue(m3d_bis.isEqual(m3d,1e-12));
+ m2d_bis=ReadUMeshFromFile(fileName,m2d.getName(),-1);#-1 for faces
+ tester.assertTrue(m2d_bis.isEqual(m2d,1e-12));
+ # Creation of a field on faces.
+ f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
+ f1.setName("FieldOnFacesShuffle");
+ f1.setMesh(m2d);
+ array=DataArrayDouble.New();
+ arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
+ array.setValues(arr1,m2d.getNumberOfCells(),2);
+ array.setInfoOnComponent(0,"plkj [mm]");
+ array.setInfoOnComponent(1,"pqqqss [mm]");
+ f1.setArray(array);
+ tmp=array.setValues(arr1,m2d.getNumberOfCells(),2);
+ f1.setTime(3.14,2,7);
+ f1.checkConsistencyLight();
+ WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
+ f2=ReadFieldCell(fileName,f1.getMesh().getName(),-1,f1.getName(),2,7);
+ tester.assertTrue(f2.isEqual(f1,1e-12,1e-12));
+
+def GeneratePyfile19(tester):
+ fileName="Pyfile19.med";
+ fileName2="Pyfile20.med";
+ m=MEDLoaderDataForTest.build2DMesh_1();
+ nbOfNodes=m.getNumberOfNodes();
+ WriteUMesh(fileName,m,True);
+ f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
+ f1.setName("VFieldOnNodes");
+ f1.setMesh(m);
+ array=DataArrayDouble.New();
+ arr1=[1.,101.,2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.]
+ array.setValues(arr1,nbOfNodes,2);
+ f1.setArray(array);
+ array.setInfoOnComponent(0,"tyty [mm]");
+ array.setInfoOnComponent(1,"uiop [MW]");
+ f1.setTime(3.14,2,7);
+ f1.checkConsistencyLight();
+ arr2=[1,4]
+ f2=f1.buildSubPart(arr2);
+ f2.getMesh().setName(f1.getMesh().getName());
+ WriteField(fileName,f2,False);#<- False important for the test
+ #
+ f3=ReadFieldNode(fileName,f2.getMesh().getName(),0,f2.getName(),2,7);
+ f3.checkConsistencyLight();
+ tester.assertTrue(f3.isEqual(f2,1e-12,1e-12));
+ #
+ arr3=[1,3,0,5,2,4]
+ f2.renumberNodes(arr3);
+ WriteUMesh(fileName2,m,True);
+ WriteField(fileName2,f2,False);#<- False important for the test
+ f3=ReadFieldNode(fileName2,f2.getMesh().getName(),0,f2.getName(),2,7);
+ f3.checkConsistencyLight();
+ tester.assertTrue(f3.isEqual(f2,1e-12,1e-12));
+ #
+ pass
+
+def GeneratePyfile7(tester):
+ f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
+ WriteField("Pyfile6.med",f1,True);
+ f2=ReadFieldCell("Pyfile6.med",f1.getMesh().getName(),0,f1.getName(),0,1);
+ tester.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+ #
+ f1=MEDLoaderDataForTest.buildVecFieldOnNodes_1();
+ WriteField("Pyfile7.med",f1,True);
+ f2=ReadFieldNode("Pyfile7.med",f1.getMesh().getName(),0,f1.getName(),2,3);
+ tester.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+ tester.assertRaises(Exception,ReadFieldCell,"Pyfile7.med",f1.getMesh().getName(),0,f1.getName(),2,3);
+ pass
+
+def GeneratePyfile12(tester):
+ fileName="Pyfile12.med";
+ mesh1=MEDLoaderDataForTest.build3DMesh_1();
+ da,b,newNbOfNodes=mesh1.mergeNodes(1e-12);
+ WriteUMesh(fileName,mesh1,True);
+ part1=[1,2,4,13,15]
+ mesh2=mesh1.buildPartOfMySelf(part1,True);
+ mesh2.setName(mesh1.getName());#<- important for the test
+ #
+ nbOfCells=mesh2.getNumberOfCells();
+ tester.assertEqual(5,nbOfCells);
+ f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
+ f1.setName("VectorFieldOnCells");
+ f1.setMesh(mesh2);
+ array=DataArrayDouble.New();
+ array.alloc(nbOfCells,2);
+ f1.setArray(array);
+ arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
+ array.setValues(arr1,nbOfCells,2);
+ f1.setTime(3.14,2,7);
+ f1.checkConsistencyLight();
+ #
+ WriteField(fileName,f1,False);#<- False important for the test
+ #
+ f2=ReadFieldCell(fileName,f1.getMesh().getName(),0,f1.getName(),2,7);
+ tt=GetTypesOfField(fileName,f1.getMesh().getName(),f1.getName());
+ tester.assertEqual(tt,[ON_CELLS]);
+ f2.checkConsistencyLight();
+ tester.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+
+def GeneratePyfile10(tester):
+ fileName="Pyfile10.med";
+ mesh1=MEDLoaderDataForTest.build3DMesh_1();
+ part1=[1,2,4,13,15]
+ mesh2=mesh1.buildPartOfMySelf(part1,True);
+ mesh2.setName("mesh2");
+ part2=[3,4,13,14]
+ mesh3=mesh1.buildPartOfMySelf(part2,True);
+ mesh3.setName("mesh3");
+ mesh4=MEDCouplingUMesh.New();
+ mesh4.setName("mesh4");
+ mesh4.setMeshDimension(3);
+ mesh4.allocateCells(1);
+ conn=[0,11,1,3]
+ mesh4.insertNextCell(NORM_TETRA4,4,conn[0:4])
+ mesh4.finishInsertingCells();
+ mesh4.setCoords(mesh1.getCoords());
+ meshes=[mesh1,mesh2,mesh3,mesh4]
+ mnane="3DToto";
+ WriteUMeshesPartition(fileName,mnane,meshes,True);
+ #
+ mesh5=ReadUMeshFromFile(fileName,mnane);
+ mesh1.setName(mnane);
+ part3=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
+ mesh6=mesh5.buildPartOfMySelf(part3,True);
+ mesh6.setName(mnane);
+ tester.assertTrue(mesh6.isEqual(mesh1,1e-12));
+ grps=GetMeshGroupsNames(fileName,mnane);
+ tester.assertEqual(4,len(grps));
+ grps.index("mesh2");
+ grps.index("mesh3");
+ grps.index("mesh4");
+ grps.index("3DMesh_1");
+ #
+ vec=("mesh2",);
+ mesh2_2=ReadUMeshFromGroups(fileName,mnane,0,vec);
+ tester.assertTrue(mesh2_2.isEqual(mesh2,1e-12));
+ vec=["mesh3"];
+ mesh3_2=ReadUMeshFromGroups(fileName,mnane,0,vec);
+ tester.assertTrue(mesh3_2.isEqual(mesh3,1e-12));
+ vec=["mesh4"];
+ mesh4_2=ReadUMeshFromGroups(fileName,mnane,0,vec);
+ tester.assertTrue(mesh4_2.isEqual(mesh4,1e-12));
+ vec="3DMesh_1";
+ mesh1_2=ReadUMeshFromGroups(fileName,mnane,0,vec);
+ mesh1.setName("3DMesh_1");
+ tester.assertTrue(mesh1_2.isEqual(mesh1,1e-12));
+ #
+ vec=["Family_-3","Family_-5"];
+ mesh2_2=ReadUMeshFromFamilies(fileName,mnane,0,vec);
+ mesh2_2.setName("mesh2");
+ tester.assertTrue(mesh2_2.isEqual(mesh2,1e-12));
+ #
+ ret=GetMeshFamiliesNamesOnGroup(fileName,"3DToto","3DMesh_1");
+ tester.assertEqual(4,len(ret));
+ ref=['Family_-3','Family_-4','Family_-2','Family_-5']
+ tester.assertIn(ref[0],ret);
+ tester.assertIn(ref[1],ret);
+ tester.assertIn(ref[2],ret);
+ tester.assertIn(ref[3],ret);
+ #
+ ret1=GetMeshGroupsNamesOnFamily(fileName,"3DToto","Family_-3");
+ tester.assertEqual(2,len(ret1));
+ tester.assertEqual(ret1[0],"3DMesh_1");
+ tester.assertEqual(ret1[1],"mesh2");
from MEDLoader import *
import unittest
import os
+from MEDLoaderDataForTest import WriteInTmpDir
class MEDLoaderBasicsTest(unittest.TestCase):
+ @WriteInTmpDir
def testExampleReadFieldOnAllEntity1(self):
from MEDLoaderDataForTest import MEDLoaderDataForTest
#! [PySnippetReadFieldOnAllEntity1_1]
#! [PySnippetReadFieldOnAllEntity1_5]
pass
+ @WriteInTmpDir
def testExampleReadFieldPartial1(self):
from MEDLoaderDataForTest import MEDLoaderDataForTest
#! [PySnippetReadFieldPartial1_1]
#! [PySnippetReadFieldPartial1_6]
pass
+ @WriteInTmpDir
def testExampleMeshAdvAPI1(self):
da=DataArrayDouble.New([0.,1.1,2.3,3.6])
meshName="Example2"
import MEDLoader
import unittest
from math import pi,e,sqrt
-from MEDLoaderDataForTest import MEDLoaderDataForTest
+from MEDLoaderDataForTest import MEDLoaderDataForTest,WriteInTmpDir
+from MEDLoaderDataForTest import GeneratePyfile7,GeneratePyfile10,GeneratePyfile12,GeneratePyfile13,GeneratePyfile14,GeneratePyfile18,GeneratePyfile19
class MEDLoaderTest1(unittest.TestCase):
+ @WriteInTmpDir
def testMesh1DRW(self):
mesh=MEDLoaderDataForTest.build1DMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh2DCurveRW(self):
mesh=MEDLoaderDataForTest.build2DCurveMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh2DRW(self):
mesh=MEDLoaderDataForTest.build2DMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh3DSurfRW(self):
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh3DRW(self):
mesh=MEDLoaderDataForTest.build3DMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testFieldRW1(self):
- f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
- MEDLoader.WriteField("Pyfile6.med",f1,True);
- f2=MEDLoader.ReadFieldCell("Pyfile6.med",f1.getMesh().getName(),0,f1.getName(),0,1);
- self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
- #
- f1=MEDLoaderDataForTest.buildVecFieldOnNodes_1();
- MEDLoader.WriteField("Pyfile7.med",f1,True);
- f2=MEDLoader.ReadFieldNode("Pyfile7.med",f1.getMesh().getName(),0,f1.getName(),2,3);
- self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
- self.assertRaises(Exception,MEDLoader.ReadFieldCell,"Pyfile7.med",f1.getMesh().getName(),0,f1.getName(),2,3);
+ GeneratePyfile7(self)
pass
+ @WriteInTmpDir
def testFieldRW2(self):
fileName="Pyfile8.med";
VAL1=12345.67890314;
#
# Multi field in a same file, but this field has several
#
+ @WriteInTmpDir
def testFieldRW3(self):
fileName="Pyfile11.med";
VAL1=12345.67890314;
self.assertAlmostEqual(VAL2,f1.getArray().getIJ(0,3),13);
pass
+ @WriteInTmpDir
def testMultiMeshRW1(self):
- fileName="Pyfile10.med";
- mesh1=MEDLoaderDataForTest.build3DMesh_1();
- part1=[1,2,4,13,15]
- mesh2=mesh1.buildPartOfMySelf(part1,True);
- mesh2.setName("mesh2");
- part2=[3,4,13,14]
- mesh3=mesh1.buildPartOfMySelf(part2,True);
- mesh3.setName("mesh3");
- mesh4=MEDLoader.MEDCouplingUMesh.New();
- mesh4.setName("mesh4");
- mesh4.setMeshDimension(3);
- mesh4.allocateCells(1);
- conn=[0,11,1,3]
- mesh4.insertNextCell(MEDLoader.NORM_TETRA4,4,conn[0:4])
- mesh4.finishInsertingCells();
- mesh4.setCoords(mesh1.getCoords());
- meshes=[mesh1,mesh2,mesh3,mesh4]
- mnane="3DToto";
- MEDLoader.WriteUMeshesPartition(fileName,mnane,meshes,True);
- #
- mesh5=MEDLoader.ReadUMeshFromFile(fileName,mnane);
- mesh1.setName(mnane);
- part3=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
- mesh6=mesh5.buildPartOfMySelf(part3,True);
- mesh6.setName(mnane);
- self.assertTrue(mesh6.isEqual(mesh1,1e-12));
- grps=MEDLoader.GetMeshGroupsNames(fileName,mnane);
- self.assertEqual(4,len(grps));
- grps.index("mesh2");
- grps.index("mesh3");
- grps.index("mesh4");
- grps.index("3DMesh_1");
- #
- vec=("mesh2",);
- mesh2_2=MEDLoader.ReadUMeshFromGroups(fileName,mnane,0,vec);
- self.assertTrue(mesh2_2.isEqual(mesh2,1e-12));
- vec=["mesh3"];
- mesh3_2=MEDLoader.ReadUMeshFromGroups(fileName,mnane,0,vec);
- self.assertTrue(mesh3_2.isEqual(mesh3,1e-12));
- vec=["mesh4"];
- mesh4_2=MEDLoader.ReadUMeshFromGroups(fileName,mnane,0,vec);
- self.assertTrue(mesh4_2.isEqual(mesh4,1e-12));
- vec="3DMesh_1";
- mesh1_2=MEDLoader.ReadUMeshFromGroups(fileName,mnane,0,vec);
- mesh1.setName("3DMesh_1");
- self.assertTrue(mesh1_2.isEqual(mesh1,1e-12));
- #
- vec=["Family_-3","Family_-5"];
- mesh2_2=MEDLoader.ReadUMeshFromFamilies(fileName,mnane,0,vec);
- mesh2_2.setName("mesh2");
- self.assertTrue(mesh2_2.isEqual(mesh2,1e-12));
- #
- ret=MEDLoader.GetMeshFamiliesNamesOnGroup(fileName,"3DToto","3DMesh_1");
- self.assertEqual(4,len(ret));
- ref=['Family_-3','Family_-4','Family_-2','Family_-5']
- self.assertIn(ref[0],ret);
- self.assertIn(ref[1],ret);
- self.assertIn(ref[2],ret);
- self.assertIn(ref[3],ret);
- #
- ret1=MEDLoader.GetMeshGroupsNamesOnFamily(fileName,"3DToto","Family_-3");
- self.assertEqual(2,len(ret1));
- self.assertEqual(ret1[0],"3DMesh_1");
- self.assertEqual(ret1[1],"mesh2");
+ GeneratePyfile10(self)
pass
+ @WriteInTmpDir
def testFieldProfilRW1(self):
- fileName="Pyfile12.med";
- mesh1=MEDLoaderDataForTest.build3DMesh_1();
- da,b,newNbOfNodes=mesh1.mergeNodes(1e-12);
- MEDLoader.WriteUMesh(fileName,mesh1,True);
- part1=[1,2,4,13,15]
- mesh2=mesh1.buildPartOfMySelf(part1,True);
- mesh2.setName(mesh1.getName());#<- important for the test
- #
- nbOfCells=mesh2.getNumberOfCells();
- self.assertEqual(5,nbOfCells);
- f1=MEDLoader.MEDCouplingFieldDouble.New(MEDLoader.ON_CELLS,MEDLoader.ONE_TIME);
- f1.setName("VectorFieldOnCells");
- f1.setMesh(mesh2);
- array=MEDLoader.DataArrayDouble.New();
- array.alloc(nbOfCells,2);
- f1.setArray(array);
- arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
- array.setValues(arr1,nbOfCells,2);
- f1.setTime(3.14,2,7);
- f1.checkConsistencyLight();
- #
- MEDLoader.WriteField(fileName,f1,False);#<- False important for the test
- #
- f2=MEDLoader.ReadFieldCell(fileName,f1.getMesh().getName(),0,f1.getName(),2,7);
- tt=MEDLoader.GetTypesOfField(fileName,f1.getMesh().getName(),f1.getName());
- self.assertEqual(tt,[MEDLoader.ON_CELLS]);
- f2.checkConsistencyLight();
- self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+ GeneratePyfile12(self)
#
pass
+ @WriteInTmpDir
def testFieldGaussRW1(self):
- fileName="Pyfile13.med";
- f1=MEDLoaderDataForTest.buildVecFieldOnGauss_1();
- MEDLoader.WriteField(fileName,f1,True);
- f2=MEDLoader.ReadField(MEDLoader.ON_GAUSS_PT,fileName,f1.getMesh().getName(),0,f1.getName(),1,5);
- self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+ GeneratePyfile13(self)
pass
+ @WriteInTmpDir
def testFieldGaussNERW1(self):
- fileName="Pyfile14.med";
- f1=MEDLoaderDataForTest.buildVecFieldOnGaussNE_1();
- MEDLoader.WriteField(fileName,f1,True);
- self.assertEqual([MEDLoader.ON_GAUSS_NE],MEDLoader.GetTypesOfField(fileName,'2DMesh_2','MyFieldOnGaussNE')) #Bug 22/5/2014
- f2=MEDLoader.ReadField(MEDLoader.ON_GAUSS_NE,fileName,f1.getMesh().getName(),0,f1.getName(),1,5);
- self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
+ GeneratePyfile14(self)
pass
+ @WriteInTmpDir
def testMesh3DSurfShuffleRW(self):
fileName="Pyfile15.med";
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMultiFieldShuffleRW1(self):
fileName="Pyfile17.med";
m=MEDLoaderDataForTest.build3DMesh_2();
self.assertTrue(fs[2].isEqual(f_3,1e-12,1e-12));
pass
+ @WriteInTmpDir
def testWriteUMeshesRW1(self):
- fileName="Pyfile18.med";
- m3d=MEDLoaderDataForTest.build3DMesh_2();
- pt=[0.,0.,-0.3]
- vec=[0.,0.,1.]
- nodes=m3d.findNodesOnPlane(pt,vec,1e-12);
- m2d=m3d.buildFacePartOfMySelfNode(nodes,True);
- renumber=[1,2,0,4,3]
- m2d.renumberCells(renumber,False);
- m2d.setName("ExampleOfMultiDimW");
- meshes=[m2d,m3d]
- MEDLoader.WriteUMeshes(fileName,meshes,True);
- m3d_bis=MEDLoader.ReadUMeshFromFile(fileName,m2d.getName(),0);
- self.assertTrue(not m3d_bis.isEqual(m3d,1e-12));
- m3d_bis.setName(m3d.getName());
- self.assertTrue(m3d_bis.isEqual(m3d,1e-12));
- m2d_bis=MEDLoader.ReadUMeshFromFile(fileName,m2d.getName(),-1);#-1 for faces
- self.assertTrue(m2d_bis.isEqual(m2d,1e-12));
- # Creation of a field on faces.
- f1=MEDLoader.MEDCouplingFieldDouble.New(MEDLoader.ON_CELLS,MEDLoader.ONE_TIME);
- f1.setName("FieldOnFacesShuffle");
- f1.setMesh(m2d);
- array=MEDLoader.DataArrayDouble.New();
- arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
- array.setValues(arr1,m2d.getNumberOfCells(),2);
- array.setInfoOnComponent(0,"plkj [mm]");
- array.setInfoOnComponent(1,"pqqqss [mm]");
- f1.setArray(array);
- tmp=array.setValues(arr1,m2d.getNumberOfCells(),2);
- f1.setTime(3.14,2,7);
- f1.checkConsistencyLight();
- MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
- f2=MEDLoader.ReadFieldCell(fileName,f1.getMesh().getName(),-1,f1.getName(),2,7);
- self.assertTrue(f2.isEqual(f1,1e-12,1e-12));
+ GeneratePyfile18(self)
pass
+ @WriteInTmpDir
def testFieldNodeProfilRW1(self):
- fileName="Pyfile19.med";
- fileName2="Pyfile20.med";
- m=MEDLoaderDataForTest.build2DMesh_1();
- nbOfNodes=m.getNumberOfNodes();
- MEDLoader.WriteUMesh(fileName,m,True);
- f1=MEDLoader.MEDCouplingFieldDouble.New(MEDLoader.ON_NODES,MEDLoader.ONE_TIME);
- f1.setName("VFieldOnNodes");
- f1.setMesh(m);
- array=MEDLoader.DataArrayDouble.New();
- arr1=[1.,101.,2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.]
- array.setValues(arr1,nbOfNodes,2);
- f1.setArray(array);
- array.setInfoOnComponent(0,"tyty [mm]");
- array.setInfoOnComponent(1,"uiop [MW]");
- f1.setTime(3.14,2,7);
- f1.checkConsistencyLight();
- arr2=[1,4]
- f2=f1.buildSubPart(arr2);
- f2.getMesh().setName(f1.getMesh().getName());
- MEDLoader.WriteField(fileName,f2,False);#<- False important for the test
- #
- f3=MEDLoader.ReadFieldNode(fileName,f2.getMesh().getName(),0,f2.getName(),2,7);
- f3.checkConsistencyLight();
- self.assertTrue(f3.isEqual(f2,1e-12,1e-12));
- #
- arr3=[1,3,0,5,2,4]
- 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.checkConsistencyLight();
- self.assertTrue(f3.isEqual(f2,1e-12,1e-12));
- #
+ GeneratePyfile19(self)
pass
+ @WriteInTmpDir
def testFieldNodeProfilRW2(self):
fileName="Pyfile23.med";
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
#
pass
+ @WriteInTmpDir
def testMixCellAndNodesFieldRW1(self):
fileName="Pyfile21.med";
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
#
pass
+ @WriteInTmpDir
def testGetAllFieldNamesRW1(self):
fileName="Pyfile22.med";
mesh=MEDLoaderDataForTest.build2DMesh_2();
self.assertTrue(fs[3]=="Field8");
pass
+ @WriteInTmpDir
def testBigNbOfCompoNonReg(self):
fileName="Pyfile57.med"
m=MEDLoader.MEDCouplingCMesh() ; m.setCoords(MEDLoader.DataArrayDouble([0,1,2,3]),MEDLoader.DataArrayDouble([0,1]),MEDLoader.DataArrayDouble([0,1]))
self.assertTrue(f.isEqual(f2,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testMultiMeshTypeWrite0(self):
fname="Pyfile73.med"
m=MEDLoader.MEDCoupling1SGTUMesh("mesh",MEDLoader.NORM_QUAD4) ; m.allocateCells()
self.assertTrue(f.isEqual(fRead,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testMultiMeshTypeWrite1(self):
fname="Pyfile74.med"
m=MEDLoader.MEDCoupling1SGTUMesh("mesh",MEDLoader.NORM_QUAD4) ; m.allocateCells()
self.assertTrue(m0.isEqual(mRead,1e-12))
pass
+ @WriteInTmpDir
def testChangeGroupName(self):
""" This test is a non regression test on MEDFileUMesh.changeGroupName thanks to Alliance.
"""
self.assertTrue("xonall1" in mesh.getGroupsNames())
pass
+ @WriteInTmpDir
def testFieldWithTooLongName(self):
""" This test is a non regression test, to check that in basic API the policies are taken into account.
"""
MEDLoader.WriteField(fname,f,True)
pass
+ @WriteInTmpDir
def testUsingAlreadyWrittenMesh2(self):
""" This test focuses on MEDLoader.WriteFieldUsingAlreadyWrittenMesh with mesh different from UMesh.
"""
self.assertTrue(f3r.getArray().isEqual(MEDLoader.DataArrayDouble([0.,4.,8.,12.,16.,20.,24.,28.,32.,36.,40.,44.,48.,52.,56.,60.,64.,68.,72.,76.]),1e-12))
pass
+ @WriteInTmpDir
def testEasyFieldRead1(self):
fname="Pyfile111.med"
arr=MEDLoader.DataArrayDouble(4) ; arr.iota()
self.assertRaises(Exception,MEDLoader.ReadField,MEDLoader.ON_CELLS,fname,"mesh",0,"field2",5,5) # invalid time step
pass
+ @WriteInTmpDir
def testMultiWriteFieldOnMergeableNodesMeshes(self):
fname="Pyfile120.med"
arr=MEDLoader.DataArrayDouble([(0,0),(1,0),(0,1),(0,0),(1,0),(0,1)])
from MEDLoader import *
import unittest
from math import pi,e,sqrt
-from MEDLoaderDataForTest import MEDLoaderDataForTest
+from MEDLoaderDataForTest import MEDLoaderDataForTest,WriteInTmpDir
+from MEDLoaderDataForTest import TestWriteUMeshesRW1,TestMultiFieldShuffleRW1
class MEDLoaderTest2(unittest.TestCase):
+ @WriteInTmpDir
def testMesh1DRW(self):
mesh=MEDLoaderDataForTest.build1DMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh2DCurveRW(self):
mesh=MEDLoaderDataForTest.build2DCurveMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh2DRW(self):
mesh=MEDLoaderDataForTest.build2DMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh3DSurfRW(self):
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMesh3DRW(self):
mesh=MEDLoaderDataForTest.build3DMesh_1();
mesh.checkConsistencyLight();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testFieldRW1(self):
f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
WriteFieldDep("Pyfile6.med",f1,False);
self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
pass
+ @WriteInTmpDir
def testFieldRW2(self):
fileName="Pyfile8.med";
VAL1=12345.67890314;
#
# Multi field in a same file, but this field has several
#
+ @WriteInTmpDir
def testFieldRW3(self):
fileName="Pyfile11.med";
VAL1=12345.67890314;
self.assertAlmostEqual(VAL2,f1.getArray().getIJ(0,3),13);
pass
+ @WriteInTmpDir
def testMultiMeshRW1(self):
fileName="Pyfile10.med";
mesh1=MEDLoaderDataForTest.build3DMesh_1();
self.assertTrue(mesh2_2.isEqual(mesh2,1e-12));
pass
+ @WriteInTmpDir
def testMesh3DSurfShuffleRW(self):
fileName="Pyfile15.med";
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
pass
+ @WriteInTmpDir
def testMultiFieldShuffleRW1(self):
- fileName="Pyfile17.med";
- m=MEDLoaderDataForTest.build3DMesh_2();
- self.assertEqual(20,m.getNumberOfCells());
- self.assertEqual(45,m.getNumberOfNodes());
- polys=[1,4,6]
- m.convertToPolyTypes(polys);
- renum=[1,3,2,8,9,12,13,16,19,0,4,7,5,15,14,17,10,18,6,11]
- m.renumberCells(renum,False);
- m.orientCorrectlyPolyhedrons();
- # Writing
- WriteUMeshDep(fileName,m,False);
- f1Tmp=m.getMeasureField(False);
- f1=f1Tmp.buildNewTimeReprFromThis(ONE_TIME,False);
- f1.setTime(0.,1,2);
- f_1=f1.cloneWithMesh(True);
- WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
- f1.applyFunc("2*x");
- f1.setTime(0.01,3,4);
- f_2=f1.cloneWithMesh(True);
- WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
- f1.applyFunc("2*x/3");
- f1.setTime(0.02,5,6);
- f_3=f1.cloneWithMesh(True);
- WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
- # Reading
- its=[(1,2),(3,4),(5,6)];
- fs=ReadFieldsOnSameMesh(ON_CELLS,fileName,f_1.getMesh().getName(),0,f_1.getName(),its);
- self.assertEqual(3,len(fs));
- self.assertTrue(fs[0].isEqual(f_1,1e-12,1e-12));
- self.assertTrue(fs[1].isEqual(f_2,1e-12,1e-12));
- self.assertTrue(fs[2].isEqual(f_3,1e-12,1e-12));
+ TestMultiFieldShuffleRW1(self)
pass
+ @WriteInTmpDir
def testWriteUMeshesRW1(self):
- fileName="Pyfile18.med";
- m3d=MEDLoaderDataForTest.build3DMesh_2();
- pt=[0.,0.,-0.3]
- vec=[0.,0.,1.]
- nodes=m3d.findNodesOnPlane(pt,vec,1e-12);
- m2d=m3d.buildFacePartOfMySelfNode(nodes,True);
- renumber=[1,2,0,4,3]
- m2d.renumberCells(renumber,False);
- m2d.setName("ExampleOfMultiDimW");
- meshes=[m2d,m3d]
- WriteUMeshes(fileName,meshes,False);
- m3d_bis=ReadUMeshFromFile(fileName,m2d.getName(),0);
- self.assertTrue(not m3d_bis.isEqual(m3d,1e-12));
- m3d_bis.setName(m3d.getName());
- self.assertTrue(m3d_bis.isEqual(m3d,1e-12));
- m2d_bis=ReadUMeshFromFile(fileName,m2d.getName(),-1);#-1 for faces
- self.assertTrue(m2d_bis.isEqual(m2d,1e-12));
- # Creation of a field on faces.
- f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
- f1.setName("FieldOnFacesShuffle");
- f1.setMesh(m2d);
- array=DataArrayDouble.New();
- arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
- array.setValues(arr1,m2d.getNumberOfCells(),2);
- array.setInfoOnComponent(0,"plkj [mm]");
- array.setInfoOnComponent(1,"pqqqss [mm]");
- f1.setArray(array);
- tmp=array.setValues(arr1,m2d.getNumberOfCells(),2);
- f1.setTime(3.14,2,7);
- f1.checkConsistencyLight();
- WriteFieldUsingAlreadyWrittenMesh(fileName,f1);
- f2=ReadFieldCell(fileName,f1.getMesh().getName(),-1,f1.getName(),2,7);
- self.assertTrue(f2.isEqual(f1,1e-12,1e-12));
+ TestWriteUMeshesRW1(self)
pass
pass
import unittest
import platform
from math import pi,e,sqrt
-from MEDLoaderDataForTest import MEDLoaderDataForTest
+from MEDLoaderDataForTest import MEDLoaderDataForTest,WriteInTmpDir
+from MEDLoaderDataForTest import TestWriteUMeshesRW1,TestMultiFieldShuffleRW1,GeneratePyfile7,GeneratePyfile10,GeneratePyfile12,GeneratePyfile13,GeneratePyfile14,GeneratePyfile18,GeneratePyfile19
from distutils.version import LooseVersion
import sys
os.close(self.stdoutOld)
class MEDLoaderTest3(unittest.TestCase):
+ @WriteInTmpDir
def testMEDMesh1(self):
+ GeneratePyfile18(self)
fileName="Pyfile18.med"
mname="ExampleOfMultiDimW"
medmesh=MEDFileMesh.New(fileName,mname)
self.assertTrue(m2_0.isEqual(m2_1,1e-12));
pass
+ @WriteInTmpDir
def testMEDMesh2(self):
+ GeneratePyfile10(self)
fileName="Pyfile10.med"
mname="3DToto"
outFileName="MEDFileMesh1.med"
pass
# this tests emulates MEDMEM ( Except that it works ! ) The permutation are NOT taken into account
+ @WriteInTmpDir
def testMEDMesh3(self):
outFileName="MEDFileMesh3.med"
c=DataArrayDouble.New()
pass
# this test is the testMEDMesh3 except that permutation is dealed here
+ @WriteInTmpDir
def testMEDMesh4(self):
outFileName="MEDFileMesh4.med"
c=DataArrayDouble.New()
pass
#testing persistence of retrieved arrays
+ @WriteInTmpDir
def testMEDMesh5(self):
+ GeneratePyfile18(self)
fileName="Pyfile18.med"
mname="ExampleOfMultiDimW"
medmesh=MEDFileUMesh.New(fileName,mname)
self.assertEqual(20,da1.getNumberOfTuples())
pass
- def testMEDMesh6(self):
+ def internalMEDMesh6(self):
outFileName="MEDFileMesh5.med"
m=MEDFileCMesh.New()
m.setTime(-1,-1,2.3)
m1.setTimeUnit(m.getTimeUnit())
m1.setDescription(m.getDescription())
self.assertTrue(m2.isEqual(m1,1e-12));
+
+ @WriteInTmpDir
+ def testMEDMesh6(self):
+ self.internalMEDMesh6()
pass
+ @WriteInTmpDir
def testMEDMesh7(self):
fileName="Pyfile24.med"
m2,m1,m0,f2,f1,f0,p,n2,n1,n0,fns,fids,grpns,famIdsPerGrp=MEDLoaderDataForTest.buildMultiLevelMesh_1()
pass
#emulation of pointe.med file.
+ @WriteInTmpDir
def testMEDField1(self):
+ TestMultiFieldShuffleRW1(self)
mm=MEDFileMesh.New("Pyfile17.med")
mm.write("Pyfile17_bis.med",2)
ff=MEDFileFieldMultiTS("Pyfile17.med")
pass
#profiles
+ @WriteInTmpDir
def testMEDField2(self):
+ GeneratePyfile19(self)
mm=MEDFileMesh.New("Pyfile19.med")
mm.write("Pyfile19_bis.med",2)
ff=MEDFileFieldMultiTS.New("Pyfile19.med")
pass
#gauss points
+ @WriteInTmpDir
def testMEDField3(self):
+ GeneratePyfile13(self)
mm=MEDFileMesh.New("Pyfile13.med")
mm.write("Pyfile13_bis.med",2)
ff=MEDFileFieldMultiTS.New("Pyfile13.med","MyFirstFieldOnGaussPoint")
pass
#gauss NE
+ @WriteInTmpDir
def testMEDField4(self):
+ GeneratePyfile14(self)
mm=MEDFileMesh.New("Pyfile14.med")
mm.write("Pyfile14_bis.med",2)
ff=MEDFileFieldMultiTS.New("Pyfile14.med","MyFieldOnGaussNE")
pass
# MEDField get/set on pointe.med
+ @WriteInTmpDir
def testMEDField5(self):
+ TestMultiFieldShuffleRW1(self)
ff=MEDFileField1TS.New("Pyfile17.med","MeasureOfMesh_Extruded",1,2)
f=ff.getFieldAtLevel(ON_CELLS,0)
f2=ReadFieldCell("Pyfile17.med","Extruded",0,"MeasureOfMesh_Extruded",1,2)
pass
# MEDField get/set on profiles nodes
+ @WriteInTmpDir
def testMEDField6(self):
+ GeneratePyfile7(self)
ff=MEDFileFieldMultiTS.New("Pyfile7.med","VectorFieldOnNodes")
its=ff.getIterations()
self.assertRaises(InterpKernelException,ff.getFieldAtLevel,ON_CELLS,its[0][0],its[0][1],0)# request on cell and it is not on cells
f=ff.getFieldAtLevel(ON_NODES,its[0][0],its[0][1],0)
f2=ReadFieldNode("Pyfile7.med",'3DSurfMesh_1',0,"VectorFieldOnNodes",its[0][0],its[0][1])
self.assertTrue(f.isEqual(f2,1e-12,1e-12))
+ GeneratePyfile19(self)
ff=MEDFileFieldMultiTS.New("Pyfile19.med","VFieldOnNodes")
its=ff.getIterations()
f=ff.getFieldAtLevel(ON_NODES,its[0][0],its[0][1],0)
pass
# MEDField get/set on profiles cells
+ @WriteInTmpDir
def testMEDField7(self):
+ GeneratePyfile12(self)
ff=MEDFileFieldMultiTS.New("Pyfile12.med","VectorFieldOnCells")
its=ff.getIterations()
f=ff.getFieldAtLevel(ON_CELLS,its[0][0],its[0][1],0)
pass
#first test of assignation. No profile and types sorted by type.
+ @WriteInTmpDir
def testMEDField8(self):
fname="Pyfile25.med"
f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
#
pass
+ @WriteInTmpDir
def testMEDFileData1(self):
fname="Pyfile29.med"
d=MEDFileData.New()
self.assertEqual([(-1,-1,0.0)],d2.getFields()["f21"].getTimeSteps())
pass
+ @WriteInTmpDir
def testMEDField9(self):
# first test field profile WR. Full type but with some type missing
fname="Pyfile30.med"
self.assertTrue(vals.isEqual(d,1e-14))
pass
+ @WriteInTmpDir
def testMEDField10(self):
fname="Pyfile31.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
pass
# idem testMEDField9 method except that here testing profile on nodes and not on cells.
+ @WriteInTmpDir
def testMEDField11(self):
fname="Pyfile32.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
self.assertTrue(vals.isEqual(d,1e-14))
pass
+ @WriteInTmpDir
def testMEDField12(self):
fname="Pyfile33.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
self.assertTrue(vals.isEqual(d,1e-14))
pass
+ @WriteInTmpDir
def testMEDField13(self):
fname="Pyfile34.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
self.assertTrue(vals.isEqual(d,1e-14))
pass
+ @WriteInTmpDir
def testMEDField14(self):
fname="Pyfile35.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
# Tricky test of the case of in a MED file containing a Field on GAUSS_NE is lying on a profile that is reality represents all the geom entities of a level.
# By default when using setFieldProfile method such profile is not created because it is not useful ! So here a trick is used to force MEDLoader to do that
# for the necessity of the test ! The idea is too create artificially a mesh having one more fictitious cell per type and to roll back right after !
+ @WriteInTmpDir
def testMEDField15(self):
fname="Pyfile36.med"
m0=MEDLoaderDataForTest.build2DMesh_1()
self.assertTrue(f1.getArray().isEqual(f2,1e-12))
pass
# Test for getFieldAtTopLevel method
+ @WriteInTmpDir
def testMEDField16(self):
fname="Pyfile37.med"
f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
pass
# Non regression test to check that globals are correctly appended on MEDFileFields::setFieldAtPos
+ @WriteInTmpDir
def testMEDField17(self):
fname="Pyfile39.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
pass
# Non regression test to check that globals are correctly appended on MEDFileFields::setFieldAtPos
+ @WriteInTmpDir
def testMEDField18(self):
fname="Pyfile40.med"
m1=MEDLoaderDataForTest.build2DMesh_1()
self.assertTrue(f4.getArray().isEqual(f1.getArray(),1e-12))
pass
+ @WriteInTmpDir
def testMEDFieldBug1(self):
+ GeneratePyfile13(self)
fname="Pyfile13.med"
d=MEDFileData.New(fname)
self.assertEqual(('Loc_MyFirstFieldOnGaussPoint_NORM_QUAD4_1','Loc_MyFirstFieldOnGaussPoint_NORM_TRI3_0','Loc_MyFirstFieldOnGaussPoint_NORM_TRI6_2'),d.getFields().getFieldAtPos(0).getLocs())
pass
+ @WriteInTmpDir
def testMEDMesh8(self):
m=MEDLoaderDataForTest.build1DMesh_1()
m.convertQuadraticCellsToLinear()
pass
# bug detected by gauthier
+ @WriteInTmpDir
def testMEDLoaderMEDLoaderNSReadFieldDoubleDataInMedFile(self):
fname="Pyfile41.med"
f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
self.assertTrue(f4.isEqual(f2,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testMEDLoaderMultiLevelCellField1(self):
fname="Pyfile42.med"
m2,m1,m0,f2,f1,f0,p,n2,n1,n0,fns,fids,grpns,famIdsPerGrp=MEDLoaderDataForTest.buildMultiLevelMesh_1()
self.assertEqual(ff2.getFieldSplitedByType(),[(0, [(0, (0, 4), '', '')]), (1, [(0, (4, 84), '', '')])])
pass
+ @WriteInTmpDir
def testFieldOnPflRetrieveOnMdimRelMax1(self):
fname="Pyfile43.med"
m2,m1,m0,f2,f1,f0,p,n2,n1,n0,fns,fids,grpns,famIdsPerGrp=MEDLoaderDataForTest.buildMultiLevelMesh_1()
pass
pass
+ @WriteInTmpDir
def testBuildInnerBoundaryAlongM1Group1(self):
fname="Pyfile44.med"
m=MEDCouplingCMesh.New()
mm.write(fname,2)
pass
+ @WriteInTmpDir
def testBuildInnerBoundaryAlongM1Group2(self):
fname="Pyfile45.med"
m=MEDCouplingCMesh.New()
mm.write(fname,2)
pass
+ @WriteInTmpDir
def testBuildInnerBoundaryAlongM1Group3(self):
""" Test buildInnerBoundaryAlongM1Group() with *non-connex* cracks """
fname = "Pyfile73.med"
self.assertTrue(delta.getMaxValue()[0]<1e-12)
mm.write(fname,2)
+ @WriteInTmpDir
def testBuildInnerBoundaryAlongM1Group4(self):
""" Test case where cells touch the M1 group on some nodes only and not on full edges (triangle mesh for ex)
"""
m_desc, _, _, _, _ = m_bis0.buildDescendingConnectivity()
m_bis0.checkDeepEquivalOnSameNodesWith(mfu.getMeshAtLevel(-1), 2, 9.9999999)
+ @WriteInTmpDir
def testBuildInnerBoundary5(self):
""" Full 3D test with tetras only. In this case a tri from the group is not duplicated because it is made only
of non duplicated nodes. The tri in question is hence not part of the final new "dup" group. """
m_bis0.checkDeepEquivalOnSameNodesWith(mfu.getMeshAtLevel(-1), 2, 9.9999999)
pass
+ @WriteInTmpDir
def testBasicConstructors(self):
+ GeneratePyfile18(self)
fname="Pyfile18.med"
+ TestWriteUMeshesRW1(self)
m=MEDFileMesh.New(fname)
m=MEDFileMesh.New(fname,"ExampleOfMultiDimW",-1,-1)
m=MEDFileMesh.New(fname)
m=MEDFileUMesh(fname,"ExampleOfMultiDimW",-1,-1)
m=MEDFileUMesh(fname)
m=MEDFileUMesh()
- self.testMEDMesh6()
+ self.internalMEDMesh6()
m=MEDFileCMesh("MEDFileMesh5.med")
m=MEDFileCMesh("MEDFileMesh5.med","myFirstCartMesh",-1,-1)
m=MEDFileCMesh()
pass
# This is a non regression test. When a field lies partially on a mesh but fully on one of its geometric type.
+ @WriteInTmpDir
def testBugSemiPartialField(self):
fname="Pyfile46.med"
m=MEDLoaderDataForTest.build2DMesh_3()
self.assertTrue(fread2.isEqual(f1,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testUnPolyze1(self):
fname="Pyfile47.med"
mm=MEDLoaderDataForTest.buildMLMeshUnPolyze(self)
mm.setFamilyFieldArr(-1,None)
pass
+ @WriteInTmpDir
def testUnPolyze2(self):
fname="Pyfile48.med"
mfd=MEDFileData.New()
mfd.write(fname,2)
pass
+ @WriteInTmpDir
def testGaussWriteOnPfl1(self):
fname="Pyfile49.med"
fname2="Pyfile50.med"
pass
# Testing profile on nodes when the profile is identity but not on all nodes.
+ @WriteInTmpDir
def testMEDFieldPflOnNode1(self):
fname="Pyfile51.med"
coo=DataArrayDouble([0.,0.,0.5,0.,1.,0.,0.,0.5,0.5,0.5,1.,0.5,0.,1.,0.5,1.,1.,1.],9,2)
pass
# Testing profile on nodes when the profile is identity but not on all nodes.
+ @WriteInTmpDir
def testMEDFieldPflOnCell1(self):
fname="Pyfile52.med"
coo=DataArrayDouble([0.,0.,0.5,0.,1.,0.,0.,0.5,0.5,0.5,1.,0.5,0.,1.,0.5,1.,1.,1.],9,2)
self.assertTrue(pfl1_r.isEqual(pfl1))
pass
+ @WriteInTmpDir
def testMEDFileUMeshZipCoords1(self):
m=MEDFileUMesh()
coo=DataArrayDouble(30) ; coo.iota(1.) ; coo.rearrange(3) ; coo.setInfoOnComponents(["aaa [b]","cc [dd]", "e [fff]"])
self.assertTrue(m.getMeshAtLevel(-2).getNodalConnectivityIndex().isEqual(DataArrayInt([0,2,4,6])))
pass
+ @WriteInTmpDir
def testMEDUMeshAddNodeGroup1(self):
fname="Pyfile53.med"
m=MEDFileUMesh()
self.assertTrue(mm.getGroupArr(-1,"grp0").isEqual(da))
pass
+ @WriteInTmpDir
def testMEDUMeshAddGroup1(self):
fname="Pyfile54.med"
m=MEDFileUMesh()
self.assertTrue(mm.getGroupArr(-1,"grp0").isEqual(da))
pass
+ @WriteInTmpDir
def testHeapMem1(self):
a=DataArrayInt() ; aa=a.getHeapMemorySize()
a.alloc(0,1)
self.assertIn(fff[1, -1].getHeapMemorySize(), list(range(738 - 50, 838 + 30 + 4 * strMulFac)))
pass
- def testCurveLinearMesh1(self):
+ def internalCurveLinearMesh1(self):
fname="Pyfile55.med"
mesh=MEDCouplingCurveLinearMesh();
mesh.setTime(2.3,4,5);
self.assertTrue(len(m1.getUnivName())!=0)
self.assertTrue(m1.getMesh().isEqual(mesh,1e-12))
pass
+
+ @WriteInTmpDir
+ def testCurveLinearMesh1(self):
+ self.internalCurveLinearMesh1()
+ @WriteInTmpDir
def testParameters1(self):
+ self.internalParameters1()
+
+ def internalParameters1(self):
fname="Pyfile56.med"
m=MEDCouplingCMesh() ; arr=DataArrayDouble([0.,1.2,3.5]) ; m.setCoords(arr,arr) ; m.setName("mesh")
mm=MEDFileCMesh() ; mm.setMesh(m)
self.assertAlmostEqual(data2.getParams()["B"][1,2].getValue(),567.89,13)
pass
+ @WriteInTmpDir
def testNamesOnCellAndNodesInMeshes1(self):
fname="Pyfile58.med"
fname2="Pyfile59.med"
self.assertTrue(cc.isEqual(ccCpy,1e-12)[0])
pass
+ @WriteInTmpDir
def testToExportInExamples1(self):
m=MEDCouplingCMesh()
arr=DataArrayDouble([0.,1.,2.,3.,4.])
splitOfM1[1].isEqual(DataArrayInt([4,5,7,9,14,15]))
pass
+ @WriteInTmpDir
def testBugCorrection1(self):
fs=MEDFileFields()
fs.resize(3)
self.assertEqual(3,len(fs))
pass
+ @WriteInTmpDir
def testCompareMEDFilesContainingOnlyFieldsOnCell1(self):
f1Name="Pyfile60.med"
f2Name="Pyfile61.med"
pass
pass
+ @WriteInTmpDir
def testNonRegBugNormalizeFamIdsMEDFile1(self):
m=MEDCouplingCMesh()
arr=DataArrayDouble([0.,1.,2.,3.,4.])
pass
pass
+ @WriteInTmpDir
def testNonRegressionMantis22212ChangeGrpName(self):
fileName="Pyfile62.med"
m2,m1,m0,f2,f1,f0,p,n2,n1,n0,fns,fids,grpns,famIdsPerGrp=MEDLoaderDataForTest.buildMultiLevelMesh_1()
pass
pass
+ @WriteInTmpDir
def testInt32InMEDFileFieldStar1(self):
+ self.internalInt32InMEDFileFieldStar1()
+
+ def internalInt32InMEDFileFieldStar1(self):
fname="Pyfile63.med"
f1=MEDLoaderDataForTest.buildVecFieldOnCells_1();
f1=f1.convertToIntField()
self.assertTrue(not fs.changeMeshNames([('3DSurfMesh_1','3DSurfMesh')]))
pass
+ @WriteInTmpDir
def testMEDFileFields1(self):
fname="Pyfile64.med"
f1=MEDCouplingFieldDouble(ON_NODES)
pass
# Multi time steps and multi fields management without Globals (profiles, locs) aspects
+ @WriteInTmpDir
def testMEDFileFields2(self):
fname="Pyfile65.med"
# to check that all is initialize
pass
# Multi time steps and multi fields management with Globals (profiles, locs) aspects
+ @WriteInTmpDir
def testMEDFileFields3(self):
fname="Pyfile66.med"
# building a mesh containing 4 tri3 + 5 quad4
fs0.write(fname,0)
pass
+ @WriteInTmpDir
def testSplitComponents1(self):
fname="Pyfile67.med"
# building a mesh containing 4 tri3 + 5 quad4
pass
pass
+ @WriteInTmpDir
def testMEDFileFieldConvertTo1(self):
fname="Pyfile68.med"
# building a mesh containing 4 tri3 + 5 quad4
self.assertEqual(ff1.getPfls(),('pfl_NORM_QUAD4',))
pass
+ @WriteInTmpDir
def testMEDFileFieldPartialLoading(self):
fname="Pyfile69.med"
#
self.assertEqual(ffs.getHeapMemorySize()-heap_memory_ref,20*70*8*2+70*8*2+50*8*2)
pass
+ @WriteInTmpDir
def testMEDFileMeshReadSelector1(self):
mrs=MEDFileMeshReadSelector()
self.assertTrue(mrs.isCellFamilyFieldReading() and mrs.isNodeFamilyFieldReading() and mrs.isCellNameFieldReading() and mrs.isNodeNameFieldReading() and mrs.isCellNumFieldReading() and mrs.isNodeNumFieldReading())
self.assertEqual(mrs.getCode(),63)
pass
+ @WriteInTmpDir
def testPartialReadOfMeshes(self):
fname="Pyfile70.med"
# building a mesh containing 4 tri3 + 5 quad4
# this test checks that setFieldProfile perform a check of the array length
# compared to the profile length. This test also checks that mesh attribute of field
# is not used by setFieldProfile (because across this test mesh is equal to None)
+ @WriteInTmpDir
def testCheckCompatibilityPfl1(self):
# building a mesh containing 4 tri3 + 5 quad4
tri=MEDCouplingUMesh("tri",2)
f1ts.setFieldProfile(f,mm,0,pfl)
pass
+ @WriteInTmpDir
def testWRMeshWithNoCells(self):
fname="Pyfile71.med"
a=DataArrayDouble(4) ; a.iota()
self.assertTrue(m.getFamilyFieldAtLevel(1).isEqual(DataArrayInt([-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,0,-1,-3,-3,-3])))
pass
+ @WriteInTmpDir
def testWRQPolyg1(self):
fname="Pyfile72.med"
m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4) ; m.allocateCells()
self.assertTrue(f_read.isEqual(f,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testLoadIfNecessaryOnFromScratchFields0(self):
"""
This test checks that a call to loadArraysIfNecessary works (does nothing) on field data structure whatever its level 1TS, MTS, Fields.
pass
pass
+ @WriteInTmpDir
def testField1TSSetFieldNoProfileSBTPerGeoTypes(self):
""" This test is very important, because the same mechanism is used by the MEDReader to generate a field on all the mesh without any processing and memory.
"""
self.assertEqual(f1ts.getFieldSplitedByType(),[(0,[(0,(0,4),'','')]),(3,[(0,(4,6),'','')]),(4,[(0,(6,9),'','')]),(14,[(0,(9,15),'','')]),(15,[(0,(15,20),'','')]),(16,[(0,(20,24),'','')])])
self.assertTrue(f1ts.getUndergroundDataArray().isEqual(DataArrayDouble([0,1,2,3,0,1,0,1,2,0,1,2,3,4,5,0,1,2,3,4,0,1,2,3]),1e-12))
pass
-
+
+ @WriteInTmpDir
def testMEDFileUMeshSetName(self):
""" This test is a small but important one for MEDReader in sauv mode. When .sauv file is loaded the conversion is performed in memory and a preparation is done then.
This preparation makes access to internal MEDCouplingMesh pointers whose name must be updated.
self.assertEqual(mm.getMeshAtLevel(0).getName(),"abc")
pass
+ @WriteInTmpDir
def testMEDFileFieldsUnloadArraysWithoutDataLoss1(self):
fileName="Pyfile80.med"
m=MEDCouplingCMesh() ; m.setName("cmesh")
self.assertTrue(f1ts.getUndergroundDataArray().isEqual(DataArrayDouble([0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15.,16.,17.,18.,19.,20.,21.,22.,23.,24.]),1e-12))
pass
+ @WriteInTmpDir
def testMEDFileUMeshLoadPart1(self):
""" This method tests MEDFileUMesh.LoadPart that loads only a part of a specified mesh in a MED file. The part is specified using a slice of cell ids. Only nodes on which cells lies are loaded to reduce at most the amount of
memory of the returned instance.
self.assertTrue(mm2.getNameFieldAtLevel(1).isEqual(namesNodes[:18]))
pass
+ @WriteInTmpDir
def testMEDFileFieldsLoadPart1(self):
"""This method tests partial loading on fields on CELL. It is the same principle than those in testMEDFileUMeshLoadPart1.
"""
self.assertTrue(fs[1][0].getUndergroundDataArray().isEqual(arr,1e-12))
pass
+ @WriteInTmpDir
def testMEDFileWithoutCells1(self):
fileName="Pyfile83.med"
coo=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0)])
self.assertTrue(mm.getCoords().isEqual(coo,1e-12))
pass
+ @WriteInTmpDir
def testZipCoordsWithLoadPart1(self):
""" Test close to Pyfile82.med except that here zipCoords on MEDFileUMesh is invoked here to see if the PartDef is correctly updated.
"""
self.assertTrue(fs[1][0].getUndergroundDataArray().isEqual(arr,1e-12))
pass
+ @WriteInTmpDir
def testMEDFileCMeshSetGroupsAtLevel(self):
""" Non regression test to check that setGroupsAtLevel is available with MEDFileCMesh.
"""
self.assertTrue(mm.getFamilyFieldAtLevel(0).isEqual(DataArrayInt([-1,-2,-1,-2,-2,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1])))
pass
+ @WriteInTmpDir
def testMEDFileUMeshBuildExtrudedMesh1(self):
""" New functionality of MEDFileUMesh.buildExtrudedMesh."""
fileName="Pyfile85.med"
pass
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @WriteInTmpDir
def testMEDFileUMeshPickeling1(self):
outFileName="Pyfile86.med"
c=DataArrayDouble([-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ],9,2)
self.assertEqual(mm2.getAxisType(),AX_CYL)
pass
+ @WriteInTmpDir
def testMEDFileFieldsLoadSpecificEntities1(self):
nbNodes=11
fieldName="myField"
pass
pass
+ @WriteInTmpDir
def testMEDFileLotsOfTSRW1(self):
nbNodes=11
fieldName="myField"
self.assertEqual(fs2[0].getTimeSteps(), [(i, 0, float(i)) for i in range(nbPdt)])
pass
+ @WriteInTmpDir
def testMEDFileMeshRearrangeFamIds1(self):
""" Test for bug EDF10720. The aim of this test is the call of MEDFileMesh.rearrangeFamilies."""
fileName="Pyfile89.med"
self.assertEqual(mm.getFamilyId(elt),eltId)
pass
+ @WriteInTmpDir
def testNonRegrCMeshSetFieldPfl1(self):
""" Non regression test. For structured mesh, push a false partial field in MEDFileField1TS using setFieldProfile."""
ff=MEDFileField1TS()
self.assertTrue(field.isEqual(field2,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testMEDFileUMeshLinearToQuadraticAndRev1(self):
meshName="mesh"
fileName="Pyfile90.med"
self.assertTrue(mm.isEqual(mmOut2,1e-12)[0])
pass
+ @WriteInTmpDir
def testMEDFileMeshAddGroup1(self):
m=MEDCouplingCMesh()
arrX=DataArrayDouble(9) ; arrX.iota()
self.assertTrue(mm.getGroupArr(1,"%s_node"%grp.getName()).isEqual(grpExp))
pass
+ @WriteInTmpDir
def testMEDFileJoint1(self):
fileName="Pyfile92.med"
coo=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0)])
jointsR.destroyJointAtPos(0)
pass
+ @WriteInTmpDir
def testMEDFileJoint2(self):
fileNameWr="Pyfile93.med"
coo=DataArrayDouble([(0,0,0),(1,0,0),(2,0,0)])
self.assertTrue( jointR2.isEqual( two_joint ))
pass
+ @WriteInTmpDir
def testMEDFileJoint1(self):
node_correspond=MEDFileJointCorrespondence(DataArrayInt([1,2,3,4,5,6,7,8]))
cell_correspond=MEDFileJointCorrespondence(DataArrayInt([9,10,11,12]),NORM_TRI3,NORM_TRI3)
pass
@unittest.skipUnless('linux'==platform.system().lower(),"stderr redirection not ported on Windows ?")
+ @WriteInTmpDir
def testMEDFileSafeCall0(self):
""" EDF11242 : check status of MED file calls to detect problems immediately. Sorry this test generates awful messages !"""
fname="Pyfile94.med"
#
pass
+ @WriteInTmpDir
def testUnivStatus1(self):
""" Non regression test to check the effectiveness of univ write status."""
fname="Pyfile95.med"
self.assertTrue(mm.getUnivName()!="")
pass
+ @WriteInTmpDir
def testEmptyMesh(self):
""" MEDLoader should be able to consistently write and read an empty mesh (coords array
with 0 tuples """
self.assertTrue(mesh.isEqual(mm2,1e-12)[0])
pass
+ @WriteInTmpDir
def testMEDFileEquivalence1(self):
""" First check of equivalence implementation in MEDFileMesh"""
fileName="Pyfile97.med"
self.assertTrue(mm.isEqual(mm3,1e-12)[0])
pass
+ @WriteInTmpDir
def testMEDFileForFamiliesPlayer1(self):
"""Non regression bug EDF11911. For serial killers using same family name to store both cells and nodes ! Only sky is the limit."""
fileName="Pyfile98.med"
self.assertEqual(mm2.getFamiliesIdsOnGroup("RID"),(-4,3))# <- very important too !
pass
+ @WriteInTmpDir
def testCartesianizer1(self):
""" This test is advanced to be sure that no unnecessary copies had been made during cartesianization process. """
# UMesh non cart
self.assertTrue(mm.getHiddenCppPointer()==mm2.getHiddenCppPointer()) # optimization
pass
+ @WriteInTmpDir
def testCheckCoherency(self):
m2 = MEDCouplingUMesh("2d", 2)
m2.setCoords(DataArrayDouble([(0.0, 1.0)] * 4, 4,2)) # whatever
mum.setNameFieldAtLevel(-1, arr); arr.reAlloc(35);
self.assertRaises(InterpKernelException, mum.checkConsistency)
+ @WriteInTmpDir
def testCheckSMESHConsistency(self):
m2 = MEDCouplingUMesh("2d", 2)
m2.setCoords(DataArrayDouble([(0.0, 1.0)] * 4, 4,2)) # whatever
mum.checkSMESHConsistency()
pass
+ @WriteInTmpDir
def testClearNodeAndCellNumbers(self):
m2 = MEDCouplingUMesh("2d", 2)
m2.setCoords(DataArrayDouble([(0.0, 1.0)] * 4, 4,2)) # whatever
mum.checkSMESHConsistency()
pass
+ @WriteInTmpDir
def testCMeshSetFamilyFieldArrNull(self):
meshName="mesh"
fname="Pyfile99.med"
self.assertTrue(mm2.getFamilyFieldAtLevel(0) is None)
self.assertTrue(mm2.getFamilyFieldAtLevel(1) is None)
pass
-
+
+ @WriteInTmpDir
def testAppendFieldProfileOnIntField(self):
fname="Pyfile100.med"
arrX=DataArrayDouble([0,1,2,3])
self.assertEqual(ftest2.getMesh().getNumberOfCells(),len(arr))
pass
+ @WriteInTmpDir
def testMEDFileFieldEasyField1(self):
"""Check for all spatial discretization of field (cells,nodes,elno,gauss) for double field that all is OK. Here no profile and only top level is considered."""
## Basic test on cells on top level
self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,1e-12))
pass
+ @WriteInTmpDir
def testMEDFileFieldEasyField2(self):
"""Same thantestMEDFileFieldEasyField1 except that here intfields are considered.
Check for all spatial discretization of field (cells,nodes,elno,gauss) for int field that all is OK. Here no profile and only top level is considered."""
self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,0))
pass
+ @WriteInTmpDir
def testMEDFileFieldEasyField3(self):
"""Here a multi level mesh. And field on cells lying on different level of this mesh. Show how "field" method deal with that. Here on field double are considered."""
fname="Pyfile103.med"
self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,1e-12))
pass
+ @WriteInTmpDir
def testMEDFileFieldEasyField4(self):
""" Same than testMEDFileFieldEasyField3 but with integers"""
fname="Pyfile104.med"
self.assertTrue(f4.isEqual(f1ts.field(mm),1e-12,0))
pass
+ @WriteInTmpDir
def testMEDFileFieldEasyField5(self):
"""More and more difficult now look at how profiles are managed by "field" method."""
fname="Pyfile105.med"
self.assertTrue(f.isEqual(f1ts.field(mm),1e-12,1e-12))
pass
+ @WriteInTmpDir
def testExtractPart1(self):
coo=DataArrayDouble([(0,0),(1,0),(2,0),(3,0),(4,0),(0,1),(1,1),(2,1),(3,1),(4,1),(0,2),(1,2),(2,2),(3,2),(4,2)])
meshName="mesh"
pass
pass
+ @WriteInTmpDir
def testSymmetryPlusAggregationMFD1(self):
""" Testing of MEDFileData::Aggregate and MEDFileUMesh::Aggregate and MEDFileUMesh::getAllDistributionOfType """
fname1="Pyfile106_1.med"
CheckMFD(self,mfd)
pass
+ @WriteInTmpDir
def testExtrudedMesh1(self):
fname="Pyfile107.med"
arrX=DataArrayDouble([0,1,2,3]) ; arrY=DataArrayDouble([0,1,2,3,4]) ; arrZ=DataArrayDouble([0,1,2,3,4,5])
pass
@unittest.skipUnless(LooseVersion(MEDFileVersionStr())>=LooseVersion('3.2.1'),"This test requires at least MEDFile version 3.2.1")
+ @WriteInTmpDir
def testWriteInto30(self):
fname="Pyfile108.med"
fname2="Pyfile109.med"
pass
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @WriteInTmpDir
def testPickelizationOfMEDFileObjects1(self):
fname="Pyfile110.med"
coo=DataArrayDouble([0.,0.,0.5,0.,1.,0.,0.,0.5,0.5,0.5,1.,0.5,0.,1.,0.5,1.,1.,1.],9,2)
pass
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @WriteInTmpDir
def testPickelizationOfMEDFileObjects2(self):
# CMesh
- self.testMEDMesh6() # generates MEDFileMesh5.med file
+ self.internalMEDMesh6() # generates MEDFileMesh5.med file
mm=MEDFileMesh.New("MEDFileMesh5.med")
self.assertTrue(isinstance(mm,MEDFileCMesh))
st=pickle.dumps(mm,pickle.HIGHEST_PROTOCOL)
self.assertTrue(isinstance(mm2,MEDFileCMesh))
self.assertTrue(mm.getMesh().isEqual(mm2.getMesh(),1e-12))
# CurveLinear
- self.testCurveLinearMesh1() # generates Pyfile55.med
+ self.internalCurveLinearMesh1() # generates Pyfile55.med
mm=MEDFileMesh.New("Pyfile55.med")
self.assertTrue(isinstance(mm,MEDFileCurveLinearMesh))
st=pickle.dumps(mm,pickle.HIGHEST_PROTOCOL)
mm3=pickle.loads(st)
self.assertTrue(isinstance(mm3,MEDFileCurveLinearMesh))
self.assertTrue(mm.getMesh().isEqual(mm3.getMesh(),1e-12))
- self.testInt32InMEDFileFieldStar1()# generates Pyfile63.med
+ self.internalInt32InMEDFileFieldStar1()# generates Pyfile63.med
# MEDFileIntFieldMultiTS
fs4=MEDFileFields("Pyfile63.med")
ms4=MEDFileMeshes("Pyfile63.med")
self.assertTrue(isinstance(f1ts6,MEDFileIntField1TS))
self.assertTrue(f1ts6.field(ms4[0]).isEqual((fs4[0][0]).field(ms4[0]),1e-12,0))
# MEDFileParameters
- self.testParameters1()# generates Pyfile56.med
+ self.internalParameters1()# generates Pyfile56.med
params=MEDFileParameters("Pyfile56.med")
st=pickle.dumps(params,pickle.HIGHEST_PROTOCOL)
params7=pickle.loads(st)
pass
pass
+ @WriteInTmpDir
def testGlobalNumOnNodes1(self):
"""Test global number on nodes here. Used by partitionners."""
fname="Pyfile112.med"
self.assertTrue(mm.isEqual(mm2,1e-12)[0])
pass
+ @WriteInTmpDir
def testPartialReadOfEntities1(self):
"""Test for advanced API on read to speed up read phase for users with "huge" number of time steps (more than 10 000)."""
fname="Pyfile113.med"
self.assertTrue(ff1.field(mm).isEqual(f3,1e-12,1e-12))
pass
+ @WriteInTmpDir
def testFloat32InMEDFileFieldStar1(self):
"""Like testInt32InMEDFileFieldStar1 but with float32 :)"""
fname="Pyfile114.med"
self.assertTrue(not fs.changeMeshNames([('3DSurfMesh_1','3DSurfMesh')]))
pass
+ @WriteInTmpDir
def testPenta18_1(self):
"""EDF8478 : Test of read/write of penta18"""
fname="Pyfile115.med"
self.assertEqual(f3.getMesh().getTypeOfCell(0),NORM_PENTA18)
pass
+ @WriteInTmpDir
def testFieldsLinearToQuadratic(self):
fname="Pyfile117.med"
arr=DataArrayDouble([0,1])
self.assertTrue(fToTest.getArray().isEqual(2*dataExp2,1e-12))
pass
+ @WriteInTmpDir
def testFieldsLinearToQuadratic2(self):
"""Same than testFieldsLinearToQuadratic but with profile on NODES"""
+ GeneratePyfile18(self)
fname="Pyfile118.med"
arr=DataArrayDouble([0,1])
m=MEDCouplingCMesh();
pass
+ @WriteInTmpDir
def testSetFieldProfileFlatly1(self):
""" Sometimes for downstream code fan of profiles, profile are requested unconditionally. setFieldProfile try to reduce at most profile usage. So setFieldProfileFlatly has been added to always create
a profile."""
self.assertTrue(f1ts.getProfile("pfl_NORM_QUAD4").isIota(81))
pass
+ @WriteInTmpDir
def testRmGroupAtSpeLevelAndMultiLevGrpCreation(self):
""" Here multi level groups are created"""
arr=DataArrayDouble(11) ; arr.iota()
self.assertTrue(mm.getGroupArr(-1,"grp2").isEqual(grp2))
pass
+ @WriteInTmpDir
def testYutaka(self):
""" Thank you to Yutaka Nishizawa for having report this bug. At level -1, adding a first group on all entities leads to a group lying on family 0...
Then rearrange method removes unused entites by putting 0 on them -> Previously group has been modified by rearrange. Should not !"""
pass
pass
- def tessContxtMger1TS(self):
+ @WriteInTmpDir
+ def testContxtMger1TS(self):
fname="Pyfile119.med"
coo=DataArrayDouble(1000) ; coo.iota()
m=MEDCouplingUMesh.Build0DMeshFromCoords(coo)
from MEDLoader import *
import unittest
from math import pi,e,sqrt
+from MEDLoaderDataForTest import WriteInTmpDir
class MEDLoaderTest4(unittest.TestCase):
"""
Test series to emulate the future MEDReader plugin for PARAVIS.
"""
+ @WriteInTmpDir
def test1(self):
"""
This test is the most simple one. One time serie of one field with only cell fields with no profiles.
pass
pass
+ @WriteInTmpDir
def test2(self):
"""
One time serie of one field with cell and node discretization in the same field with no profiles.
pass
pass
+ @WriteInTmpDir
def test3(self):
""" This test is more advanced a same field is defined on CELLS for time steps 0, 2 and 4, and on NODES for time steps 1 and 3.
So two time step series on the same field. No profile here neither on cells nor on nodes.
pass
pass
+ @WriteInTmpDir
def test4(self):
""" This test defines 3 fields on nodes on the same mesh. All of these fields have no profile.
"""
pass
pass
+ @WriteInTmpDir
def test5(self):
""" This test plays with profiles both cell profiles and node profiles. Two first fields (resp on cells and on nodes) lie on the same mesh support whereas the third
mesh lies on a different mesh.
pass
pass
+ @WriteInTmpDir
def test6(self):
""" This test plays with cartesian mesh and profiles. When a sub cartesian mesh can also be considered as a cartesian mesh it is done.
"""
pass
pass
+ @WriteInTmpDir
def test7(self):
""" This test plays with curvilinear mesh and profiles. When a sub curvilinear mesh can also be considered as a cartesian mesh it is done.
This test is very similar to the test6.
pass
pass
+ @WriteInTmpDir
def test8(self):
""" This test plays with with gauss fields with no profiles.
"""
#
pass
+ @WriteInTmpDir
def test9(self):
""" This test plays with with gauss fields with profiles.
"""
pass
pass
+ @WriteInTmpDir
def test10(self):
""" This test plays with fields only on nodes containing profiles.
"""
pass
pass
+ @WriteInTmpDir
def test11(self):
""" This test is the ultimate test for the profiles with gauss points. It tests that even if there is non contiguous parts in definition of gauss points, it works !
WARNING here, as no other discretizations exists, the priority is given to the field -> the mesh is renumbered to accelerate the build of array of field.
pass
pass
+ @WriteInTmpDir
def test12(self):
""" This test is the second ultimate test for the profiles with gauss points.
This test is close to test11 but here a 2nd field on cells without profile. So here the mesh is expected to be the same than m.
self.assertTrue(v.isEqual(vExp,1e-12))
pass
+ @WriteInTmpDir
def test13(self):
""" Testing polyhedrons mixed with hexa8"""
fname="ForMEDReader13.med"
pass
pass
+ @WriteInTmpDir
def test14(self):
""" Testing only polyhedrons"""
fname="ForMEDReader14.med"
pass
pass
+ @WriteInTmpDir
def test15(self):
"""
"ForMEDReader15.med" file has a spaceDim 3 mesh "mesh" (it is important !)
self.assertTrue(mml2.retrieveGlobalNodeIdsIfAny() is None)
pass
+ @WriteInTmpDir
def test16(self):
""" Here 2 meshes "mesh1" and "mesh2" and 4 fields (no profiles here) :
- "zeField1_0" (CELLS) and "zeField2_0" (NODES) on "mesh1"
self.assertEqual(len(allFMTSLeavesPerCommonSupport2[0][0]),2)
pass
+ @WriteInTmpDir
def test17(self):
""" First test on GAUSS_NE (Elno). Here no Profiles.
2 times steps.
pass
pass
+ @WriteInTmpDir
def test18(self):
""" First test on GAUSS_PT. Here no Profiles. 2 times steps.
"""
pass
pass
+ @WriteInTmpDir
def test19(self):
"""
This test is a simple non profile CELL field but lying on cells of dimension -1 (not 0 as "usual").
pass
pass
+ @WriteInTmpDir
def test20(self):
""" This test works with groups/families on cells AND on nodes. Here 4 fields each on same time steps (2).
1 field on CELLS without profile, 1 field on CELLS with profile, 1 field on NODES without profile, 1 field on NODES with profile.
pass
pass
+ @WriteInTmpDir
def test21(self):
""" Here the created MED file contains only a mesh. The aim here is to test capability of MEDReader to support no fields.
This test checks nothing but write a MED file to be used by MEDReader tests.
mm.write(fname,2)
pass
+ @WriteInTmpDir
def test22(self):
""" Use case where a field on nodes (ANodeField) on a mesh defined both in meshdim 2 and meshdim 1.
The only possible geometrical support that suits the field is those with meshdim equal to 1 (-1 in relative).
self.assertTrue(v.isEqual(vExp,1e-12))
pass
+ @WriteInTmpDir
def test23(self):
""" Non regression test 2219 of modes. Idem than test22 except that here the node field is on profile.
"""
self.assertTrue(v.isEqual(vExp,1e-12))
pass
+ @WriteInTmpDir
def test24(self):
""" Non regression test for cartesian mesh whose the 3rd direction has only one node. It a false 3D mesh.
"""
pass
pass
+ @WriteInTmpDir
def test25(self):
""" A tricky test that reproduces an invalid behaviour
Here a same field is defined both on CELLS and GAUSS_PT, with a profile for each.
del fff0
pass
+ @WriteInTmpDir
def test26(self):
""" Test focused on field on nodes (here f0Node and f1Node) lying on a profile of nodes that do not match perfectly a sub set of cells of its underlying mesh. See bug EDF 2405 and 2177.
For this type of fields the support will contain only vertices.
self.assertTrue(v.isEqual(vExp,1e-12)) # <- THE test is here !!!
pass
+ @WriteInTmpDir
def test27(self):
""" This test defines 2 fields f0 and f1 on nodes lying on an unstructured mesh with no cells.
f0 is a field on all nodes. f1 is a partial field on nodes.
self.assertTrue(v.isEqual(vExp,1e-12))
pass
+ @WriteInTmpDir
def test28(self):
""" This test defines 2 fields f0,f1,f2,f3 lying on an unstructured mesh with cells including NORM_POINT1.
Both f0 and f1 are on NODES and f2 and f3 are on cells. f1 and f2 share the same support.
self.assertTrue(v.isEqual(vExp,1e-12))
pass
+ @WriteInTmpDir
def test29(self):
""" This test focused on HEXA27 cell for which the MED numbering is not equal to the VTK numbering. So here the HEXA27 cell is those in MED file documentation (reference element).
"""
ffGauss=allFMTSLeavesPerCommonSupport1[0][0][1][0]
pass
+ @WriteInTmpDir
def test30(self):
""" This test is focused on cartesian meshes. Here the cartesian mesh "CartMesh" has a field on HEXA8 (FieldOnCells) and a field on QUAD4 (FieldOnFaces).
So the first one (FieldOnCells) lies on a cartesian mesh whereas the second one lies on unstructured one.
pass
pass
+ @WriteInTmpDir
def test31(self):
"""non regression test of EDF 7972"""
fname="ForMEDReader31.med"
pass
pass
+ @WriteInTmpDir
def test32(self):
""" This test is close to test30 except that here the profiles on dim-1 of structured mesh is considered here."""
fname="ForMEDReader32.med"
pass
pass
+ @WriteInTmpDir
def test33(self):
"""Non regression test concerning polygons. Thanks Adrien. This bug can't be shown by simply reading an displaying a MED file containing only polygons. A filter must be applied on it to show it. The a2 array was responsible of that bug."""
fname="ForMEDReader33.med"
pass
pass
+ @WriteInTmpDir
def test34(self):
""" This test is the thirs ultimate test (base on test12) for the profiles with gauss points.
This test highlight the hidden imp linked to bug #8655.
pass
pass
+ @WriteInTmpDir
def test35(self):
""" Emulate MEDReader in // mode context. Here a Simple mesh having more nodes than really needed. This test focuses on that point particularly."""
fname="ForMEDReader35.med"
self.assertTrue(v.isEqual(vExp,1e-12))
pass
+ @WriteInTmpDir
def test36(self):
"""Bug EDF11027. Here mesh at level 0 (TRI3) does not fetch all the nodes. Level -1 (SEG2) does not fetch all the nodes neither. But all TRI3 + all SEG2 fetch all nodes.
aaa field on GAUSSPoints lying only on TRI3 share the same support than profile node field ccc.
pass
pass
+ @WriteInTmpDir
def test37(self):
""" Introduction of non cartesian meshes management. Here cylindrical."""
fname="ForMEDReader37.med"
pass
pass
+ @WriteInTmpDir
def test38(self):
""" Introduction of non cartesian meshes management. Here spherical."""
fname="ForMEDReader38.med"
pass
pass
+ @WriteInTmpDir
def test39(self):
"""Idem test37, test38, test39, test40 except that here it is an unstructured mesh."""
fname="ForMEDReader39.med"
self.assertTrue(v.isEqual(DataArrayDouble([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3]),1e-14))
pass
+ @WriteInTmpDir
def test40(self):
"""Idem test37, test38, test39, test40 except that here it is a CL mesh."""
fname="ForMEDReader40.med"
self.assertTrue(v.isEqual(DataArrayDouble([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3]),1e-14))
pass
+ @WriteInTmpDir
def test41(self):
"""This test focused on bug revealed with // load of multi nodes field with no profile. The error was the first node field (dataarray partdef) change the partdef for the others ! """
fname="ForMEDReader41.med"
assert(v1.isEqual(DataArrayDouble([101,102,103,104,106,107,108,109,111,112,113,114,116,117,118,119,121,122,123,124]),1e-12))
pass
+ @WriteInTmpDir
def test42(self):
""" EDF14869 - SEG4 """
fname="ForMEDReader42.med"
from MEDLoader import *
import unittest, os
-from MEDLoaderDataForTest import MEDLoaderDataForTest
+from MEDLoaderDataForTest import MEDLoaderDataForTest,WriteInTmpDir
class SauvLoaderTest(unittest.TestCase):
raise Exception("SauvLoaderTest: Unable to get resource directory")
return pth
pass
-
+
+ @WriteInTmpDir
def testSauv2Med(self):
# get a file containing all types of readable piles
sauvFile = os.path.join( self.__getResourcesDirectory(),"allPillesTest.sauv")
os.remove( medFile )
pass
+ @WriteInTmpDir
def testMed2Sauv(self):
# read pointe.med
medFile = os.path.join(self.__getResourcesDirectory(),"pointe.med")
os.remove( sauvFile )
pass
+ @WriteInTmpDir
def testSauv2MedWONodeFamilyNum(self):
"""test for issue 0021673: [CEA 566] Bug in SauvWriter when writing meshes
having no family ids on nodes."""
os.remove( medFile )
pass
+ @WriteInTmpDir
def testSauv2MedOnPipe1D(self):
"""test for issue 0021745: [CEA 600] Some missing groups in mesh after reading a SAUV file with SauvReader."""
sauvFile="Test_sauve_1D.sauv"
os.remove(sauvFile)
pass
+ @WriteInTmpDir
def testSauvReaderOnBigMesh(self):
# create a box with 1 million cells
mesh_dim = 3
pass
@unittest.skipUnless(HasXDR(),"requires XDR")
+ @WriteInTmpDir
def testMissingGroups(self):
"""test for issue 0021749: [CEA 601] Some missing groups in mesh after reading a SAUV file with SauvReader."""
sauvFile = os.path.join(self.__getResourcesDirectory(),"BDC-714.sauv")
pass
@unittest.skipUnless(HasXDR(),"requires XDR")
+ @WriteInTmpDir
def testReadSauvXDRCastem17(self):
"""test reading Castem17 XDR sauv with 'ENREGISTREMENT DE TYPE 8'"""
sauvFile = os.path.join(self.__getResourcesDirectory(),"castem17_result_xdr.sauv")
self.assertTrue( fieldArray.isEqualWithoutConsideringStr( expectedArray, 1e-12 ))
pass
+ @WriteInTmpDir
def testReadSauvAsciiCastem17(self):
"""test reading Castem17 ascii sauv with 'ENREGISTREMENT DE TYPE 8'"""
sauvFile = os.path.join(self.__getResourcesDirectory(),"castem17_result_ascii.sauv")
self.assertTrue( fieldArray.isEqualWithoutConsideringStr( expectedArray, 1e-12 ))
pass
+ @WriteInTmpDir
def testGaussPt(self):
"""issue 22321: [CEA 933] Bug when reading a sauve file containing field on Gauss Pt.
The problem was that a field ON_GAUSS_PT was created but no Gauss Localization
os.remove( sauvFile )
pass
+ @WriteInTmpDir
def testSauvWriterGroupWithOneFamily(self):
"""
This test checks an option for sauv writing. It is requested here to copy a group from a family if a group is lying on a single family.
from MEDLoader import *
import os
+import tempfile,os,shutil
+
+zeDir = tempfile.mkdtemp()
+os.chdir(zeDir)
from MEDLoaderDataForTest import MEDLoaderDataForTest
m = MEDLoaderDataForTest.build1DMesh_1()
field=ff1TS.getFieldAtLevel(ON_CELLS,level)
field=ff1TS.getFieldOnMeshAtLevel(ON_CELLS,level,mm)
#! [UG_RWFieldAdv_5]
+shutil.rmtree(zeDir)
ADD_EXECUTABLE(TestMEDLoader ${TestMEDLoader_SOURCES})
TARGET_LINK_LIBRARIES(TestMEDLoader medloader InterpKernelTestUtils ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
-ADD_TEST(TestMEDLoader TestMEDLoader)
-SET_TESTS_PROPERTIES(TestMEDLoader PROPERTIES ENVIRONMENT "${tests_env}")
ADD_EXECUTABLE(TestSauvLoader ${TestSauvLoader_SOURCES})
TARGET_LINK_LIBRARIES(TestSauvLoader medloader InterpKernelTestUtils ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
-ADD_TEST(TestSauvLoader TestSauvLoader)
-SET_TESTS_PROPERTIES(TestSauvLoader PROPERTIES ENVIRONMENT "${tests_env}")
INSTALL(TARGETS TestMEDLoader TestSauvLoader DESTINATION ${MEDCOUPLING_INSTALL_BINS})
+SET(BASE_TESTS TestMEDLoader TestSauvLoader)
+
+FOREACH(test ${BASE_TESTS})
+ ADD_TEST(NAME ${test}
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/MCTestLauncher.py ${CMAKE_CURRENT_BINARY_DIR}/${test})
+ SET_TESTS_PROPERTIES(${test} PROPERTIES ENVIRONMENT "${tests_env}")
+ENDFOREACH()
+
# Application tests
SET(TEST_INSTALL_DIRECTORY ${MEDCOUPLING_INSTALL_TESTS}/MEDLoader)
INSTALL(TARGETS TestMEDLoader TestSauvLoader DESTINATION ${TEST_INSTALL_DIRECTORY})
+INSTALL(FILES MCTestLauncher.py DESTINATION ${TEST_INSTALL_DIRECTORY})
INSTALL(FILES CTestTestfileInstall.cmake
DESTINATION ${TEST_INSTALL_DIRECTORY}
FOREACH(tfile ${TEST_NAMES})
SET(TEST_NAME ${COMPONENT_NAME}_${tfile})
- ADD_TEST(${TEST_NAME} ${tfile})
+ ADD_TEST(${TEST_NAME} python MCTestLauncher.py ${tfile})
SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
LABELS "${COMPONENT_NAME}"
TIMEOUT ${TIMEOUT}
--- /dev/null
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2019 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, 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
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author : Anthony Geay (EDF R&D)
+
+import subprocess as sp
+import sys
+import tempfile,os
+
+full_path = os.path.abspath(sys.argv[1])
+with tempfile.TemporaryDirectory() as tmpdirname:
+ os.chdir(tmpdirname)
+ p = sp.check_output(full_path)
+ print(p.decode())
+ pass
INSTALL(FILES ${MEDPARTITIONERTest_HEADERS_HXX} DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
-ADD_TEST(TestMEDPARTITIONER TestMEDPARTITIONER)
+ADD_TEST(TestMEDPARTITIONER ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../../MEDLoader/Test/MCTestLauncher.py ${CMAKE_CURRENT_BINARY_DIR}/TestMEDPARTITIONER)
SET_TESTS_PROPERTIES(TestMEDPARTITIONER PROPERTIES ENVIRONMENT "${tests_env}")
# Application tests
FOREACH(tfile ${TEST_NAMES})
SET(TEST_NAME ${COMPONENT_NAME}_${tfile})
- ADD_TEST(${TEST_NAME} ${tfile})
+ ADD_TEST(${TEST_NAME} python ../MEDLoader/MCTestLauncher.py ${tfile})
SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
LABELS "${COMPONENT_NAME}"
TIMEOUT ${TIMEOUT}
from MEDPartitioner import *
from MEDLoader import *
import unittest
-from MEDLoaderDataForTest import MEDLoaderDataForTest
+from MEDLoaderDataForTest import MEDLoaderDataForTest,WriteInTmpDir
class MEDPartitionerTest(unittest.TestCase):
+ @WriteInTmpDir
def testPartition(self):
fname="PyPartitionTest.med"
data=MEDLoaderDataForTest.buildACompleteMEDDataStructureWithFieldsOnCells_1()
m1d=data1.getMeshes().getMeshAtPos(0)
m2d=data2.getMeshes().getMeshAtPos(0)
self.assertTrue(m1d.isEqual(m2d,1e-12))
- pass
+ pass
+ @WriteInTmpDir
def testPartitionGraph(self):
data=MEDLoaderDataForTest.buildACompleteMEDDataStructureWithFieldsOnCells_1()
m=data.getMeshes().getMeshAtPos(0)
tool=MEDPartitioner(data,graph)
data2=tool.getMEDFileData()
self.assertEqual( 2, data2.getMeshes().getNumberOfMeshes() )
- pass
+ pass
+ @WriteInTmpDir
def testPartitionWithJoints(self):
# cartesian mesh 4x4
arr=DataArrayDouble(5) ; arr.iota()
pass
self.assertEqual(1,found)
pass
+ @WriteInTmpDir
def testPartitionPartGraph(self):
arr=DataArrayDouble(5) ; arr.iota()
c=MEDCouplingCMesh() ; c.setCoords(arr,arr)
# Application tests
SET(TEST_INSTALL_DIRECTORY ${MEDCOUPLING_INSTALL_TESTS}/RENUMBER_Swig)
-INSTALL(FILES MEDRenumberTest.py DESTINATION ${TEST_INSTALL_DIRECTORY})
+INSTALL(FILES MEDRenumberTest.py UsersGuideExamplesTest.py DESTINATION ${TEST_INSTALL_DIRECTORY})
INSTALL(FILES CTestTestfileInstall.cmake
DESTINATION ${TEST_INSTALL_DIRECTORY}
ENVIRONMENT "PYTHONPATH=../../bin:$ENV{PYTHONPATH}"
)
ENDFOREACH()
+
+SET(TEST_NAME ${COMPONENT_NAME}_RENUMBER_Swig_UsersGuideExamplesTest)
+ADD_TEST(${TEST_NAME} python UsersGuideExamplesTest.py)
+SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES
+ LABELS "${COMPONENT_NAME}"
+ TIMEOUT ${TIMEOUT}
+ ENVIRONMENT "PYTHONPATH=../../bin:$ENV{PYTHONPATH}"
+ )
import MEDCouplingCompat as MEDCoupling
else:
import MEDCoupling
+
+def build2DTargetMesh_1():
+ targetCoords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ];
+ targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4];
+ targetMesh=MEDCouplingUMesh.New();
+ targetMesh.setMeshDimension(2);
+ targetMesh.allocateCells(5);
+ targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]);
+ targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]);
+ targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]);
+ targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]);
+ targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]);
+ targetMesh.finishInsertingCells();
+ myCoords=DataArrayDouble.New();
+ myCoords.setValues(targetCoords,9,2);
+ targetMesh.setCoords(myCoords);
+ return targetMesh;
-from MEDCouplingDataForTest import MEDCouplingDataForTest
-m=MEDCouplingDataForTest.build2DTargetMesh_1();
+
+m=build2DTargetMesh_1()
#! [UG_Optimization_0]
from MEDRenumber import RenumberingFactory
ren=RenumberingFactory("BOOST")