# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2015 CEA/DEN, EDF R&D
+# Copyright (C) 2007-2023 CEA, EDF
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-from MEDCoupling import *
+
+import sys
+from medcoupling import *
from MEDCouplingDataForTest import MEDCouplingDataForTest
if MEDCouplingHasNumPyBindings():
from platform import architecture
from sys import getrefcount
-import os,gc,weakref,cPickle,unittest
+import os, gc, weakref, unittest
+import sys
+if sys.version_info.major < 3:
+ import cPickle as pickle
+else:
+ import pickle
class MEDCouplingPickleTest(unittest.TestCase):
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
""" Test of a simple DataArrayDouble."""
x=DataArrayDouble(10,1) ; x.iota() ; x.rearrange(2) ; x.setInfoOnComponents(["aa","bbb"])
x.setName("toto")
- pickled=cPickle.dumps(x,cPickle.HIGHEST_PROTOCOL)
- xx=cPickle.loads(pickled)
+ pickled=pickle.dumps(x,pickle.HIGHEST_PROTOCOL)
+ xx=pickle.loads(pickled)
self.assertTrue(xx.isEqual(x,1e-16))
# Bigger to check that the behavior is OK for large strings.
x=DataArrayDouble(1200) ; x.iota() ; x.setInfoOnComponents(["aa"])
x.setName("titi")
- pickled=cPickle.dumps(x,cPickle.HIGHEST_PROTOCOL)
- xx=cPickle.loads(pickled)
+ pickled=pickle.dumps(x,pickle.HIGHEST_PROTOCOL)
+ xx=pickle.loads(pickled)
self.assertTrue(xx.isEqual(x,1e-16))
pass
""" Test of a simple DataArrayInt."""
x=DataArrayInt(10) ; x.iota() ; x.rearrange(2) ; x.setInfoOnComponents(["aa","bbb"])
x.setName("toto")
- pickled=cPickle.dumps(x,cPickle.HIGHEST_PROTOCOL)
- xx=cPickle.loads(pickled)
+ pickled=pickle.dumps(x,pickle.HIGHEST_PROTOCOL)
+ xx=pickle.loads(pickled)
self.assertTrue(xx.isEqual(x))
# Bigger to check that the behavior is OK for large strings.
x=DataArrayInt(1200) ; x.iota() ; x.setInfoOnComponents(["aa"])
x.setName("titi")
- pickled=cPickle.dumps(x,cPickle.HIGHEST_PROTOCOL)
- xx=cPickle.loads(pickled)
+ pickled=pickle.dumps(x,pickle.HIGHEST_PROTOCOL)
+ xx=pickle.loads(pickled)
self.assertTrue(xx.isEqual(x))
pass
-
+
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test3(self):
""" Test of a MEDCouplingUMesh pickeling."""
m=m.buildUnstructured()
m.setName("mesh")
m.getCoords().setInfoOnComponents(["aa","bbb","ddddd"])
- m.checkCoherency()
- st=cPickle.dumps(m,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ m.checkConsistencyLight()
+ st=pickle.dumps(m,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(m,1e-16))
pass
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test4(self):
- """ Idem test3 except that here serialization/deserialization is done explicitely."""
+ """ Idem test3 except that here serialization/deserialization is done explicitly."""
arr=DataArrayDouble(10) ; arr.iota()
m=MEDCouplingCMesh() ; m.setCoords(arr,arr,arr)
m=m.buildUnstructured()
m.setName("mesh")
m.getCoords().setInfoOnComponents(["aa","bbb","ddddd"])
- m.checkCoherency()
+ m.checkConsistencyLight()
#
a0,a1,a2=m.getTinySerializationInformation()
b0,b1=m.serialize()
#
m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ)
m.setName("mesh")
- m.checkCoherency()
- st=cPickle.dumps(m,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ m.checkConsistencyLight()
+ st=pickle.dumps(m,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(m,1e-16))
self.assertTrue(m2.getCoordsAt(0).isEqual(arrX,1e-16))
pass
-
+
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test6(self):
""" Test of a MEDCoupling1SGTUMesh pickeling."""
m=MEDCouplingCMesh() ; m.setCoords(arr,arr)
m=m.build1SGTUnstructured()
self.assertTrue(isinstance(m,MEDCoupling1SGTUMesh))
- st=cPickle.dumps(m,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ st=pickle.dumps(m,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(m,1e-16))
pass
-
+
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test7(self):
""" Test of a MEDCoupling1DGTUMesh pickeling."""
m=m.buildUnstructured() ; m.convertAllToPoly()
m=MEDCoupling1DGTUMesh(m)
self.assertTrue(isinstance(m,MEDCoupling1DGTUMesh))
- st=cPickle.dumps(m,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ st=pickle.dumps(m,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(m,1e-16))
pass
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test8(self):
- """ Test of a MEDCouplingExtrudedMesh pickeling."""
+ """ Test of a MEDCouplingMappedExtrudedMesh pickeling."""
arrX=DataArrayDouble(10) ; arrX.iota() ; arrX.setInfoOnComponents(["aa"])
arrY=DataArrayDouble(5) ; arrY.iota() ; arrY.setInfoOnComponents(["bbb"])
arrZ=DataArrayDouble(7) ; arrZ.iota() ; arrZ.setInfoOnComponents(["cccc"])
mesh2D=m.buildUnstructured() ; del m
#
mesh2D.setCoords(mesh3D.getCoords())
- mesh=MEDCouplingExtrudedMesh(mesh3D,mesh2D,0) ; del mesh3D,mesh2D
- self.assertTrue(isinstance(mesh,MEDCouplingExtrudedMesh))
- st=cPickle.dumps(mesh,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ mesh=MEDCouplingMappedExtrudedMesh(mesh3D,mesh2D,0) ; del mesh3D,mesh2D
+ self.assertTrue(isinstance(mesh,MEDCouplingMappedExtrudedMesh))
+ st=pickle.dumps(mesh,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(mesh,1e-16))
pass
#
mesh=MEDCouplingCurveLinearMesh() ; mesh.setCoords(m.getCoords()) ; del m
mesh.setNodeGridStructure([10,5])
- st=cPickle.dumps(mesh,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ st=pickle.dumps(mesh,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(mesh,1e-16))
pass
def test10(self):
""" Test of a MEDCouplingIMesh pickeling."""
m=MEDCouplingIMesh("mesh",3,DataArrayInt([3,1,4]),DataArrayDouble([1.5,2.5,3.5]),DataArrayDouble((0.5,1.,0.25))) ; m.setAxisUnit("km")
- m.checkCoherency()
- st=cPickle.dumps(m,cPickle.HIGHEST_PROTOCOL)
- m2=cPickle.loads(st)
+ m.checkConsistencyLight()
+ st=pickle.dumps(m,pickle.HIGHEST_PROTOCOL)
+ m2=pickle.loads(st)
self.assertTrue(m2.isEqual(m,1e-16))
self.assertEqual(m2.getName(),m.getName())
pass
b=a[:] ; b.iota(7000.)
f.setArray(DataArrayDouble.Meld(a,b))
f.getArray().setInfoOnComponents(["u1","vv2"])
- f.checkCoherency();
+ f.checkConsistencyLight();
#
- st=cPickle.dumps(f,cPickle.HIGHEST_PROTOCOL)
- f2=cPickle.loads(st)
+ st=pickle.dumps(f,pickle.HIGHEST_PROTOCOL)
+ f2=pickle.loads(st)
self.assertTrue(f2.isEqual(f,1e-16,1e-16))
self.assertTrue(f2.getMesh().isEqual(f.getMesh(),1e-16))
+ ###
+ ft=MEDCouplingFieldTemplate(f)
+ ft2=pickle.loads(pickle.dumps(ft,pickle.HIGHEST_PROTOCOL))
+ self.assertTrue(ft2.isEqual(ft,1e-16))
pass
@unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
self.assertEqual(2,f.getNbOfGaussLocalization());
array=DataArrayDouble.New();
ptr=18*2*[None]
- for i in xrange(18*2):
+ for i in range(18 * 2):
ptr[i]=float(i+1)
array.setValues(ptr,18,2);
ptr=array.getPointer();
f.setArray(array);
f.setName("MyFirstFieldOnGaussPoint");
- f.checkCoherency();
+ f.checkConsistencyLight();
self.assertAlmostEqual(27.,f.getIJK(2,5,0),14);
self.assertAlmostEqual(16.,f.getIJK(1,5,1),14);
#
f.clearGaussLocalizations();
self.assertEqual(0,f.getNbOfGaussLocalization());
- self.assertRaises(InterpKernelException,f.checkCoherency);
+ self.assertRaises(InterpKernelException,f.checkConsistencyLight);
ids1=[0,1,3,4]
self.assertRaises(InterpKernelException,f.setGaussLocalizationOnCells,ids1,_refCoo2,_gsCoo1,_wg1);
self.assertEqual(0,f.getNbOfGaussLocalization());
self.assertEqual(0,f.getGaussLocalizationIdOfOneCell(0));
self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(1));
self.assertEqual(1,f.getGaussLocalizationIdOfOneCell(2));
- self.assertRaises(InterpKernelException,f.checkCoherency);#<- cell 3 has no localization
+ self.assertRaises(InterpKernelException,f.checkConsistencyLight);#<- cell 3 has no localization
ids4=[3]
_gsCoo2=_gsCoo1;
_wg2=_wg1;
self.assertEqual(3,f.getNbOfGaussLocalization());
tmpIds=f.getCellIdsHavingGaussLocalization(0);
self.assertEqual(ids2,list(tmpIds.getValues()));
- self.assertRaises(InterpKernelException,f.checkCoherency);#<- it's always not ok because undelying array not with the good size.
- array2=f.getArray().substr(0,10);
+ self.assertRaises(InterpKernelException,f.checkConsistencyLight);#<- it's always not ok because undelying array not with the good size.
+ array2=f.getArray().subArray(0,10);
f.setArray(array2);
- f.checkCoherency();
+ f.checkConsistencyLight();
####
- st=cPickle.dumps(f,cPickle.HIGHEST_PROTOCOL)
- f2=cPickle.loads(st)
+ st=pickle.dumps(f,pickle.HIGHEST_PROTOCOL)
+ f2=pickle.loads(st)
self.assertTrue(f2.isEqual(f,1e-16,1e-16))
self.assertTrue(f2.getMesh().isEqual(f.getMesh(),1e-16))
+ ###
+ ft=MEDCouplingFieldTemplate(f)
+ ft2=pickle.loads(pickle.dumps(ft,pickle.HIGHEST_PROTOCOL))
+ self.assertTrue(ft2.isEqual(ft,1e-16))
pass
def test13(self):
eStr="This is an exception."
e=InterpKernelException(eStr)
self.assertEqual(e.what(),eStr)
- st=cPickle.dumps(e,cPickle.HIGHEST_PROTOCOL)
- e2=cPickle.loads(st)
+ st=pickle.dumps(e,pickle.HIGHEST_PROTOCOL)
+ e2=pickle.loads(st)
self.assertTrue(e is not e2)
self.assertTrue(isinstance(e2,InterpKernelException))
self.assertEqual(e2.what(),eStr)
pass
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ def test14(self):
+ """Pickelization of DataArrayBytes"""
+ x=DataArrayByte(256,1)
+ for i in range(256):
+ x[i]=-128+i
+ pass
+ x.rearrange(2) ; x.setInfoOnComponents(["aa","bbb"])
+ x.setName("toto")
+ st=pickle.dumps(x,pickle.HIGHEST_PROTOCOL)
+ x2=pickle.loads(st)
+ self.assertTrue(x2.isEqual(x))
+ pass
+
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ def test15(self):
+ """Pickelization of DataArrayFloat"""
+ x=DataArrayFloat(256) ; x.iota()
+ x.rearrange(2) ; x.setInfoOnComponents(["aa","bbb"])
+ x.setName("toto")
+ st = pickle.dumps(x, pickle.HIGHEST_PROTOCOL)
+ x2 = pickle.loads(st)
+ self.assertTrue(x2.isEqual(x,1e-7))
+ pass
+
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ def test16(self):
+ """ Test of MEDCouplingFieldInt lying on MEDCouplingCMesh pickeling. """
+ arrX=DataArrayDouble(10) ; arrX.iota() ; arrX.setInfoOnComponents(["aa"])
+ arrY=DataArrayDouble(5) ; arrY.iota() ; arrY.setInfoOnComponents(["bbb"])
+ m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY)
+ f=m.getMeasureField(True)
+ f=f.convertToIntField()
+ self.assertTrue(isinstance(f,MEDCouplingFieldInt))
+ f.setName("aname")
+ a=f.getArray()
+ b=a[:] ; b.iota(7000)
+ f.setArray(DataArrayInt32.Meld(a,b))
+ f.getArray().setInfoOnComponents(["u1","vv2"])
+ f.checkConsistencyLight();
+ #
+ st = pickle.dumps(f, pickle.HIGHEST_PROTOCOL)
+ f2 = pickle.loads(st)
+ self.assertTrue(f2.isEqual(f,1e-16,0))
+ self.assertTrue(f2.getMesh().isEqual(f.getMesh(),1e-16))
+ pass
+
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ def test17(self):
+ """ Test of MEDCouplingFieldInt lying on MEDCouplingCMesh pickeling. """
+ arrX=DataArrayDouble(10) ; arrX.iota() ; arrX.setInfoOnComponents(["aa"])
+ arrY=DataArrayDouble(5) ; arrY.iota() ; arrY.setInfoOnComponents(["bbb"])
+ m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY)
+ f2=m.getMeasureField(True)
+ f=MEDCouplingFieldFloat(ON_CELLS)
+ f.setMesh(m) ; f.setArray(f2.getArray().convertToFloatArr())
+ self.assertTrue(isinstance(f,MEDCouplingFieldFloat))
+ f.setName("aname")
+ a=f.getArray()
+ b=a[:] ; b.iota(7000.)
+ f.setArray(DataArrayFloat.Meld(a,b))
+ f.getArray().setInfoOnComponents(["u1","vv2"])
+ f.checkConsistencyLight();
+ #
+ st = pickle.dumps(f, pickle.HIGHEST_PROTOCOL)
+ f2 = pickle.loads(st)
+ self.assertTrue(f2.isEqual(f,1e-16,0))
+ self.assertTrue(f2.getMesh().isEqual(f.getMesh(),1e-16))
+ pass
+
def setUp(self):
pass
pass