# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2016 CEA/DEN, EDF R&D
+# Copyright (C) 2007-2020 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
from MEDLoader import *
import unittest, os
-from MEDLoaderDataForTest import MEDLoaderDataForTest
+from MEDLoaderDataForTest import MEDLoaderDataForTest,WriteInTmpDir
class SauvLoaderTest(unittest.TestCase):
raise Exception("SauvLoaderTest: Unable to get resource directory")
return pth
pass
-
+
+ @WriteInTmpDir
def testSauv2Med(self):
# get a file containing all types of readable piles
sauvFile = os.path.join( self.__getResourcesDirectory(),"allPillesTest.sauv")
os.remove( medFile )
pass
+ @WriteInTmpDir
def testMed2Sauv(self):
# read pointe.med
medFile = os.path.join(self.__getResourcesDirectory(),"pointe.med")
os.remove( sauvFile )
pass
+ @WriteInTmpDir
def testSauv2MedWONodeFamilyNum(self):
"""test for issue 0021673: [CEA 566] Bug in SauvWriter when writing meshes
having no family ids on nodes."""
os.remove( medFile )
pass
+ @WriteInTmpDir
def testSauv2MedOnPipe1D(self):
"""test for issue 0021745: [CEA 600] Some missing groups in mesh after reading a SAUV file with SauvReader."""
sauvFile="Test_sauve_1D.sauv"
os.remove(sauvFile)
pass
+ @WriteInTmpDir
def testSauvReaderOnBigMesh(self):
# create a box with 1 million cells
mesh_dim = 3
pass
@unittest.skipUnless(HasXDR(),"requires XDR")
+ @WriteInTmpDir
def testMissingGroups(self):
"""test for issue 0021749: [CEA 601] Some missing groups in mesh after reading a SAUV file with SauvReader."""
sauvFile = os.path.join(self.__getResourcesDirectory(),"BDC-714.sauv")
self.assertTrue(ids1.isEqual(ids2))
pass
+ @unittest.skipUnless(HasXDR(),"requires XDR")
+ @WriteInTmpDir
+ def testReadSauvXDRCastem17(self):
+ """test reading Castem17 XDR sauv with 'ENREGISTREMENT DE TYPE 8'"""
+ sauvFile = os.path.join(self.__getResourcesDirectory(),"castem17_result_xdr.sauv")
+ self.assertTrue( os.access( sauvFile, os.F_OK))
+ sr=SauvReader.New(sauvFile)
+ mfd2=sr.loadInMEDFileDS()
+ mfMesh=mfd2.getMeshes()[0]
+ umesh0 = mfMesh.getMeshAtLevel(0)
+ #
+ self.assertEqual(2,umesh0.getNumberOfCellsWithType( NORM_HEXA8 ))
+ self.assertEqual(12,umesh0.getNumberOfNodes())
+ #
+ mfField=mfd2.getFields().getFieldWithName("TEMP1")
+ iterations = mfField.getIterations()
+ field0 = mfField.getFieldOnMeshAtLevel(ON_NODES, iterations[0][0],iterations[0][1],umesh0)
+ fieldArray = field0.getArray()
+ expectedValues = [238.46153846153845]*4 + [169.23076923076923]*4 + [100]*4
+ expectedArray = DataArrayDouble(expectedValues)
+ self.assertTrue( fieldArray.isEqualWithoutConsideringStr( expectedArray, 1e-12 ))
+ pass
+
+ @WriteInTmpDir
+ def testReadSauvAsciiCastem17(self):
+ """test reading Castem17 ascii sauv with 'ENREGISTREMENT DE TYPE 8'"""
+ sauvFile = os.path.join(self.__getResourcesDirectory(),"castem17_result_ascii.sauv")
+ self.assertTrue( os.access( sauvFile, os.F_OK))
+ sr=SauvReader.New(sauvFile)
+ mfd2=sr.loadInMEDFileDS()
+ mfMesh=mfd2.getMeshes()[0]
+ umesh0 = mfMesh.getMeshAtLevel(0)
+ #
+ self.assertEqual(2,umesh0.getNumberOfCellsWithType( NORM_HEXA8 ))
+ self.assertEqual(12,umesh0.getNumberOfNodes())
+ #
+ mfField=mfd2.getFields().getFieldWithName("TEMP1")
+ iterations = mfField.getIterations()
+ field0 = mfField.getFieldOnMeshAtLevel(ON_NODES, iterations[0][0],iterations[0][1],umesh0)
+ fieldArray = field0.getArray()
+ expectedValues = [238.46153846153845]*4 + [169.23076923076923]*4 + [100]*4
+ expectedArray = DataArrayDouble(expectedValues)
+ self.assertTrue( fieldArray.isEqualWithoutConsideringStr( expectedArray, 1e-12 ))
+ pass
+
+ @WriteInTmpDir
def testGaussPt(self):
"""issue 22321: [CEA 933] Bug when reading a sauve file containing field on Gauss Pt.
The problem was that a field ON_GAUSS_PT was created but no Gauss Localization
os.remove( sauvFile )
pass
+ @WriteInTmpDir
def testSauvWriterGroupWithOneFamily(self):
"""
This test checks an option for sauv writing. It is requested here to copy a group from a family if a group is lying on a single family.