X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FMEDLoaderTest3.py;h=890796d2abf8c828c80a75c13df5fa6d3b4b4148;hb=d841bf0f548baf1321a64cad715c7dff9110dd3b;hp=d56948278903a107e691ee13d4dbc5a6c56c8b89;hpb=9e11f73a1589a6b2eb0f9d9ca49a6182671280f2;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/MEDLoaderTest3.py b/src/MEDLoader/Swig/MEDLoaderTest3.py index d56948278..890796d2a 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest3.py +++ b/src/MEDLoader/Swig/MEDLoaderTest3.py @@ -38,6 +38,7 @@ class MEDLoaderTest(unittest.TestCase): m2_1=MEDLoader.ReadUMeshFromFile(fileName,mname,-1) self.assertTrue(m2_0.isEqual(m2_1,1e-12)); pass + def testMEDMesh2(self): fileName="Pyfile10.med" mname="3DToto" @@ -57,25 +58,25 @@ class MEDLoaderTest(unittest.TestCase): g1_1=MEDLoader.ReadUMeshFromGroups(fileName,mname,0,["mesh3","mesh2"]); g1_1.setName(g1_0.getName()) self.assertTrue(g1_0.isEqual(g1_1,1e-12)); - g1_0=medmesh.getFamily(0,"Family_2",True) - g1_1=MEDLoader.ReadUMeshFromFamilies(fileName,mname,0,["Family_2"]); + g1_0=medmesh.getFamily(0,"Family_-3",True) + g1_1=MEDLoader.ReadUMeshFromFamilies(fileName,mname,0,["Family_-3"]); self.assertTrue(g1_0.isEqual(g1_1,1e-12)); - g1_0=medmesh.getFamilies(0,["Family_2","Family_4"],True) - g1_1=MEDLoader.ReadUMeshFromFamilies(fileName,mname,0,["Family_2","Family_4"]); + g1_0=medmesh.getFamilies(0,["Family_-3","Family_-5"],True) + g1_1=MEDLoader.ReadUMeshFromFamilies(fileName,mname,0,["Family_-3","Family_-5"]); g1_1.setName(g1_0.getName()) self.assertTrue(g1_0.isEqual(g1_1,1e-12)); self.assertTrue(g1_0.isEqual(g1_1,1e-12)); medmesh.write(outFileName,2); - self.assertEqual([2,3,5,14,16],medmesh.getGroupArr(0,"mesh2",True).getValues()); - self.assertEqual([2,3,16],medmesh.getFamilyArr(0,"Family_2",True).getValues()); - self.assertEqual([2,3,5,14,16],medmesh.getFamiliesArr(0,["Family_4","Family_2"],True).getValues()); - self.assertEqual([19,2,3,4,5,14,15,16],medmesh.getGroupsArr(0,["mesh2","mesh4","mesh3"],True).getValues()); + self.assertEqual([1,2,4,13,15],medmesh.getGroupArr(0,"mesh2",True).getValues()); + self.assertEqual([1,2,15],medmesh.getFamilyArr(0,"Family_-3",True).getValues()); + self.assertEqual([1,2,4,13,15],medmesh.getFamiliesArr(0,["Family_-5","Family_-3"],True).getValues()); + self.assertEqual([18,1,2,3,4,13,14,15],medmesh.getGroupsArr(0,["mesh2","mesh4","mesh3"],True).getValues()); famn=medmesh.getFamilyNameGivenId(0) self.assertRaises(InterpKernelException,medmesh.getNodeFamilyArr,famn,True); #without renum - self.assertEqual([2,3,5,14,16],medmesh.getGroupArr(0,"mesh2",False).getValues()); - self.assertEqual([2,3,16],medmesh.getFamilyArr(0,"Family_2",False).getValues()); - self.assertEqual([2,3,5,14,16],medmesh.getFamiliesArr(0,["Family_4","Family_2"],False).getValues()); + self.assertEqual([2,3,5,14,16],medmesh.getGroupArr(0,"mesh2").getValues()); + self.assertEqual([2,3,16],medmesh.getFamilyArr(0,"Family_-3").getValues()); + self.assertEqual([2,3,5,14,16],medmesh.getFamiliesArr(0,["Family_-5","Family_-3"]).getValues()); self.assertEqual([0,2,3,4,5,14,15,16],medmesh.getGroupsArr(0,["mesh2","mesh3","mesh4"],False).getValues()); self.assertRaises(InterpKernelException,medmesh.getNodeFamilyArr,famn,False); pass @@ -980,7 +981,7 @@ class MEDLoaderTest(unittest.TestCase): def testMEDFieldBug1(self): fname="Pyfile13.med" d=MEDFileData.New(fname) - self.assertEqual(('GP_MyFirstFieldOnGaussPoint0', 'GP_MyFirstFieldOnGaussPoint1', 'GP_MyFirstFieldOnGaussPoint2'),d.getFields().getFieldAtPos(0).getLocs()) + self.assertEqual(('Loc_MyFirstFieldOnGaussPoint_NORM_QUAD4_1','Loc_MyFirstFieldOnGaussPoint_NORM_TRI3_0','Loc_MyFirstFieldOnGaussPoint_NORM_TRI6_2'),d.getFields().getFieldAtPos(0).getLocs()) pass def testMEDMesh8(self): @@ -2758,6 +2759,104 @@ class MEDLoaderTest(unittest.TestCase): self.assertTrue(d.isEqual(f.getArray(),1e-13)) pass pass + + def testMEDFileFieldConvertTo1(self): + fname="Pyfile68.med" + # building a mesh containing 4 tri3 + 5 quad4 + tri=MEDCouplingUMesh("tri",2) + tri.allocateCells() ; tri.insertNextCell(NORM_TRI3,[0,1,2]) + tri.setCoords(DataArrayDouble([(0.,0.),(0.,1.),(1.,0.)])) + tris=[tri.deepCpy() for i in xrange(4)] + for i,elt in enumerate(tris): elt.translate([i,0]) + tris=MEDCouplingUMesh.MergeUMeshes(tris) + quad=MEDCouplingUMesh("quad",2) + quad.allocateCells() ; quad.insertNextCell(NORM_QUAD4,[0,1,2,3]) + quad.setCoords(DataArrayDouble([(0.,0.),(0.,1.),(1.,1.),(1.,0.)])) + quads=[quad.deepCpy() for i in xrange(5)] + for i,elt in enumerate(quads): elt.translate([5+i,0]) + quads=MEDCouplingUMesh.MergeUMeshes(quads) + m=MEDCouplingUMesh.MergeUMeshes(tris,quads) + m.setName("mesh") ; m.getCoords().setInfoOnComponents(["XX [m]","YYY [km]"]) + mm=MEDFileUMesh() ; mm.setMeshAtLevel(0,m) + # + ff0=MEDFileField1TS() + f0=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f0.setMesh(m) ; arr=DataArrayDouble(m.getNumberOfCells()*2) ; arr.iota() ; arr.rearrange(2) ; arr.setInfoOnComponents(["X [km]","YY [mm]"]) ; f0.setArray(arr) ; f0.setName("FieldCell") + f0.checkCoherency() + ff0.setFieldNoProfileSBT(f0) + # + fspExp=[(3,[(0,(0,4),'','')]),(4,[(0,(4,9),'','')])] + self.assertEqual(ff0.getFieldSplitedByType(),fspExp) + # + ff0i=ff0.convertToInt() + self.assertEqual(ff0i.getFieldSplitedByType(),fspExp) + self.assertTrue(arr.convertToIntArr().isEqual(ff0i.getUndergroundDataArray())) + # + ff1=ff0i.convertToDouble() + self.assertTrue(ff1.getUndergroundDataArray().isEqual(ff0.getUndergroundDataArray(),1e-13)) + self.assertEqual(ff1.getFieldSplitedByType(),fspExp) + # With profiles + del arr,f0,ff0,ff1,ff0i,fspExp + ff0=MEDFileField1TS() + f0=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f0.setMesh(m[:7]) ; arr=DataArrayDouble(7*2) ; arr.iota() ; arr.rearrange(2) ; arr.setInfoOnComponents(["XX [pm]","YYY [hm]"]) ; f0.setArray(arr) ; f0.setName("FieldCellPfl") + f0.checkCoherency() + pfl=DataArrayInt.Range(0,7,1) ; pfl.setName("pfl") + ff0.setFieldProfile(f0,mm,0,pfl) + fspExp=[(3,[(0,(0,4),'','')]),(4,[(0,(4,7),'pfl_NORM_QUAD4','')])] + self.assertEqual(ff0.getFieldSplitedByType(),fspExp) + # + ff0i=ff0.convertToInt() + self.assertTrue(isinstance(ff0i,MEDFileIntField1TS)) + self.assertEqual(ff0i.getFieldSplitedByType(),fspExp) + self.assertTrue(arr.convertToIntArr().isEqual(ff0i.getUndergroundDataArray())) + # + ff1=ff0i.convertToDouble() + self.assertTrue(isinstance(ff1,MEDFileField1TS)) + self.assertTrue(ff1.getUndergroundDataArray().isEqual(ff0.getUndergroundDataArray(),1e-13)) + self.assertEqual(ff1.getFieldSplitedByType(),fspExp) + ## MultiTimeSteps + ff0=MEDFileFieldMultiTS() + f0=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f0.setMesh(m[:7]) ; arr=DataArrayDouble(7*2) ; arr.iota() ; arr.rearrange(2) ; arr.setInfoOnComponents(["X [km]","YY [mm]"]) ; f0.setArray(arr) ; f0.setName("FieldCellMTime") ; f0.setTime(0.1,0,10) + f0.checkCoherency() + ff0.appendFieldProfile(f0,mm,0,pfl) + f0=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f0.setMesh(m[:7]) ; arr=DataArrayDouble(7*2) ; arr.iota(100) ; arr.rearrange(2) ; arr.setInfoOnComponents(["X [km]","YY [mm]"]) ; f0.setArray(arr) ; f0.setName("FieldCellMTime") ; f0.setTime(1.1,1,11) + f0.checkCoherency() + ff0.appendFieldProfile(f0,mm,0,pfl) + f0=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; f0.setMesh(m[:7]) ; arr=DataArrayDouble(7*2) ; arr.iota(200) ; arr.rearrange(2) ; arr.setInfoOnComponents(["X [km]","YY [mm]"]) ; f0.setArray(arr) ; f0.setName("FieldCellMTime") ; f0.setTime(2.1,2,12) + f0.checkCoherency() + ff0.appendFieldProfile(f0,mm,0,pfl) + ff1=ff0.convertToInt() + self.assertTrue(isinstance(ff1,MEDFileIntFieldMultiTS)) + self.assertEqual(ff1.getTimeSteps(),[(0,10,0.1),(1,11,1.1),(2,12,2.1)]) + for delt,(dt,it,t) in zip([0,100,200],ff1.getTimeSteps()): + self.assertEqual(ff1.getFieldSplitedByType(dt,it),fspExp) + arr=ff1.getUndergroundDataArray(dt,it) + arr.isEqualWithoutConsideringStr(DataArrayInt.Range(delt,delt+7,1)) + pass + self.assertEqual(ff1.getPfls(),('pfl_NORM_QUAD4', 'pfl_NORM_QUAD4', 'pfl_NORM_QUAD4')) + # + mm.write(fname,2) + ff1.write(fname,0) + # + ff1=ff1.convertToDouble() + self.assertTrue(isinstance(ff1,MEDFileFieldMultiTS)) + self.assertEqual(ff1.getTimeSteps(),[(0,10,0.1),(1,11,1.1),(2,12,2.1)]) + for delt,(dt,it,t) in zip([0,100,200],ff1.getTimeSteps()): + self.assertEqual(ff1.getFieldSplitedByType(dt,it),fspExp) + arr=ff1.getUndergroundDataArray(dt,it) + arr.isEqualWithoutConsideringStr(DataArrayInt.Range(delt,delt+7,1).convertToDblArr(),1e-14) + pass + self.assertEqual(ff1.getPfls(),('pfl_NORM_QUAD4', 'pfl_NORM_QUAD4', 'pfl_NORM_QUAD4')) + # + ff1=MEDFileAnyTypeFieldMultiTS.New(fname,"FieldCellMTime") + self.assertTrue(isinstance(ff1,MEDFileIntFieldMultiTS)) + self.assertEqual(ff1.getTimeSteps(),[(0,10,0.1),(1,11,1.1),(2,12,2.1)]) + for delt,(dt,it,t) in zip([0,100,200],ff1.getTimeSteps()): + self.assertTrue(ff1.getFieldSplitedByType(dt,it),fspExp) + arr=ff1.getUndergroundDataArray(dt,it) + arr.isEqualWithoutConsideringStr(DataArrayInt.Range(delt,delt+7,1)) + pass + self.assertEqual(ff1.getPfls(),('pfl_NORM_QUAD4',)) + pass pass unittest.main()