X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FMEDLoaderTest1.py;h=5f6d1d7ae80dbd3768c2a83fbe0e0888cd03a703;hb=35287602e212fd35b8a4b11215cb111b929a4875;hp=a0ed45ca7be62f13329183df01dc1f7852a49c21;hpb=bd238ae917aa20ba3fe2f7569883d619b7e4f7a9;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/MEDLoaderTest1.py b/src/MEDLoader/Swig/MEDLoaderTest1.py index a0ed45ca7..5f6d1d7ae 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest1.py +++ b/src/MEDLoader/Swig/MEDLoaderTest1.py @@ -1,5 +1,5 @@ # -*- 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 @@ -556,7 +556,7 @@ class MEDLoaderTest1(unittest.TestCase): 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) @@ -570,7 +570,7 @@ class MEDLoaderTest1(unittest.TestCase): m.insertNextCell([0,2,1,3]) m.setCoords(MEDLoader.DataArrayDouble([0.,0.,1.,1.,1.,0.,0.,1.],4,2)) # - ms=[m.deepCopy() 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 @@ -612,14 +612,14 @@ class MEDLoaderTest1(unittest.TestCase): fRead=MEDLoader.ReadFieldCell(fname,"mesh",0,f.getName(),-1,-1) self.assertTrue(f.isEqual(fRead,1e-12,1e-12)) pass - + def testMultiMeshTypeWrite1(self): fname="Pyfile74.med" m=MEDLoader.MEDCoupling1SGTUMesh("mesh",MEDLoader.NORM_QUAD4) ; m.allocateCells() m.insertNextCell([0,2,1,3]) m.setCoords(MEDLoader.DataArrayDouble([0.,0.,1.,1.,1.,0.,0.,1.],4,2)) # - ms=[m.deepCopy() 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 @@ -692,7 +692,7 @@ class MEDLoaderTest1(unittest.TestCase): d=MEDLoader.DataArrayDouble.New() d.alloc(1,1) d.iota(1.) - # seting a long name + # setting a long name d.setInfoOnComponent(0,"CONCENTRATION of I129") f.setArray(d) f.setName("field") @@ -751,6 +751,127 @@ class MEDLoaderTest1(unittest.TestCase): 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__":