# -*- coding: iso-8859-1 -*-
-# 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
from math import pi,e,sqrt
from MEDLoaderDataForTest import MEDLoaderDataForTest
-class MEDLoaderTest(unittest.TestCase):
+class MEDLoaderTest1(unittest.TestCase):
def testMesh1DRW(self):
mesh=MEDLoaderDataForTest.build1DMesh_1();
- mesh.checkCoherency();
+ mesh.checkConsistencyLight();
MEDLoader.WriteUMesh("Pyfile1.med",mesh,True);
mesh_rw=MEDLoader.ReadUMeshFromFile("Pyfile1.med",mesh.getName(),0);
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
def testMesh2DCurveRW(self):
mesh=MEDLoaderDataForTest.build2DCurveMesh_1();
- mesh.checkCoherency();
+ mesh.checkConsistencyLight();
MEDLoader.WriteUMesh("Pyfile2.med",mesh,True);
mesh_rw=MEDLoader.ReadUMeshFromFile("Pyfile2.med",mesh.getName(),0);
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
def testMesh2DRW(self):
mesh=MEDLoaderDataForTest.build2DMesh_1();
- mesh.checkCoherency();
+ mesh.checkConsistencyLight();
MEDLoader.WriteUMesh("Pyfile3.med",mesh,True);
mesh_rw=MEDLoader.ReadUMeshFromFile("Pyfile3.med",mesh.getName(),0);
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
def testMesh3DSurfRW(self):
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
- mesh.checkCoherency();
+ mesh.checkConsistencyLight();
MEDLoader.WriteUMesh("Pyfile4.med",mesh,True);
mesh_rw=MEDLoader.ReadUMeshFromFile("Pyfile4.med",mesh.getName(),0);
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
def testMesh3DRW(self):
mesh=MEDLoaderDataForTest.build3DMesh_1();
- mesh.checkCoherency();
+ mesh.checkConsistencyLight();
MEDLoader.WriteUMesh("Pyfile5.med",mesh,True);
mesh_rw=MEDLoader.ReadUMeshFromFile("Pyfile5.med",mesh.getName(),0);
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
arr1=[71.,171.,10.,110.,20.,120.,30.,130.,40.,140.]
array.setValues(arr1,nbOfCells,2);
f1.setTime(3.14,2,7);
- f1.checkCoherency();
+ 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.checkCoherency();
+ f2.checkConsistencyLight();
self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
#
pass
mesh=MEDLoaderDataForTest.build3DSurfMesh_1();
renumber1=[2,5,1,0,3,4]
mesh.renumberCells(renumber1,False);
- mesh.checkCoherency();
+ mesh.checkConsistencyLight();
MEDLoader.WriteUMesh(fileName,mesh,True);
mesh_rw=MEDLoader.ReadUMeshFromFile(fileName,mesh.getName(),0);
self.assertTrue(mesh.isEqual(mesh_rw,1e-12));
f1.setArray(array);
tmp=array.setValues(arr1,m2d.getNumberOfCells(),2);
f1.setTime(3.14,2,7);
- f1.checkCoherency();
+ 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));
array.setInfoOnComponent(0,"tyty [mm]");
array.setInfoOnComponent(1,"uiop [MW]");
f1.setTime(3.14,2,7);
- f1.checkCoherency();
+ 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.checkCoherency();
+ f3.checkConsistencyLight();
self.assertTrue(f3.isEqual(f2,1e-12,1e-12));
#
arr3=[1,3,0,5,2,4]
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.checkCoherency();
+ f3.checkConsistencyLight();
self.assertTrue(f3.isEqual(f2,1e-12,1e-12));
#
pass
#
renumArr=[3,7,2,1,5,11,10,0,9,6,8,4]
f1.renumberNodes(renumArr);
- f1.checkCoherency();
+ f1.checkConsistencyLight();
MEDLoader.WriteField(fileName,f1,False);#<- False important for the test
f2=MEDLoader.ReadFieldNode(fileName,f1.getMesh().getName(),0,f1.getName(),2,7);
self.assertTrue(f2.isEqual(f1,1e-12,1e-12));
array.setInfoOnComponent(0,"plkj [mm]");
array.setInfoOnComponent(1,"pqqqss [mm]");
f1.setTime(3.14,2,7);
- f1.checkCoherency();
+ f1.checkConsistencyLight();
#
f2=MEDLoader.MEDCouplingFieldDouble.New(MEDLoader.ON_NODES,MEDLoader.ONE_TIME);
f2.setName("FieldMix");
array.setInfoOnComponent(0,"plkj [mm]");
array.setInfoOnComponent(1,"pqqqss [mm]");
f2.setTime(3.14,2,7);
- f2.checkCoherency();
+ f2.checkConsistencyLight();
#
MEDLoader.WriteField(fileName,f1,True);
ts=MEDLoader.GetTypesOfField(fileName,f1.getMesh().getName(),f1.getName());
nbOfCompo=4100
arr=MEDLoader.DataArrayDouble(nbOfCompo*3) ; arr.iota()
arr.rearrange(nbOfCompo)
- arr.setInfoOnComponents(["c%i"%(i) for i in xrange(nbOfCompo)])
+ arr.setInfoOnComponents(["c%i" % (i) for i in range(nbOfCompo)])
f.setArray(arr)
f.setName("FieldBigCompo")
MEDLoader.WriteField(fileName,f,True)
m.insertNextCell([0,2,1,3])
m.setCoords(MEDLoader.DataArrayDouble([0.,0.,1.,1.,1.,0.,0.,1.],4,2))
#
- ms=[m.deepCpy() for i in xrange(4)]
+ ms = [m.deepCopy() for i in range(4)]
for i,elt in enumerate(ms):
elt.translate([float(i)*1.5,0.])
pass
m.insertNextCell([0,2,1,3])
m.setCoords(MEDLoader.DataArrayDouble([0.,0.,1.,1.,1.,0.,0.,1.],4,2))
#
- ms=[m.deepCpy() for i in xrange(4)]
+ ms = [m.deepCopy() for i in range(4)]
for i,elt in enumerate(ms):
elt.translate([float(i)*1.5,0.])
pass
f1.setMesh(mesh)
arr=MEDLoader.DataArrayDouble(20) ; arr.iota()
f1.setArray(arr)
- f1.checkCoherency()
+ f1.checkConsistencyLight()
#
f2=MEDLoader.MEDCouplingFieldDouble(MEDLoader.ON_NODES) ; f2.setName("f2")
f2.setMesh(mesh)
arr=MEDLoader.DataArrayDouble(20) ; arr.iota() ; arr*=3
f2.setArray(arr)
- f2.checkCoherency()
+ f2.checkConsistencyLight()
#
- f11=f1.deepCpy() ; (f11.getArray())[:]*=4 ; f11.setTime(1.1,5,6)
+ f11=f1.deepCopy() ; (f11.getArray())[:]*=4 ; f11.setTime(1.1,5,6)
#
MEDLoader.WriteMesh(fname,f1.getMesh(),True)
MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,f1)
self.assertTrue(f11.isEqual(f3r,1e-12,1e-12))
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
+
+ def testEasyFieldRead1(self):
+ fname="Pyfile111.med"
+ arr=MEDLoader.DataArrayDouble(4) ; arr.iota()
+ m=MEDLoader.MEDCouplingCMesh() ; m.setCoords(arr,arr)
+ m=m.buildUnstructured()
+ m.setName("mesh")
+ f=MEDLoader.MEDCouplingFieldDouble(MEDLoader.ON_CELLS)
+ f.setName("field")
+ f.setTime(3.,1,2)
+ da=MEDLoader.DataArrayDouble([2,3,4,5,6,7,8,9,10])
+ f.setArray(da) ; f.setMesh(m)
+ MEDLoader.WriteField(fname,f,True)
+ #
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field"),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ #
+ f3=f.deepCopy()
+ f3.setArray(f.getArray()+30)
+ f3.setName("field2")
+ f3.setTime(5.,4,5)
+ MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,f3)
+ #
+ self.assertRaises(Exception,MEDLoader.ReadField,fname) # because several fields in fname now
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field"),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2"),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2",4,5),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field2",4,5),1e-12,1e-12))
+ #
+ f2=f.deepCopy()
+ f2.setTime(4.,3,4)
+ f2.setArray(f2.getArray()+10)
+ MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,f2)
+ #
+ self.assertRaises(Exception,MEDLoader.ReadField,fname) # because unique field "field" has more than one time step
+ self.assertRaises(Exception,MEDLoader.ReadField,fname,"field") # because unique field "field" has more than one time step
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(fname,"field",3,4),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",3,4),1e-12,1e-12))
+ #
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(fname,"field",3,4),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",3,4),1e-12,1e-12))
+ #
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2"),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2",4,5),1e-12,1e-12))
+ self.assertRaises(Exception,MEDLoader.ReadField,fname,"field2",5,5) # invalid time step
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field2",4,5),1e-12,1e-12))
+ self.assertRaises(Exception,MEDLoader.ReadField,MEDLoader.ON_CELLS,fname,"mesh",0,"field2",5,5) # invalid time step
+ # Test on profile - restart from scratch
+ mm=MEDLoader.MEDFileUMesh()
+ mm[0]=m
+ mm.write(fname,2)
+ #
+ pfl = MEDLoader.DataArrayInt(list(range(8)))
+ pfl.setName("PFL")
+ #
+ f=MEDLoader.MEDCouplingFieldDouble(MEDLoader.ON_CELLS)
+ f.setName("field")
+ f.setTime(3.,1,2)
+ da=MEDLoader.DataArrayDouble([2,3,4,5,6,7,8,9])
+ f.setArray(da) ; f.setMesh(m[pfl])
+ f.checkConsistencyLight()
+ #
+ f1ts=MEDLoader.MEDFileField1TS()
+ f1ts.setFieldProfile(f,mm,0,pfl)
+ f1ts.write(fname,0)
+ #
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field"),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ #
+ f3=f.deepCopy()
+ f3.setArray(f.getArray()+30)
+ f3.setName("field2")
+ f3.setTime(5.,4,5)
+ f1ts=MEDLoader.MEDFileField1TS()
+ f1ts.setFieldProfile(f3,mm,0,pfl)
+ f1ts.write(fname,0)
+ #
+ self.assertRaises(Exception,MEDLoader.ReadField,fname) # because several fields in fname now
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field"),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2"),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2",4,5),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field2",4,5),1e-12,1e-12))
+ #
+ f2=f.deepCopy()
+ f2.setTime(4.,3,4)
+ f2.setArray(f2.getArray()+10)
+ f1ts=MEDLoader.MEDFileField1TS()
+ f1ts.setFieldProfile(f2,mm,0,pfl)
+ f1ts.write(fname,0)
+ #
+ self.assertRaises(Exception,MEDLoader.ReadField,fname) # because unique field "field" has more than one time step
+ self.assertRaises(Exception,MEDLoader.ReadField,fname,"field") # because unique field "field" has more than one time step
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(fname,"field",3,4),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",3,4),1e-12,1e-12))
+ #
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(fname,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",1,2),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(fname,"field",3,4),1e-12,1e-12))
+ self.assertTrue(f2.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field",3,4),1e-12,1e-12))
+ #
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2"),1e-12,1e-12))
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(fname,"field2",4,5),1e-12,1e-12))
+ self.assertRaises(Exception,MEDLoader.ReadField,fname,"field2",5,5) # invalid time step
+ self.assertTrue(f3.isEqual(MEDLoader.ReadField(MEDLoader.ON_CELLS,fname,"mesh",0,"field2",4,5),1e-12,1e-12))
+ self.assertRaises(Exception,MEDLoader.ReadField,MEDLoader.ON_CELLS,fname,"mesh",0,"field2",5,5) # invalid time step
+ pass
+
pass
if __name__ == "__main__":