X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FSauvLoaderTest.py;h=259af09a129147c15bea79b2a6c157e1ff4bf1e7;hb=c8d33262ed6d2041da8512b02f8c8b4ffadf733d;hp=8d7c0e1b52bba39667cd0251d0801307bc8ed111;hpb=659f8c67d0348350e12fde38fe8c4de1ff95dffe;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/SauvLoaderTest.py b/src/MEDLoader/Swig/SauvLoaderTest.py index 8d7c0e1b5..259af09a1 100644 --- a/src/MEDLoader/Swig/SauvLoaderTest.py +++ b/src/MEDLoader/Swig/SauvLoaderTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D +# Copyright (C) 2007-2015 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 @@ -25,11 +25,22 @@ from MEDLoaderDataForTest import MEDLoaderDataForTest class SauvLoaderTest(unittest.TestCase): + def __getResourcesDirectory(self): + med_root_dir = os.getenv("MEDCOUPLING_ROOT_DIR") + if med_root_dir: + pth = os.path.join( os.getenv("MEDCOUPLING_ROOT_DIR"), "share","resources","med") + if os.path.exists(pth): + return pth + current_dir = os.path.dirname(os.path.realpath(__file__)) + pth = os.path.join(current_dir, "..", "..", "..", "resources") + if not os.path.exists(pth): + raise Exception("SauvLoaderTest: Unable to get resource directory") + return pth + pass + def testSauv2Med(self): # get a file containing all types of readable piles - self.assertTrue( os.getenv("MED_ROOT_DIR") ) - sauvFile = os.path.join( os.getenv("MED_ROOT_DIR"), "share","salome", - "resources","med","allPillesTest.sauv") + sauvFile = os.path.join( self.__getResourcesDirectory(),"allPillesTest.sauv") self.assertTrue( os.access( sauvFile, os.F_OK)) # read SAUV and write MED @@ -38,7 +49,7 @@ class SauvLoaderTest(unittest.TestCase): d2=sr.loadInMEDFileDS(); d2.write(medFile,0); - # check + # check self.assertEqual(1,d2.getNumberOfMeshes()) self.assertEqual(8+97,d2.getNumberOfFields()) mm = d2.getMeshes() @@ -50,9 +61,7 @@ class SauvLoaderTest(unittest.TestCase): def testMed2Sauv(self): # read pointe.med - self.assertTrue( os.getenv("MED_ROOT_DIR") ) - medFile = os.path.join( os.getenv("MED_ROOT_DIR"), "share","salome", - "resources","med","pointe.med") + medFile = os.path.join(self.__getResourcesDirectory(),"pointe.med") self.assertTrue( os.access( medFile, os.F_OK)) pointeMed = MEDFileData.New( medFile ) @@ -116,13 +125,13 @@ class SauvLoaderTest(unittest.TestCase): self.assertTrue( "groupe5" in groups ) self.assertTrue( "maa1" in groups ) self.assertEqual(16,m.getSizeAtLevel(0)) - um0 = m.getGenMeshAtLevel(0) + um0 = m.getMeshAtLevel(0) self.assertEqual(12, um0.getNumberOfCellsWithType( NORM_TETRA4 )) self.assertEqual(2, um0.getNumberOfCellsWithType( NORM_PYRA5 )) self.assertEqual(2, um0.getNumberOfCellsWithType( NORM_HEXA8 )) - um1 = m.getGenMeshAtLevel(-1) + um1 = m.getMeshAtLevel(-1) self.assertEqual(2, um1.getNumberOfCellsWithType( NORM_TRI3 )) - pointeUM0 = pointeMedMesh.getGenMeshAtLevel(0) + 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) @@ -238,12 +247,10 @@ class SauvLoaderTest(unittest.TestCase): os.remove(sauvFile) pass - @unittest.skipUnless(MEDLoader.HasXDR(),"requires XDR") + @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.""" - self.assertTrue( os.getenv("MED_ROOT_DIR") ) - sauvFile = os.path.join( os.getenv("MED_ROOT_DIR"), "share","salome", - "resources","med","BDC-714.sauv") + sauvFile = os.path.join(self.__getResourcesDirectory(),"BDC-714.sauv") self.assertTrue( os.access( sauvFile, os.F_OK)) name_of_group_on_cells='Slice10:ABSORBER' name_of_group_on_cells2='Slice10:00LR' @@ -336,13 +343,13 @@ class SauvLoaderTest(unittest.TestCase): sw.setCpyGrpIfOnASingleFamilyStatus(True) self.assertTrue(sw.getCpyGrpIfOnASingleFamilyStatus()) sw.write(sauvFile) - + f = open(sauvFile) # String pattern for the header of the sub meshes record ("PILE" number, number of named objects, number of objects) pattern_pile= re.compile(r'\sPILE\sNUMERO\s+(?P[0-9]+)NBRE\sOBJETS\sNOMMES\s+(?P[0-9]+)NBRE\sOBJETS\s+(?P[0-9]+)') # String pattern for a sub mesh header (cell type, number of components and three numbers) pattern_header=re.compile(r'\s+(?P[0-9]+)\s+(?P[0-9]+)\s+[0-9]+\s+[0-9]+\s+[0-9]+') - + nbobjects=0 line = f.readline() while(line): @@ -356,13 +363,13 @@ class SauvLoaderTest(unittest.TestCase): pass line=f.readline() pass - + # Skipping the objects names f.readline() # Skipping the objects ids f.readline() - # Looking for each sub-mesh header + # Looking for each sub-mesh header line = f.readline() cur_object=0 while(line and cur_object < nbobjects): @@ -382,6 +389,7 @@ class SauvLoaderTest(unittest.TestCase): pass line=f.readline() pass + f.close() os.remove(sauvFile) pass