# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013 CEA/DEN, EDF R&D
+# Copyright (C) 2007-2016 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
# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-#
from MEDCoupling import *
from numpy import *
pass
+from platform import architecture
from sys import getrefcount
import os,gc,weakref,unittest
class MEDCouplingNumPyTest(unittest.TestCase):
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test1(self):
sz=20
a=array(0,dtype=int32)
a[:]=4
self.assertEqual(getrefcount(a),2)
a=a.cumsum(dtype=int32)
+ a=array(a,dtype=int64) ; a=array(a,dtype=int32)
self.assertEqual(getrefcount(a),2)
d=DataArrayInt(a)
d[:]=2
self.assertTrue(d.isEqual(e))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test2(self):
sz=20
a=array(0,dtype=int32)
self.assertTrue(d.isEqual(e))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test3(self):
sz=10
a=array(0,dtype=int32)
self.assertTrue(d.isEqual(DataArrayInt([0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10])))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test4(self):
a=zeros(20,dtype=int32)
b = a[::-1]
self.assertRaises(InterpKernelException,DataArrayInt.New,b) # b is not contiguous in memory
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test5(self):
a=arange(20,dtype=int32)
self.assertEqual(weakref.getweakrefcount(a),0)
d=DataArrayInt(a)
self.assertEqual(weakref.getweakrefcount(a),1)
self.assertTrue(not a.flags["OWNDATA"])
- self.assertTrue(d.isIdentity())
- self.assertEqual(len(d),20)
+ self.assertTrue(d.isIota(20))
a[:]=2 # modifying a and d because a and d share the same chunk of data
self.assertTrue(d.isUniform(2))
del d # d is destroyed, a retrieves its ownership of its initial chunk of data
self.assertTrue(DataArrayInt(a).isUniform(4))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test6(self):
a=arange(20,dtype=int32)
d=DataArrayInt(a) # d owns data of a
e=DataArrayInt(a) # a not owned -> e only an access to chunk of a
- self.assertTrue(d.isIdentity())
- self.assertTrue(e.isIdentity())
+ self.assertTrue(d.isIota(d.getNumberOfTuples()))
+ self.assertTrue(e.isIota(e.getNumberOfTuples()))
a[:]=6
self.assertTrue(d.isUniform(6))
self.assertTrue(e.isUniform(6))
self.assertTrue(not e.isAllocated())
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test7(self):
a=array(0,dtype=int32) ; a.resize(10,2)
b=a.reshape(20)
del b # no impact on e and f because a is the base of a.
##@@ Ensure a pass of the garbage collector so that the de-allocator of d is called
gc.collect()
- self.assertTrue(f.isIdentity())
- self.assertTrue(e.isIdentity())
+ self.assertTrue(f.isIota(f.getNumberOfTuples()))
+ self.assertTrue(e.isIota(e.getNumberOfTuples()))
del a # a destroyed, but as c has its base set to a, a exists -> e and f not allocated
##@@ Ensure a pass of the garbage collector so that the de-allocator of d is called
gc.collect()
- self.assertTrue(f.isIdentity())
- self.assertTrue(e.isIdentity())
+ self.assertTrue(f.isIota(f.getNumberOfTuples()))
+ self.assertTrue(e.isIota(e.getNumberOfTuples()))
del c # c killed -> a killed -> e and d are put into not allocated state
##@@ Ensure a pass of the garbage collector so that the de-allocator of d is called
gc.collect()
self.assertTrue(not f.isAllocated())
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test8(self):
a=arange(20,dtype=int32)
self.assertTrue(a.flags["OWNDATA"])
self.assertEqual(a.tolist(),[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test9(self):
sz=20
a=array(0,dtype=float64)
self.assertTrue(d.isEqual(e,1e-14))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test10(self):
sz=20
a=array(0,dtype=float64)
self.assertTrue(d.isEqual(e,1e-14))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test11(self):
sz=10
a=array(0,dtype=float64)
self.assertTrue(d.isEqual(DataArrayDouble([0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]),1e-14))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test12(self):
a=zeros(20,dtype=float64)
b = a[::-1]
self.assertRaises(InterpKernelException,DataArrayDouble.New,b) # b is not contiguous in memory
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test13(self):
a=arange(20,dtype=float64)
self.assertEqual(weakref.getweakrefcount(a),0)
self.assertTrue(DataArrayDouble(a).isUniform(4,1e-14))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test14(self):
a=arange(20,dtype=float64)
d=DataArrayDouble(a) # d owns data of a
self.assertTrue(not e.isAllocated())
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test15(self):
a=array(0,dtype=float64) ; a.resize(10,2)
b=a.reshape(20)
self.assertTrue(not f.isAllocated())
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test16(self):
a=arange(20,dtype=float64)
self.assertTrue(a.flags["OWNDATA"])
self.assertEqual(a.tolist(),[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test17(self):
d=DataArrayInt.Range(0,20,1)
a=d.toNumPyArray()
self.assertTrue(d.isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,200,200,200,200],10,2)))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test18(self):
d=DataArrayInt.Range(0,20,1)
d=d.convertToDblArr()
self.assertTrue(d.isEqual(DataArrayDouble([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,200,200,200,200],10,2),1e-14))
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test19(self):
sz=20
a=array(0,dtype=int32)
self.assertRaises(InterpKernelException,DataArrayInt.New,b) # b has not dimension in [0,1] !
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test20(self):
sz=20
a=array(0,dtype=float64)
self.assertRaises(InterpKernelException,DataArrayDouble.New,b) # b has not dimension in [0,1] !
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test21(self):
#tests that only DataArray*(npArray) contructor is available
a=array(0,dtype=int32)
self.assertRaises(InterpKernelException,DataArrayDouble.New,a,20,1)
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test22(self):
d=DataArrayDouble(10)
d.iota()
self.assertEqual(a.tolist(),[0,1,2,3,4,5,6,7,8,9])
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test23(self):
d=DataArrayDouble(10)
d.iota()
self.assertEqual(c.tolist(),[0,1,2,3,4,5,6,7,8,9])
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test24(self):
d=DataArrayDouble(10)
d.iota()
self.assertTrue(not b.flags["OWNDATA"])
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test25(self):
a=arange(10,dtype=int32)
b=DataArrayInt(a)
c=DataArrayInt(a)
d=DataArrayInt(a)
- self.assertTrue(b.isIdentity()) ; self.assertEqual(len(b),10)
- self.assertTrue(c.isIdentity()) ; self.assertEqual(len(c),10)
- self.assertTrue(d.isIdentity()) ; self.assertEqual(len(d),10)
+ self.assertTrue(b.isIota(10))
+ self.assertTrue(c.isIota(10))
+ self.assertTrue(d.isIota(10))
c.pushBackSilent(10) # c and a,b are dissociated
- self.assertTrue(b.isIdentity()) ; self.assertEqual(len(b),10)
- self.assertTrue(c.isIdentity()) ; self.assertEqual(len(c),11)
- self.assertTrue(d.isIdentity()) ; self.assertEqual(len(d),10)
+ self.assertTrue(b.isIota(10))
+ self.assertTrue(c.isIota(11))
+ self.assertTrue(d.isIota(10))
del a
gc.collect()
- self.assertTrue(b.isIdentity()) ; self.assertEqual(len(b),10)
- self.assertTrue(c.isIdentity()) ; self.assertEqual(len(c),11)
+ self.assertTrue(b.isIota(10))
+ self.assertTrue(c.isIota(11))
self.assertTrue(not d.isAllocated())
del b
gc.collect()
- self.assertTrue(c.isIdentity()) ; self.assertEqual(len(c),11)
+ self.assertTrue(c.isIota(11))
#
a=arange(10,dtype=int32)
b=DataArrayInt(a)
c=DataArrayInt(a)
- self.assertTrue(b.isIdentity()) ; self.assertEqual(len(b),10)
- self.assertTrue(c.isIdentity()) ; self.assertEqual(len(c),10)
+ self.assertTrue(b.isIota(10))
+ self.assertTrue(c.isIota(10))
b.pushBackSilent(10) # c and a,b are dissociated
- self.assertTrue(b.isIdentity()) ; self.assertEqual(len(b),11)
- self.assertTrue(c.isIdentity()) ; self.assertEqual(len(c),10)
+ self.assertTrue(b.isIota(11))
+ self.assertTrue(c.isIota(10))
del a
gc.collect()
- self.assertTrue(b.isIdentity()) ; self.assertEqual(len(b),11)
+ self.assertTrue(b.isIota(11))
self.assertTrue(not c.isAllocated())
del b
gc.collect()
self.assertTrue(not c.isAllocated())
pass
- # @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
def test26(self):
d=DataArrayInt(15) ; d.iota()
d.rearrange(3)
self.assertEqual(a2.tolist(),[[0.,1.,2.],[3.,4.,5.],[6.,7.,8.],[9.,10.,11.],[12.,13.,14.]])
pass
+ @unittest.skipUnless(MEDCouplingHasNumPyBindings(),"requires numpy")
+ def test27(self):
+ m0=DenseMatrix(DataArrayDouble([2,3,4,5,1,6]),2,3)
+ m0np=m0.toNumPyMatrix()
+ self.assertEqual(m0np.shape,(2,3))
+ self.assertEqual(m0np.tolist(),[[2.0,3.0,4.0],[5.0,1.0,6.0]])
+ pass
+
def setUp(self):
pass
pass