X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FMEDLoaderTest3.py;h=9bc14349ce4d6f0086d883bd684e53f81b601643;hb=064f758723b15f6a2451d56a9dc0ee8f3650f474;hp=6aac69079980b0910af9555344fe75f09939098b;hpb=8763c12d01e33d6845dd53be65b001514d00bd42;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/MEDLoaderTest3.py b/src/MEDLoader/Swig/MEDLoaderTest3.py index 6aac69079..9bc14349c 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest3.py +++ b/src/MEDLoader/Swig/MEDLoaderTest3.py @@ -2007,7 +2007,7 @@ class MEDLoaderTest(unittest.TestCase): pfl=DataArrayInt.Range(0,50,1) ; pfl.setName("pfl") fff.appendFieldProfile(f2,mm,0,pfl) self.assertIn(fff.getHeapMemorySize(),xrange(2178-130,2178+100+(10+2)*strMulFac)) - self.assertIn(fff.getProfile("pfl_NORM_QUAD4").getHeapMemorySize(),xrange(215-10,215+10+2*strMulFac)) + self.assertIn(fff.getProfile("pfl").getHeapMemorySize(),xrange(205-10,205+10+2*strMulFac)) self.assertIn(fff[1,-1].getHeapMemorySize(),xrange(700-50,700+30+4*strMulFac)) pass @@ -2041,6 +2041,8 @@ class MEDLoaderTest(unittest.TestCase): m1=MEDFileCurveLinearMesh(fname) mm=m1.getMesh() self.assertTrue(mm.isEqual(mesh,1e-12)) + self.assertEqual(mm.getSpaceDimension(),3) + self.assertEqual(mm.getSpaceDimensionOnNodeStruct(),2) # m1=MEDFileMesh.New(fname) self.assertTrue(isinstance(m1,MEDFileCurveLinearMesh)) @@ -3583,6 +3585,69 @@ class MEDLoaderTest(unittest.TestCase): self.assertEqual(mm.getMeshAtLevel(0).getName(),"abc") pass + def testMEDFileFieldsUnloadArraysWithoutDataLoss1(self): + fileName="Pyfile80.med" + m=MEDCouplingCMesh() ; m.setName("cmesh") + arr=DataArrayDouble(6) ; arr.iota() + m.setCoords(arr,arr) + nbCells=m.getNumberOfCells() + self.assertEqual(25,nbCells) + f=MEDCouplingFieldDouble(ON_CELLS) + f.setName("FieldOnCell") ; f.setMesh(m) + arr=DataArrayDouble(nbCells) ; arr.iota() + mm=MEDFileCMesh() + mm.setMesh(m) + # + fmts=MEDFileFieldMultiTS() + # + for i in xrange(nbCells): + t=(float(i)+0.1,i+1,-i-2) + f.setTime(*t) + arr2=DataArrayDouble(nbCells) + perm=DataArrayInt(nbCells) ; perm.iota(i) ; perm%=nbCells + arr2[perm]=arr + f.setArray(arr2) + f1ts=MEDFileField1TS() + f1ts.setFieldNoProfileSBT(f) + fmts.pushBackTimeStep(f1ts) + pass + fmts.unloadArraysWithoutDataLoss() + self.assertTrue(fmts[0].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)) + fs=MEDFileFields() ; fs.pushField(fmts) + self.assertTrue(fs[0][0].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)) + fs.unloadArraysWithoutDataLoss() + self.assertTrue(fs[0][0].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)) + f1ts=fs[0][0] + 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)) + f1ts.unloadArraysWithoutDataLoss() + 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)) + mm.write(fileName,2) + fs.write(fileName,0) + del m,fmts,mm,f,f1ts + ## + mm=MEDFileMesh.New(fileName) + fmts=MEDFileFieldMultiTS(fileName) + self.assertTrue(fmts[0].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)) + fmts.unloadArraysWithoutDataLoss() + self.assertTrue(not fmts[0].getUndergroundDataArray().isAllocated()) + fmts.loadArraysIfNecessary() + self.assertTrue(fmts[0].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)) + del mm,fmts + fs=MEDFileFields(fileName) + self.assertTrue(fs[0][0].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)) + fs.unloadArraysWithoutDataLoss() + self.assertTrue(not fs[0][0].getUndergroundDataArray().isAllocated()) + fs.loadArraysIfNecessary() + self.assertTrue(fs[0][0].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)) + del fs + f1ts=MEDFileField1TS(fileName) + 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)) + f1ts.unloadArraysWithoutDataLoss() + self.assertTrue(not f1ts.getUndergroundDataArray().isAllocated()) + f1ts.loadArraysIfNecessary() + 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 + pass unittest.main()