X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FSauvLoaderTest.py;h=f9454b1b183c3fd765b2805dcdbe4b0db599178d;hb=06b22e5321361b9c5fdfdbf4fd81e12d37ead050;hp=55f1f992b7b46ad99937d098f6f25f68a4749079;hpb=5da72d398d0eb1820c3ce6dd90b8579b6b14edf5;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/SauvLoaderTest.py b/src/MEDLoader/Swig/SauvLoaderTest.py index 55f1f992b..f9454b1b1 100644 --- a/src/MEDLoader/Swig/SauvLoaderTest.py +++ b/src/MEDLoader/Swig/SauvLoaderTest.py @@ -97,7 +97,7 @@ class SauvLoaderTest(unittest.TestCase): #remove fieldnodeint pointeFields = pointeMed.getFields() - for i in range( pointeFields.getNumberOfFields() ): + for i in range(pointeFields.getNumberOfFields()): if pointeFields.getFieldAtPos(i).getName() == "fieldnodeint": pointeFields.destroyFieldAtPos( i ) break @@ -130,11 +130,12 @@ class SauvLoaderTest(unittest.TestCase): self.assertEqual(2, um0.getNumberOfCellsWithType( NORM_PYRA5 )) self.assertEqual(2, um0.getNumberOfCellsWithType( NORM_HEXA8 )) um1 = m.getMeshAtLevel(-1) - self.assertEqual(2, um1.getNumberOfCellsWithType( NORM_TRI3 )) + #self.assertEqual(2, um1.getNumberOfCellsWithType( NORM_TRI3 )) + self.assertEqual(1, um1.getNumberOfCellsWithType( NORM_TRI3 )) pointeUM0 = pointeMedMesh.getMeshAtLevel(0) self.assertTrue(m.getCoords().isEqualWithoutConsideringStr(pointeMedMesh.getCoords(),1e-12)) - self.assertEqual( um0.getMeasureField(0).accumulate(0), - pointeUM0.getMeasureField(0).accumulate(0),1e-12) + self.assertEqual( um0.getMeasureField(False).accumulate(0), + pointeUM0.getMeasureField(False).accumulate(0),1e-12) # check fields # fieldnodedouble fieldnodedoubleTS1 = pointeMed.getFields().getFieldWithName("fieldnodedouble") @@ -143,7 +144,7 @@ class SauvLoaderTest(unittest.TestCase): self.assertEqual( fieldnodedoubleTS1.getNumberOfTS(), fieldnodedoubleTS2.getNumberOfTS()) io1 = fieldnodedoubleTS1.getIterations() io2 = fieldnodedoubleTS2.getIterations() - for i in range(fieldnodedoubleTS1.getNumberOfTS() ): + for i in range(fieldnodedoubleTS1.getNumberOfTS()): fnd1 = fieldnodedoubleTS1.getFieldOnMeshAtLevel(ON_NODES, io1[i][0],io1[i][1],pointeUM0) fnd2 = fieldnodedoubleTS2.getFieldOnMeshAtLevel(ON_NODES, io2[i][0],io2[i][1],um0) self.assertTrue( fnd1.getArray().isEqual( fnd2.getArray(), 1e-12 )) @@ -154,7 +155,7 @@ class SauvLoaderTest(unittest.TestCase): self.assertEqual( fieldnodedoubleTS1.getNumberOfTS(), fieldnodedoubleTS2.getNumberOfTS()) io1 = fieldnodedoubleTS1.getIterations() io2 = fieldnodedoubleTS2.getIterations() - for i in range(fieldnodedoubleTS1.getNumberOfTS() ): + for i in range(fieldnodedoubleTS1.getNumberOfTS()): fnd1 = fieldnodedoubleTS1.getFieldOnMeshAtLevel(ON_CELLS, io1[i][0],io1[i][1],pointeUM0) fnd2 = fieldnodedoubleTS2.getFieldOnMeshAtLevel(ON_CELLS, io2[i][0],io2[i][1],um0) self.assertAlmostEqual( fnd1.accumulate(0), fnd2.accumulate(0) ) @@ -247,6 +248,58 @@ class SauvLoaderTest(unittest.TestCase): os.remove(sauvFile) pass + def testSauvReaderOnBigMesh(self): + # create a box with 1 million cells + mesh_dim = 3 + nb_segs = [100, 100, 100] + box_sizes = [1., 1., 1.] + compo_names = ["x", "y", "z"] + box_steps = [box_sizes[i]/nb_segs[i] for i in range(mesh_dim)] + mesh = MEDCouplingCMesh.New("Mesh_box") + + # axes coords + axes_arrays = [] + for i in range(mesh_dim): + axe_coords = [j*box_steps[i] for j in range(nb_segs[i]+1)] + + axe_arr = DataArrayDouble.New(axe_coords) + axe_arr.setInfoOnComponent(0,compo_names[i]) + + axes_arrays.append(axe_arr) + + mesh.setCoords(*axes_arrays) + umesh = mesh.buildUnstructured() + + m=MEDFileUMesh.New() + m.setMeshAtLevel(0,umesh) + + # MED file data + ms=MEDFileMeshes.New() + ms.setMeshAtPos(0,m) + meddata=MEDFileData.New() + meddata.setMeshes(ms) + + # write to SAUV + sauvFile = "box.sauv" + sw=SauvWriter(); + sw.setMEDFileDS(meddata); + sw.write(sauvFile); + + # read SAUV + sr=SauvReader(sauvFile); + d2=sr.loadInMEDFileDS(); + mm = d2.getMeshes() + m = mm.getMeshAtPos(0) + + # check + coords = m.getCoords() + nb_coords_values = coords.getNbOfElems() + nb_coords_values_expected = mesh_dim*((nb_segs[0]+1)*(nb_segs[1]+1)*(nb_segs[2]+1)) + self.assertEqual(nb_coords_values, nb_coords_values_expected) + + os.remove( sauvFile ) + pass + @unittest.skipUnless(HasXDR(),"requires XDR") def testMissingGroups(self): """test for issue 0021749: [CEA 601] Some missing groups in mesh after reading a SAUV file with SauvReader."""