1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2015 CEA/DEN, EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 from MEDCoupling import *
23 from math import pi,e,sqrt,cos,sin
24 from datetime import datetime
25 from MEDCouplingDataForTest import MEDCouplingDataForTest
26 import rlcompleter,readline # this line has to be here, to ensure a usability of MEDCoupling/MEDLoader. B4 removing it please notify to anthony.geay@cea.fr
28 class MEDCouplingBasicsTest3(unittest.TestCase):
29 def testSwigGetItem1(self):
35 da.setInfoOnComponent(0,"X [m]")
36 da.setInfoOnComponent(1,"Y [m]")
37 da.setInfoOnComponent(2,"Z [km]")
39 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51],da2.getValues())
41 self.assertEqual([19, 20, 21],da2.getValues())
44 except InterpKernelException as e:
47 self.assertTrue(False)
50 self.assertEqual([24, 27, 30, 33, 36, 39, 42, 45, 48],da2.getValues())
52 self.assertEqual([22, 23, 24, 25, 26, 27, 28, 29, 30],da2.getValues())
54 self.assertTrue(da2.isEqual(da))
56 self.assertTrue(da2.isEqual(da))
59 except InterpKernelException as e:
62 self.assertTrue(False)
64 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayInt([23,26,29])))
66 self.assertEqual([22, 25, 28],da2.getValues())
69 except InterpKernelException as e:
72 self.assertTrue(False)
75 self.assertEqual([],da2.getValues())
78 def testSwigGetItem2(self):
79 da=DataArrayDouble.New()
84 da.setInfoOnComponent(0,"X [m]")
85 da.setInfoOnComponent(1,"Y [m]")
86 da.setInfoOnComponent(2,"Z [km]")
88 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., 50., 51.],da2.getValues())
90 self.assertEqual([19., 20., 21],da2.getValues())
93 except InterpKernelException as e:
96 self.assertTrue(False)
99 self.assertEqual([24., 27., 30., 33., 36., 39., 42., 45., 48.],da2.getValues())
101 self.assertEqual([22., 23., 24., 25., 26., 27., 28., 29., 30.],da2.getValues())
103 self.assertTrue(da2.isEqual(da,1e-12))
105 self.assertTrue(da2.isEqual(da,1e-12))
108 except InterpKernelException as e:
109 self.assertTrue(True)
111 self.assertTrue(False)
113 self.assertTrue(da[5:8,-2].isEqualWithoutConsideringStr(DataArrayDouble([23.,26.,29.]),1e-12))
115 self.assertEqual([22., 25., 28.],da2.getValues())
118 except InterpKernelException as e:
119 self.assertTrue(True)
121 self.assertTrue(False)
124 self.assertEqual([],da2.getValues())
127 def testSwigSetItem1(self):
128 da=DataArrayInt.New()
132 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
133 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
135 self.assertEqual([7, 8, 3, 10, 11, 12, 13, 3, 15, 16, 17, 18, 3, 20, 21, 22, 23, 3, 25, 26],da.getValues())
136 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
138 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3, 3, 3, 3, 3, 22, 23, 24, 25, 26],da.getValues())
139 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
141 self.assertEqual([-1, -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1],da.getValues())
142 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
144 self.assertEqual([7, -3, 9, -3, -3, 12, -3, 14, -3, -3, 17, -3, 19, -3, -3, 22, -3, 24, -3, -3],da.getValues())
145 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
146 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
148 self.assertEqual([-7, -7, -7, -7, -7, 12, 13, 14, 15, 16, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7],da.getValues())
149 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
151 self.assertEqual([7, 8, 9, -7, -7, 12, 13, 14, 15, 16, 17, 18, 19, -7, -7, 22, 23, 24, -7, -7],da.getValues())
152 # Let's test with DAI right hand side
153 da1=DataArrayInt.New()
154 da1.setValues([25,26,27,125,126,127],2,3)
156 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
158 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 27, 21, 22, 125, 126, 127, 26],da.getValues())
159 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
160 da[1:,3]=[225,226,227]
161 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 225, 16, 17, 18, 19, 226, 21, 22, 23, 24, 227, 26],da.getValues())
162 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
163 da[1,2:]=[225,226,227]
164 self.assertEqual([7, 8, 9, 10, 11, 12, 13, 225, 226, 227, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],da.getValues())
165 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
166 da[da2,-2:]=[88,99,1010,1111,1212,1313]
167 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
168 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
169 da3=DataArrayInt.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
171 self.assertEqual([7, 8, 9, 88, 99, 12, 13, 14, 15, 16, 17, 18, 19, 1010, 1111, 22, 23, 24, 1212, 1313],da.getValues())
172 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
174 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
175 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
177 self.assertEqual([88, 8, 99, 10, 11, 12, 13, 14, 15, 16, 1010, 18, 1111, 20, 21, 1212, 23, 1313, 25, 26],da.getValues())
178 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
180 self.assertEqual([-8, 8, -8, 10, 11, 12, 13, 14, 15, 16, -8, 18, -8, 20, 21, -8, 23, -8, 25, 26],da.getValues())
183 def testSwigSetItem2(self):
184 da=DataArrayDouble.New()
188 da.setInfoOnComponent(0,"X [m]") ; da.setInfoOnComponent(1,"Y [km]") ; da.setInfoOnComponent(2,"Y [m]")
189 da.setInfoOnComponent(3,"Z [W]") ; da.setInfoOnComponent(4,"ZZ [km]") ;
191 self.assertEqual([7., 8., 3., 10., 11., 12., 13., 3., 15., 16., 17., 18., 3., 20., 21., 22., 23., 3., 25., 26.],da.getValues())
192 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
194 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 3., 3., 3., 3., 3., 22., 23., 24., 25., 26.],da.getValues())
195 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
197 self.assertEqual([-1., -1., -1., -1., -1., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., -1., -1., -1., -1., -1.],da.getValues())
198 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
200 self.assertEqual([7., -3., 9., -3., -3., 12., -3., 14., -3., -3., 17., -3., 19., -3., -3., 22., -3., 24., -3., -3.],da.getValues())
201 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
202 da2=DataArrayInt.New() ; da2.setValues([0,2,3],3,1)
204 self.assertEqual([-7., -7., -7., -7., -7., 12., 13., 14., 15., 16., -7., -7., -7., -7., -7., -7., -7., -7., -7., -7.],da.getValues())
205 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
207 self.assertEqual([7., 8., 9., -7., -7., 12., 13., 14., 15., 16., 17., 18., 19., -7., -7., 22., 23., 24., -7., -7.],da.getValues())
208 # Let's test with DAI right hand side
209 da1=DataArrayDouble.New()
210 da1.setValues([25,26,27,125,126,127],2,3)
212 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
214 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 25., 26., 27., 21., 22., 125., 126., 127., 26.],da.getValues())
215 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
216 da[1:,3]=[225.,226.,227.]
217 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 14., 225., 16., 17., 18., 19., 226., 21., 22., 23., 24., 227., 26.],da.getValues())
218 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
219 da[1,2:]=[225,226,227]
220 self.assertEqual([7., 8., 9., 10., 11., 12., 13., 225., 226., 227., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26.],da.getValues())
221 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
222 da[da2,-2:]=[88,99,1010,1111,1212,1313]
223 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
224 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
225 da3=DataArrayDouble.New(); da3.setValues([88,99,1010,1111,1212,1313],3,2)
227 self.assertEqual([7., 8., 9., 88., 99., 12., 13., 14., 15., 16., 17., 18., 19., 1010., 1111., 22., 23., 24., 1212., 1313.],da.getValues())
228 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
230 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
231 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
233 self.assertEqual([88., 8., 99., 10., 11., 12., 13., 14., 15., 16., 1010., 18., 1111., 20., 21., 1212., 23., 1313., 25., 26.],da.getValues())
234 da.rearrange(1) ; da.iota(7) ; da.rearrange(5)
236 self.assertEqual([-8., 8., -8., 10., 11., 12., 13., 14., 15., 16., -8., 18., -8., 20., 21., -8., 23., -8., 25., 26.],da.getValues())
239 def testSwigDADOp(self):
240 da=DataArrayDouble.New()
243 da1=DataArrayDouble.New()
247 self.assertEqual([15., 17., 19., 21., 23., 25., 27., 29., 31., 33., 35., 37.],da2.getValues())
250 self.assertTrue(da2.isEqual(da3,1e-12))
252 self.assertEqual([6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0],da2.getValues())
254 self.assertEqual([-6.0, -7.0, -8.0, -9.0, -10.0, -11.0, -12.0, -13.0, -14.0, -15.0, -16.0, -17.0],da2.getValues())
256 self.assertEqual([21.0, 24.0, 27.0, 30.0, 33.0, 36.0, 39.0, 42.0, 45.0, 48.0, 51.0, 54.0],da2.getValues())
258 self.assertEqual([21.0, 24.0, 27.0, 30.0, 33.0, 36.0, 39.0, 42.0, 45.0, 48.0, 51.0, 54.0],da2.getValues())
260 self.assertEqual([56.0, 72.0, 90.0, 110.0, 132.0, 156.0, 182.0, 210.0, 240.0, 272.0, 306.0, 342.0],da2.getValues())
262 self.assertEqual([1.75, 2.0, 2.25, 2.5, 2.75, 3.0, 3.25, 3.5, 3.75, 4.0, 4.25, 4.5],da2.getValues())
265 self.assertTrue(da4.isUniform(1.,1e-12))
266 st1=da.getHiddenCppPointer()
268 st2=da.getHiddenCppPointer()
269 self.assertEqual(st1,st2)
270 self.assertTrue(da.isEqual(da1,1e-12))
272 st2=da.getHiddenCppPointer()
273 self.assertEqual(st1,st2)
274 self.assertEqual(range(12),da.getValues())
276 st2=da.getHiddenCppPointer()
277 self.assertEqual(st1,st2)
278 self.assertEqual([8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0],da.getValues())
280 st2=da.getHiddenCppPointer()
281 self.assertEqual(st1,st2)
282 self.assertEqual([4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0],da.getValues())
284 st2=da.getHiddenCppPointer()
285 self.assertEqual(st1,st2)
286 self.assertEqual([32.0, 45.0, 60.0, 77.0, 96.0, 117.0, 140.0, 165.0, 192.0, 221.0, 252.0, 285.0],da.getValues())
288 self.assertEqual(st1,st2)
289 self.assertEqual([4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0],da.getValues())
291 st2=da.getHiddenCppPointer()
292 self.assertEqual(st1,st2)
293 self.assertEqual([2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5],da.getValues())
295 da5=DataArrayDouble.New()
296 da5.setValues([5.,4.,3.,2.],4,1)
297 da*=da5 # it works with unmathing number of compo
298 st2=da.getHiddenCppPointer()
299 self.assertEqual(st1,st2)
300 self.assertEqual([10.0, 12.5, 15.0, 14.0, 16.0, 18.0, 15.0, 16.5, 18.0, 13.0, 14.0, 15.0],da.getValues())
305 ids=DataArrayInt.New()
306 ids.setValues([3,4,7],3,1)
308 self.assertEqual([7.,8.,9.,10.,11.,12.,13.,14.,15.,5.,8.,9.,5.,8.,9.,22.,23.,24.,25.,26.,27.,5.,8.,9.,31.,32.,33.,34.,35.,36.0],da.getValues())
310 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
312 self.assertEqual([7.,8.,9.,10.,11.,12.,13.,14.,15.,16.,5.,8.,19.,5.,8.,22.,23.,24.,25.,26.,27.,28.,5.,8.,31.,32.,33.,34.,35.,36.],da.getValues())
315 def testSwigDAIOp(self):
316 da=DataArrayInt.New()
319 da1=DataArrayInt.New()
323 self.assertEqual([15,17,19,21,23,25,27,29,31,33,35,37],da2.getValues())
326 self.assertTrue(da2.isEqual(da3))
328 self.assertEqual([6,7,8,9,10,11,12,13,14,15,16,17],da2.getValues())
330 self.assertEqual([-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17],da2.getValues())
332 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
334 self.assertEqual([21,24,27,30,33,36,39,42,45,48,51,54.0],da2.getValues())
336 self.assertEqual([56,72,90,110,132,156,182,210,240,272,306,342.0],da2.getValues())
338 self.assertEqual([1,2,2,2,2,3,3,3,3,4,4,4],da2.getValues())
341 self.assertTrue(da4.isUniform(0))
342 st1=da.getHiddenCppPointer()
344 st2=da.getHiddenCppPointer()
345 self.assertEqual(st1,st2)
346 self.assertTrue(da.isEqual(da1))
348 st2=da.getHiddenCppPointer()
349 self.assertEqual(st1,st2)
350 self.assertEqual(range(12),da.getValues())
352 st2=da.getHiddenCppPointer()
353 self.assertEqual(st1,st2)
354 self.assertEqual([8,10,12,14,16,18,20,22,24,26,28,30],da.getValues())
356 st2=da.getHiddenCppPointer()
357 self.assertEqual(st1,st2)
358 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
360 st2=da.getHiddenCppPointer()
361 self.assertEqual(st1,st2)
362 self.assertEqual([32,45,60,77,96,117,140,165,192,221,252,285],da.getValues())
364 self.assertEqual(st1,st2)
365 self.assertEqual([4,5,6,7,8,9,10,11,12,13,14,15],da.getValues())
367 st2=da.getHiddenCppPointer()
368 self.assertEqual(st1,st2)
369 self.assertEqual([2,2, 3,3, 4,4, 5,5, 6,6, 7,7],da.getValues())
371 da5=DataArrayInt.New()
372 da5.setValues([5,4,3,2],4,1)
373 da*=da5 # it works with unmathing number of compo
374 st2=da.getHiddenCppPointer()
375 self.assertEqual(st1,st2)
376 self.assertEqual([10,10, 15,12,16,16,15,15, 18,12,14,14],da.getValues())
378 st2=da.getHiddenCppPointer()
379 self.assertEqual(st1,st2)
380 self.assertEqual([4,4,3,0,4,4,3,3,0,0,2,2],da.getValues())
385 ids=DataArrayInt.New()
386 ids.setValues([3,4,7],3,1)
388 self.assertEqual([7,8,9,10,11,12,13,14,15,5,8,9,5,8,9,22,23,24,25,26,27,5,8,9,31,32,33,34,35,36],da.getValues())
390 da.rearrange(1) ; da.iota(7) ; da.rearrange(3)
392 self.assertEqual([7,8,9,10,11,12,13,14,15,16,5,8,19,5,8,22,23,24,25,26,27,28,5,8,31,32,33,34,35,36],da.getValues())
395 def testSwigDAIOp2(self):
396 da=DataArrayInt.New()
397 st=da.getHiddenCppPointer()
407 self.assertEqual(st,da.getHiddenCppPointer())
408 self.assertEqual(da.getValues(),[7,7,7,3,8,8,7,7,7,9,14,20,12,17,26,7,7,7,18,23,38,21,26,44,24,29,70,27,32,76])
411 def testSwigDAIOp3(self):
412 da=DataArrayInt.New()
413 self.assertRaises(InterpKernelException,da.__len__)
414 self.assertRaises(InterpKernelException,da.__int__)
416 self.assertTrue(False)
419 da.rearrange(1) ; da.fillWithZero()
421 self.assertEqual(36,len(da));
424 self.assertRaises(InterpKernelException,tmp.__int__)
425 self.assertEqual(12,len(da));
427 for elt in enumerate(l):
430 ref=[0,0,0,0,0,1,0,0,2,0,0,3,0,0,4,0,0,5,0,0,6,0,0,7,0,0,8,0,0,9,0,0,10,0,0,11]
431 self.assertEqual(ref,da.getValues());
433 l=[int(elt) for elt in l1]
434 self.assertEqual(ref,da.getValues());
435 self.assertEqual(11,int(da[-1:]))
438 def testSwigDADOp3(self):
439 da=DataArrayDouble.New()
440 self.assertRaises(InterpKernelException,da.__len__)
441 self.assertRaises(InterpKernelException,da.__float__)
443 self.assertTrue(False)
446 da.rearrange(1) ; da.fillWithZero()
448 self.assertEqual(36,len(da));
451 self.assertRaises(InterpKernelException,tmp.__float__)
452 self.assertEqual(12,len(da));
454 for elt in enumerate(l):
457 ref=[0.,0.,0.,0.,0.,1.,0.,0.,2.,0.,0.,3.,0.,0.,4.,0.,0.,5.,0.,0.,6.,0.,0.,7.,0.,0.,8.,0.,0.,9.,0.,0.,10.,0.,0.,11.]
458 self.assertEqual(ref,da.getValues());
460 l=[float(elt) for elt in l1]
461 self.assertEqual(ref,da.getValues());
462 self.assertEqual(11.,float(da[-1:]))
465 def testSwigDataArrayIntIterator1(self):
466 da=DataArrayInt.New()
470 # __getitem__ testing
475 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
480 self.assertEqual([4, 7, 10, 13],li)
485 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
486 # __setitem__ testing
488 da2=DataArrayInt.New()
498 self.assertTrue(da.isEqual(da2))
506 self.assertTrue(da.isUniform(5))
513 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
520 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
523 def testSwigDataArrayDoubleIterator1(self):
524 da=DataArrayDouble.New()
528 # __getitem__ testing
533 self.assertEqual([3, 4, 6, 7, 9, 10, 12, 13],li)
538 self.assertEqual([4, 7, 10, 13],li)
543 self.assertEqual([4, 3, 2, 7, 6, 5, 10, 9, 8, 13, 12, 11],li)
544 # __setitem__ testing
546 da2=DataArrayDouble.New()
556 self.assertTrue(da.isEqual(da2,1e-12))
564 self.assertTrue(da.isUniform(5,1e-12))
571 self.assertEqual([8, 9, 12, 8, 9, 12, 8, 9, 12, 8, 9, 12],da.getValues())
578 self.assertEqual([2, 3, 7, 5, 6, 7, 8, 9, 7, 11, 12, 7],da.getValues())
581 def testSwigUMeshIterator1(self):
582 m=MEDCouplingDataForTest.build2DTargetMesh_1()
586 li1+=cell.getAllConn()[1:]
587 li2+=[cell.getType()]
589 self.assertEqual(li1,[0, 3, 4, 1, 1, 4, 2, 4, 5, 2, 6, 7, 4, 3, 7, 8, 5, 4])
590 self.assertEqual(li2,[4, 3, 3, 4, 4])
593 def testSwigUMeshIterator2(self):
594 m=MEDCouplingDataForTest.build2DTargetMesh_1()
595 self.assertRaises(InterpKernelException,m.cellsByType);
596 m.rearrange2ConsecutiveCellTypes()
600 for cellsByType in m.cellsByType():
601 li1.append(cellsByType.getType())
602 li2.append(cellsByType.getNumberOfElems())
604 for cell in cellsByType:
607 t[1]=cell.getAllConn()[1:]
612 self.assertEqual(li1,[4, 3])
613 self.assertEqual(li2,[3, 2])
614 self.assertEqual(li3,[[[4, (0, 3, 4, 1)], [4, (6, 7, 4, 3)], [4, (7, 8, 5, 4)]], [[3, (1, 4, 2)], [3, (4, 5, 2)]]])
617 def testDAIAggregateMulti1(self):
619 a.setValues(range(4),2,2)
622 b.setValues(range(6),3,2)
623 c=DataArrayInt.Aggregate([a,b])
624 self.assertEqual(range(4)+range(6),c.getValues())
625 self.assertEqual("aa",c.getName())
626 self.assertEqual(5,c.getNumberOfTuples())
627 self.assertEqual(2,c.getNumberOfComponents())
630 def testMergeUMeshes2(self):
631 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
632 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
633 m3=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
636 m2_2=m2.buildPartOfMySelf(vec1,False);
638 m3_2=m3.buildPartOfMySelf(vec2,False);
642 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]);
643 self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4])
644 m4=MEDCouplingUMesh.MergeUMeshes(ms);
645 m4.checkConsistencyLight();
646 self.assertEqual(10,m4.getNumberOfCells());
647 self.assertEqual(20,m4.getNumberOfNodes());
648 self.assertEqual(45,m4.getNodalConnectivityArrayLen());
649 m4bis=MEDCouplingMesh.MergeMeshes(ms);
650 self.assertTrue(m4.isEqual(m4bis,1e-12))
654 m4_1=m4.buildPartOfMySelf(vec3,False);
655 m4_1.setName(m1.getName());
656 self.assertTrue(m4_1.isEqual(m1,1e-12));
659 m4_2=m4.buildPartOfMySelf(vec4,False);
660 cellCor,nodeCor=m4_2.checkGeoEquivalWith(m2_2,10,1e-12);
663 m4_3=m4.buildPartOfMySelf(vec5,False);
664 self.assertEqual(2,m4_3.getNumberOfCells());
665 self.assertEqual(3,m4_3.getNumberOfNodes());
667 m4_3.setName(m3_2.getName());
668 self.assertTrue(m4_3.isEqual(m3_2,1e-12));
672 def testBuild0DMeshFromCoords1(self):
673 sourceCoords=[-0.3,-0.3,0., 0.7,-0.3,0., -0.3,0.7,0., 0.7,0.7,0.]
674 coo=DataArrayDouble.New();
675 coo.setValues(sourceCoords,4,3);
677 m=MEDCouplingUMesh.Build0DMeshFromCoords(coo);
678 m.checkConsistencyLight();
679 self.assertEqual(4,m.getNumberOfNodes());
680 self.assertEqual(4,m.getNumberOfCells());
681 self.assertEqual(3,m.getSpaceDimension());
682 self.assertEqual(0,m.getMeshDimension());
683 types1=m.getAllGeoTypes();
684 self.assertEqual([NORM_POINT1],types1);
686 conn=m.getNodeIdsOfCell(i);
687 self.assertEqual([i],conn);
688 self.assertTrue(NORM_POINT1==m.getTypeOfCell(i));
690 self.assertEqual(m.getName(),"My0D");
693 def testDescriptionInMeshTimeUnit1(self):
695 m=MEDCouplingDataForTest.build2DTargetMesh_1();
696 m.setDescription(text1);
697 self.assertEqual(m.getDescription(),text1);
699 self.assertTrue(m.isEqual(m2,1e-12));
700 self.assertEqual(m2.getDescription(),text1);
701 m2.setDescription("ggg");
702 self.assertTrue(not m.isEqual(m2,1e-12));
704 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
705 f.setTimeUnit(text1);
706 self.assertEqual(f.getTimeUnit(),text1);
708 self.assertEqual(f2.getTimeUnit(),text1);
712 def testMultiFields1(self):
713 mfs=MEDCouplingDataForTest.buildMultiFields_1();
715 dms,refs=mfs.getDifferentMeshes()
717 das2,refs2=mfs.getDifferentArrays()
718 self.assertEqual(5,len(mfs.getFields()))
719 self.assertEqual(1,len(mfs.getFields()[0].getArrays()));
720 self.assertEqual(2,len(mfs.getFields()[1].getArrays()));
721 self.assertEqual(1,len(mfs.getFields()[2].getArrays()));
722 self.assertEqual(1,len(mfs.getFields()[3].getArrays()));
723 self.assertEqual(1,len(mfs.getFields()[4].getArrays()));
724 self.assertEqual(5,len(ms));
725 self.assertEqual(2,len(dms));
726 self.assertEqual(6,len(das));
727 self.assertEqual(5,len(das2));
729 self.assertTrue(mfs.isEqual(mfs2,1e-12,1e-12))
732 def testFieldOverTime1(self):
733 fs=MEDCouplingDataForTest.buildMultiFields_2();
734 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
735 f4bis=fs[4].buildNewTimeReprFromThis(ONE_TIME,False);
737 self.assertRaises(InterpKernelException,MEDCouplingFieldOverTime.New,fs);
738 f4bis.setTime(2.7,20,21);
739 fot=MEDCouplingFieldOverTime.New(fs);
740 dt=fot.getDefinitionTimeZone();
741 hs=dt.getHotSpotsTime();
742 self.assertEqual(6,len(hs));
743 expected1=[0.2,0.7,1.2,1.35,1.7,2.7]
745 self.assertAlmostEqual(expected1[i],hs[i],12);
747 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.2);
748 self.assertEqual(0,meshId);
749 self.assertEqual(0,arrId);
750 self.assertEqual(0,arrIdInField);
751 self.assertEqual(0,fieldId);
753 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(0.7);
754 self.assertEqual(0,meshId);
755 self.assertEqual(1,arrId);
756 self.assertEqual(0,arrIdInField);
757 self.assertEqual(1,fieldId);
759 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeLeft(1.2);#**** WARNING left here
760 self.assertEqual(0,meshId);
761 self.assertEqual(2,arrId);
762 self.assertEqual(1,arrIdInField);
763 self.assertEqual(1,fieldId);
765 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.2);#**** WARNING right again here
766 self.assertEqual(1,meshId);
767 self.assertEqual(3,arrId);
768 self.assertEqual(0,arrIdInField);
769 self.assertEqual(2,fieldId);
771 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.35);
772 self.assertEqual(1,meshId);
773 self.assertEqual(3,arrId);
774 self.assertEqual(0,arrIdInField);
775 self.assertEqual(2,fieldId);
777 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(1.7);
778 self.assertEqual(0,meshId);
779 self.assertEqual(3,arrId);
780 self.assertEqual(0,arrIdInField);
781 self.assertEqual(3,fieldId);
783 meshId,arrId,arrIdInField,fieldId=dt.getIdsOnTimeRight(2.7);
784 self.assertEqual(1,meshId);
785 self.assertEqual(4,arrId);
786 self.assertEqual(0,arrIdInField);
787 self.assertEqual(4,fieldId);
789 dt2=MEDCouplingDefinitionTime();
790 self.assertTrue(not dt2.isEqual(dt));
792 dt2.assign(dt);#to check memory management
793 self.assertTrue(dt2.isEqual(dt));
795 dt3=MEDCouplingDefinitionTime();
799 def testDAICheckAndPreparePermutation1(self):
800 vals1=[9,10,0,6,4,11,3,7];
801 expect1=[5,6,0,3,2,7,1,4];
802 vals2=[9,10,0,6,10,11,3,7];
803 da=DataArrayInt.New();
804 da.setValues(vals1,8,1);
805 da2=da.checkAndPreparePermutation();
806 self.assertEqual(8,da2.getNumberOfTuples());
807 self.assertEqual(1,da2.getNumberOfComponents());
809 self.assertEqual(expect1[i],da2.getIJ(i,0));
812 da=DataArrayInt.New();
815 da2=da.checkAndPreparePermutation();
816 self.assertEqual(1,da2.getNumberOfComponents());
817 self.assertTrue(da2.isIota(8));
819 da=DataArrayInt.New();
821 da.setValues(vals2,8,1);
822 self.assertRaises(InterpKernelException,da.checkAndPreparePermutation);
825 def testDAIChangeSurjectiveFormat1(self):
826 vals1=[0,3,2,3,2,2,1,2]
827 expected1=[0,1,2,6,8]
828 expected2=[0, 6, 2,4,5,7, 1,3]
829 da=DataArrayInt.New();
830 da.setValues(vals1,8,1);
832 da2,da2I=da.changeSurjectiveFormat(4);
833 self.assertEqual(5,da2I.getNumberOfTuples());
834 self.assertEqual(8,da2.getNumberOfTuples());
835 self.assertEqual(expected1,da2I.getValues());
836 self.assertEqual(expected2,da2.getValues());
838 self.assertRaises(InterpKernelException,da.changeSurjectiveFormat,3);
842 def testUMeshGetCellIdsLyingOnNodes1(self):
843 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
846 da=m.getCellIdsLyingOnNodes(nodeIds1,True);
847 self.assertEqual(1,da.getNumberOfTuples());
848 self.assertEqual(1,da.getNumberOfComponents());
849 self.assertEqual(1,da.getIJ(0,0));
850 da2=DataArrayInt.New()
851 da2.setValues(nodeIds2,2,1)
852 da=m.getCellIdsLyingOnNodes(da2,False);
853 self.assertEqual(2,da.getNumberOfTuples());
854 self.assertEqual(1,da.getNumberOfComponents());
855 self.assertEqual(3,da.getIJ(0,0));
856 self.assertEqual(4,da.getIJ(1,0));
859 def testUMeshFindCellIdsOnBoundary1(self):
860 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
861 da5=m.findCellIdsOnBoundary();
862 self.assertTrue(da5.isIota(5));
865 def testMeshSetTime1(self):
866 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
867 m2=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
869 self.assertTrue(m1.isEqual(m2,1e-12));
870 m1.setTime(3.14,6,7);
871 tmp3,tmp1,tmp2=m1.getTime();
872 self.assertEqual(6,tmp1);
873 self.assertEqual(7,tmp2);
874 self.assertAlmostEqual(3.14,tmp3,12);
875 self.assertTrue(not m1.isEqual(m2,1e-12));
876 m2.setTime(3.14,6,7);
877 self.assertTrue(m1.isEqual(m2,1e-12));
878 m1.setTimeUnit("ms");
879 self.assertTrue(m1.getTimeUnit()=="ms");
880 m1.setTimeUnit("us");
881 self.assertTrue(m1.getTimeUnit()=="us");
882 self.assertTrue(not m1.isEqual(m2,1e-12));
883 m2.setTimeUnit("us");
884 self.assertTrue(m1.isEqual(m2,1e-12));
885 m2.setTime(3.14,6,8);
886 self.assertTrue(not m1.isEqual(m2,1e-12));
887 m2.setTime(3.14,7,7);
888 self.assertTrue(not m1.isEqual(m2,1e-12));
889 m2.setTime(3.15,6,7);
890 self.assertTrue(not m1.isEqual(m2,1e-12));
892 m1.setTime(10.34,55,12);
894 self.assertTrue(m1.isEqual(m3,1e-12));
895 tmp3,tmp1,tmp2=m3.getTime();
896 self.assertEqual(55,tmp1);
897 self.assertEqual(12,tmp2);
898 self.assertAlmostEqual(10.34,tmp3,12);
902 a=DataArrayDouble.New();
903 a.setValues(coo1,4,1);
904 b=MEDCouplingCMesh.New();
907 b.setTime(5.67,8,100);
908 tmp3,tmp1,tmp2=b.getTime();
909 self.assertEqual(8,tmp1);
910 self.assertEqual(100,tmp2);
911 self.assertAlmostEqual(5.67,tmp3,12);
913 self.assertTrue(c.isEqual(b,1e-12));
914 tmp3,tmp1,tmp2=c.getTime();
915 self.assertEqual(8,tmp1);
916 self.assertEqual(100,tmp2);
917 self.assertAlmostEqual(5.67,tmp3,12);
920 def testApplyFuncTwo1(self):
921 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
922 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
925 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
926 da=DataArrayDouble.New();
927 da.setValues(vals,5,3);
930 self.assertRaises(InterpKernelException,da.applyFuncCompo,1,"y+z");
931 da.setInfoOnComponent(0,"x [m]");
932 da.setInfoOnComponent(1,"y [mm]");
933 da.setInfoOnComponent(2,"z [km]");
935 self.assertRaises(InterpKernelException, da.applyFuncCompo, 1, "x+y+zz+zzz");
936 self.assertRaises(InterpKernelException, da.applyFuncCompo, 1, "toto(x+y)");
937 self.assertRaises(InterpKernelException, da.applyFuncCompo, 1, "x/0");
939 da2=da.applyFuncCompo(1,"y+z");
940 self.assertEqual(1,da2.getNumberOfComponents());
941 self.assertEqual(5,da2.getNumberOfTuples());
942 expected1=[32.,34.,36.,38.,40.]
944 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
946 da2=da.applyFunc(1,"y+z");
947 expected2=[12.,14.,16.,18.,20.]
949 self.assertAlmostEqual(expected2[i],da2.getIJ(0,i),12);
952 self.assertEqual(3,f1.getNumberOfComponents());
953 self.assertEqual(5,f1.getNumberOfTuples());
954 f1.applyFuncCompo(1,"y+z");
955 self.assertEqual(1,f1.getNumberOfComponents());
956 self.assertEqual(5,f1.getNumberOfTuples());
958 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
963 def testApplyFuncThree1(self):
964 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
965 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
968 vals=[1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.,5.,15.,25.]
969 da=DataArrayDouble.New();
970 da.setValues(vals,5,3);
974 vs[0]="x"; vs[1]="Y"; vs[2]="z";
975 self.assertRaises(InterpKernelException, da.applyFuncNamedCompo, 1, vs, "y+z");
976 self.assertRaises(InterpKernelException, da.applyFuncNamedCompo, 1, vs, "x+Y+z+zz+zzz");
977 self.assertRaises(InterpKernelException, da.applyFuncNamedCompo, 1, vs, "x/0");
979 da2=da.applyFuncNamedCompo(1,vs,"y+z");
980 expected1=[32.,34.,36.,38.,40.]
982 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),12);
984 self.assertRaises(InterpKernelException, da.applyFuncNamedCompo, 1, ["x","y","z","a"],"x+a")
986 self.assertEqual(3,f1.getNumberOfComponents());
987 self.assertEqual(5,f1.getNumberOfTuples());
988 f1.applyFuncNamedCompo(1,vs,"y+z");
989 self.assertEqual(1,f1.getNumberOfComponents());
990 self.assertEqual(5,f1.getNumberOfTuples());
992 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
996 def testFillFromAnalyticTwo1(self):
997 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
998 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
999 self.assertRaises(InterpKernelException,m1.fillFromAnalyticCompo,ON_NODES,1,"y+z");
1000 m1.getCoords().setInfoOnComponent(0,"x [m]");
1001 m1.getCoords().setInfoOnComponent(1,"y");
1002 m1.getCoords().setInfoOnComponent(2,"z");
1003 f1=m1.fillFromAnalyticCompo(ON_NODES,1,"y+z");
1004 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
1005 self.assertEqual("us",f1.getTimeUnit())
1006 self.assertEqual(1,f1.getNumberOfComponents());
1007 self.assertEqual(9,f1.getNumberOfTuples());
1008 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
1010 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
1014 def testFillFromAnalyticThree1(self):
1015 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
1016 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
1018 vs[0]="x"; vs[1]="Y"; vs[2]="z";
1019 self.assertRaises(InterpKernelException,m1.fillFromAnalyticNamedCompo,ON_NODES,1,vs,"y+z");
1021 f1=m1.fillFromAnalyticNamedCompo(ON_NODES,1,vs,"y+z");
1022 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
1023 self.assertEqual("us",f1.getTimeUnit())
1024 self.assertEqual(1,f1.getNumberOfComponents());
1025 self.assertEqual(9,f1.getNumberOfTuples());
1026 expected1=[0.2, 0.7, 1.2, 0.7, 1.2, 1.7, 1.2, 1.7, 2.2]
1028 self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12);
1032 def testDAUnitVar1(self):
1033 da=DataArrayDouble.New();
1035 da.setInfoOnComponent(0,"XPS [m]");
1036 st1=da.getVarOnComponent(0);
1037 self.assertTrue(st1=="XPS");
1038 st2=da.getUnitOnComponent(0);
1039 self.assertTrue(st2=="m");
1041 da.setInfoOnComponent(0,"XPS [m]");
1042 st1=da.getVarOnComponent(0);
1043 self.assertTrue(st1=="XPS");
1044 st2=da.getUnitOnComponent(0);
1045 self.assertTrue(st2=="m");
1047 da.setInfoOnComponent(0,"XPP [m]");
1048 st1=da.getVarOnComponent(0);
1049 self.assertTrue(st1=="XPP");
1050 st2=da.getUnitOnComponent(0);
1051 self.assertTrue(st2=="m");
1053 da.setInfoOnComponent(0,"XPP kdep kefer [ m ]");
1054 st1=da.getVarOnComponent(0);
1055 self.assertTrue(st1=="XPP kdep kefer");
1056 st2=da.getUnitOnComponent(0);
1057 self.assertTrue(st2==" m ");
1059 da.setInfoOnComponent(0," XPP k[ dep k]efer [ m^ 2/s^3*kJ ]");
1060 st1=da.getVarOnComponent(0);
1061 self.assertTrue(st1==" XPP k[ dep k]efer");
1062 st2=da.getUnitOnComponent(0);
1063 self.assertTrue(st2==" m^ 2/s^3*kJ ");
1065 da.setInfoOnComponent(0," XPP kefer ");
1066 st1=da.getVarOnComponent(0);
1067 self.assertTrue(st1==" XPP kefer ");
1068 st2=da.getUnitOnComponent(0);
1069 self.assertTrue(st2=="");
1071 da.setInfoOnComponent(0,"temperature( bof)");
1072 st1=da.getVarOnComponent(0);
1073 self.assertTrue(st1=="temperature( bof)");
1074 st2=da.getUnitOnComponent(0);
1075 self.assertTrue(st2=="");
1077 da.setInfoOnComponent(0,"kkk [m]");
1078 da.setInfoOnComponent(1,"ppp [m^2/kJ]");
1079 da.setInfoOnComponent(2,"abcde [MW/s]");
1081 vs=da.getVarsOnComponent();
1082 self.assertEqual(3,len(vs));
1083 self.assertTrue(vs[0]=="kkk");
1084 self.assertTrue(vs[1]=="ppp");
1085 self.assertTrue(vs[2]=="abcde");
1086 vs=da.getUnitsOnComponent();
1087 self.assertEqual(3,len(vs));
1088 self.assertTrue(vs[0]=="m");
1089 self.assertTrue(vs[1]=="m^2/kJ");
1090 self.assertTrue(vs[2]=="MW/s");
1093 def testGaussCoordinates1(self):
1094 #Testing 1D cell types
1095 m1=MEDCouplingDataForTest.build1DMultiTypes_1();
1096 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
1101 f.setGaussLocalizationOnType(NORM_SEG2,refCoo1,gsCoo1,wg1);
1104 refCoo2=[-1.0,1.0,0.0];
1105 f.setGaussLocalizationOnType(NORM_SEG3,refCoo2,gsCoo2,wg2);
1107 resToTest=f.getLocalizationOfDiscr();
1108 self.assertEqual(3,resToTest.getNumberOfComponents());
1109 self.assertEqual(2,resToTest.getNumberOfTuples());
1110 expected1=[0.6,0.6,0.6, 0.6,0.6,0.6]
1112 self.assertAlmostEqual(expected1[i],resToTest.getIJ(0,i),14);
1115 #Testing 2D cell types
1116 m2=MEDCouplingDataForTest.build2DMultiTypes_1();
1117 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
1120 tria3CooGauss=[ 0.1, 0.8, 0.2, 0.7 ]
1121 gsCoo3=tria3CooGauss
1122 tria3CooRef=[ 0.0, 0.0, 1.0 , 0.0, 0.0, 1.0 ]
1123 refCoo3=tria3CooRef;
1124 f.setGaussLocalizationOnType(NORM_TRI3,refCoo3,gsCoo3,wg3);
1126 tria6CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4 ]
1127 gsCoo4=tria6CooGauss;
1128 tria6CooRef=[0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.5, 0.0, 0.5, 0.5, 0.0, 0.5]
1129 refCoo4=tria6CooRef;
1130 f.setGaussLocalizationOnType(NORM_TRI6,refCoo4,gsCoo4,wg4);
1131 wg5=[0.3,0.3,0.3,0.3];
1132 quad4CooGauss=[ 0.3, 0.2, 0.2, 0.1, 0.2, 0.4, 0.15, 0.27 ]
1133 gsCoo5=quad4CooGauss;
1134 quad4CooRef=[-1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0]
1135 refCoo5=quad4CooRef;
1136 f.setGaussLocalizationOnType(NORM_QUAD4,refCoo5,gsCoo5,wg5);
1137 wg6=[0.3,0.3,0.3,0.3];
1138 quad8CooGauss=[ 0.34, 0.16, 0.21, 0.3, 0.23, 0.4, 0.14, 0.37 ]
1139 gsCoo6=quad8CooGauss;
1140 quad8CooRef=[ -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 0.0, -1.0, 1.0, 0.0, 0.0, 1.0, -1.0, 0.0]
1141 refCoo6=quad8CooRef;
1142 f.setGaussLocalizationOnType(NORM_QUAD8,refCoo6,gsCoo6,wg6);
1144 resToTest=f.getLocalizationOfDiscr();
1145 self.assertEqual(3,resToTest.getNumberOfComponents());
1146 self.assertEqual(13,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
1147 expected2=[5.1,1.55,0.0, 4.7,1.65,0.0,
1148 2.32,1.52,0.0, 1.6,1.32,0.0, 3.52,1.26,0.0,#TRI6
1149 2.6,1.6,0.0, 2.4,1.8,0.0, 2.4,1.2,0.0, 2.3,1.46,0.0,#QUAD4
1150 2.32,2.68,0.0, 2.6,2.42,0.0, 2.8,2.46,0.0, 2.74,2.28,0.0 ];#QUAD8
1151 for i in xrange(39):
1152 self.assertAlmostEqual(expected2[i],resToTest.getIJ(0,i),14);
1155 #Testing 3D cell types
1156 m3=MEDCouplingDataForTest.build3DMultiTypes_1();
1157 f=MEDCouplingFieldDouble.New(ON_GAUSS_PT,ONE_TIME);
1161 tetra4CooGauss=[0.34, 0.16, 0.21]
1162 gsCoo7=tetra4CooGauss;
1163 tetra4CooRef=[0.0,1.0,0.0, 0.0,0.0,1.0, 0.0,0.0,0.0, 1.0,0.0,0.0]
1164 refCoo7=tetra4CooRef;
1165 f.setGaussLocalizationOnType(NORM_TETRA4,refCoo7,gsCoo7,wg7);
1167 tetra10CooGauss=[0.2, 0.3, 0.1]
1168 gsCoo8=tetra10CooGauss;
1169 tetra10CooRef=[0.0,1.0,0.0, 0.0,0.0,0.0, 0.0,0.0,1.0, 1.0,0.0,0.0, 0.0,0.5,0.0, 0.0,0.0,0.5, 0.0,0.5,0.5, 0.5,0.5,0.0, 0.5,0.0,0.0, 0.5,0.0,0.5]
1170 refCoo8=tetra10CooRef;
1171 f.setGaussLocalizationOnType(NORM_TETRA10,refCoo8,gsCoo8,wg8);
1173 pyra5CooGauss=[0.2, 0.3, 0.1]
1174 gsCoo9=pyra5CooGauss;
1175 pyra5CooRef=[1.0,0.0,0.0, 0.0,1.0,0.0, -1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0]
1176 refCoo9=pyra5CooRef;
1177 f.setGaussLocalizationOnType(NORM_PYRA5,refCoo9,gsCoo9,wg9);
1179 pyra13CooGauss=[0.1, 0.2, 0.7]
1180 gsCoo10=pyra13CooGauss;
1181 pyra13CooRef=[1.0,0.0,0.0, 0.0,1.0,0.0,-1.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.5,0.5,0.0,-0.5,0.5,0.0,-0.5,-0.5,0.0,0.5,-0.5,0.0,0.5,0.0,0.5,0.0,0.5,0.5,-0.5,0.0,0.5,0.0,-0.5,0.5]
1182 refCoo10=pyra13CooRef;
1183 f.setGaussLocalizationOnType(NORM_PYRA13,refCoo10,gsCoo10,wg10);
1185 penta6CooGauss=[0.2, 0.3, 0.1]
1186 gsCoo11=penta6CooGauss;
1187 penta6CooRef=[-1.0,1.0,0.0,-1.0,-0.0,1.0,-1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0]
1188 refCoo11=penta6CooRef;
1189 f.setGaussLocalizationOnType(NORM_PENTA6,refCoo11,gsCoo11,wg11);
1191 penta15CooGauss=[0.2, 0.3,0.15]
1192 gsCoo12=penta15CooGauss;
1193 penta15CooRef=[-1.0,1.0,0.0,-1.0,0.0,1.0,-1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,-1.0,0.5,0.5,-1.0,0.0,0.5,-1.0,0.5,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.5,0.5,1.0,0.0, 0.5,1.0,0.5,0.0]
1194 refCoo12=penta15CooRef;
1195 f.setGaussLocalizationOnType(NORM_PENTA15,refCoo12,gsCoo12,wg12);
1197 hexa8CooGauss=[0.2,0.3,0.15]
1198 gsCoo13=hexa8CooGauss;
1199 hexa8CooRef=[-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0]
1200 refCoo13=hexa8CooRef;
1201 f.setGaussLocalizationOnType(NORM_HEXA8,refCoo13,gsCoo13,wg13);
1203 hexa20CooGauss=[0.11,0.3,0.55]
1204 gsCoo14=hexa20CooGauss;
1205 hexa20CooRef=[-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0,0.0,-1.0,-1.0,1.0,0.0,-1.0,0.0,1.0,-1.0,-1.0,0.0,-1.0,-1.0,-1.0,0.0,1.0,-1.0,0.0,1.0,1.0,0.0,-1.0,1.0,0.0,0.0,-1.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,-1.0,0.0,1.0]
1206 refCoo14=hexa20CooRef;
1207 f.setGaussLocalizationOnType(NORM_HEXA20,refCoo14,gsCoo14,wg14);
1209 resToTest=f.getLocalizationOfDiscr();
1210 self.assertEqual(3,resToTest.getNumberOfComponents());
1211 self.assertEqual(8,resToTest.getNumberOfTuples());#2+3+4+4 gauss points for resp TRI3,TRI6,QUAD4,QUAD8
1212 expected3=[1.312,3.15,1.02, 0.56,3.3,0.6, 2.18,1.1,0.2, 1.18,1.54,0.98, 1.56,0.3,3.6, 1.613,0.801,4.374, 2.6,2.4,2.3, 2.31232,2.3933985,1.553255]
1213 for i in xrange(24):
1214 self.assertAlmostEqual(expected3[i],resToTest.getIJ(0,i),14);
1219 def testP2Localization1(self):
1220 m=MEDCouplingUMesh.New("testP2",2);
1221 coords=[0.,2.,3.5,0.,4.5,1.5,1.2,0.32,3.4,1.,2.1,2.4]
1223 coo=DataArrayDouble.New();
1224 coo.setValues(coords,6,2);
1227 m.insertNextCell(NORM_TRI6,6,conn[0:6])
1228 m.finishInsertingCells();
1230 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
1232 da=DataArrayDouble.New();
1233 vals1=[1.2,2.3,3.4, 2.2,3.3,4.4, 3.2,4.3,5.4, 4.2,5.3,6.4, 5.2,6.3,7.4, 6.2,7.3,8.4]
1234 da.setValues(vals1,6,3);
1238 locs=f.getValueOnMulti(loc);
1239 expected1=[6.0921164547752236, 7.1921164547752232, 8.2921164547752255]
1241 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
1245 def testP2Localization2(self):
1246 m=MEDCouplingUMesh.New("testP2_2",3);
1247 coords=[0.33312787792955395, -0.35155740179580952, -0.03567564825034563, 1.307146326477638, -0.57234557776250305, -0.08608044208272235, 0.5551834466499993, 0.62324964668794192, -0.014638951108536295, 0.37761817224442129, -0.38324019806913578, 0.96283164472856886, 0.79494856035658679, -0.40628057809270046, 0.0021004190225864614, 1.023740446371799, 0.07665912970471335, -0.072889657161871096, 0.54564584619517376, 0.11132872093429744, 0.039647326652013051, 0.27164784387819052, -0.42018012100866675, 0.46563376500745146, 0.89501965094896418, -0.56148455362735061, 0.43337469695473035, 0.49118025152924394, 0.093884938060727313, 0.47216346905220891]
1248 conn=[0,1,2,3,4,5,6,7,8,9]
1249 coo=DataArrayDouble.New();
1250 coo.setValues(coords,10,3);
1253 m.insertNextCell(NORM_TETRA10,10,conn[0:10])
1254 m.finishInsertingCells();
1256 f=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
1258 da=DataArrayDouble.New();
1259 vals1=[1.1,2.1,3.1,4.1,5.2,6.2,7.2,8.2,9.2,10.2]
1260 da.setValues(vals1,10,1);
1263 loc=[0.64637931739890486, -0.16185896817550552, 0.22678966365273748]
1264 locs=f.getValueOnMulti(loc);
1265 expected1=[10.0844021968047]
1267 self.assertAlmostEqual(expected1[i],locs.getIJ(0,i),12);
1271 def testGetValueOn2(self):
1272 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1273 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
1275 arr=DataArrayDouble.New();
1276 nbOfCells=m.getNumberOfCells();
1278 values1=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.]
1279 arr.setValues(values1,nbOfCells,3);
1280 loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45]
1281 f.checkConsistencyLight();
1282 locs=f.getValueOnMulti(loc);
1283 self.assertEqual(5,locs.getNumberOfTuples());
1284 self.assertEqual(3,locs.getNumberOfComponents());
1285 for j in xrange(15):
1286 self.assertAlmostEqual(values1[j],locs.getIJ(0,j),12);
1289 f=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
1291 arr=DataArrayDouble.New();
1292 nbOfNodes=m.getNumberOfNodes();
1294 values2=[7.,107.,10007.,8.,108.,10008.,9.,109.,10009.,10.,110.,10010.,11.,111.,10011.,12.,112.,10012.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.]
1295 arr.setValues(values2,nbOfNodes,3);
1296 loc2=[0.5432,-0.2432, 0.5478,0.1528, 0.5432,-0.2432, 0.5432,-0.2432]
1297 expected2=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124, 9.0272, 109.0272, 10009.0272, 9.0272, 109.0272, 10009.0272]
1298 f.checkConsistencyLight();
1299 loc3=DataArrayDouble.New()
1300 loc3.setValues(loc2,4,2);
1301 locs=f.getValueOnMulti(loc3);
1302 self.assertEqual(4,locs.getNumberOfTuples());
1303 self.assertEqual(3,locs.getNumberOfComponents());
1304 for i in xrange(12):
1305 self.assertAlmostEqual(expected2[i],locs.getIJ(0,i),12);
1310 def testDAIGetIdsNotEqual1(self):
1311 d=DataArrayInt.New();
1312 vals1=[2,3,5,6,8,5,5,6,1,-5]
1313 d.setValues(vals1,10,1);
1314 d2=d.findIdsNotEqual(5);
1315 self.assertEqual(7,d2.getNumberOfTuples());
1316 self.assertEqual(1,d2.getNumberOfComponents());
1317 expected1=[0,1,3,4,7,8,9]
1319 self.assertEqual(expected1[i],d2.getIJ(0,i));
1322 self.assertRaises(InterpKernelException,d.findIdsNotEqual,5);
1326 d3=d.findIdsNotEqualList(vals3);
1327 self.assertEqual(5,d3.getNumberOfTuples());
1328 self.assertEqual(1,d3.getNumberOfComponents());
1329 expected2=[0,1,4,8,9]
1331 self.assertEqual(expected2[i],d3.getIJ(0,i));
1335 def testDAIComputeOffsets1(self):
1336 d=DataArrayInt.New();
1338 expected1=[0,3,8,9,11,11]
1339 d.setValues(vals1,6,1);
1341 self.assertEqual(6,d.getNumberOfTuples());
1342 self.assertEqual(1,d.getNumberOfComponents());
1344 self.assertEqual(expected1[i],d.getIJ(0,i));
1348 def testUMeshHexagonPrism1(self):
1349 coords=[0.8660254037844386, 0.5, 0.0, 0.0, 1.0, 0.0, -0.8660254037844386, 0.5, 0.0, -0.8660254037844386, -0.5, 0.0, 0.0, -1.0, 0.0, 0.8660254037844386, -0.5, 0.0,
1350 0.8660254037844386, 0.5, 2.0, 0.0, 1.0, 2.0, -0.8660254037844386, 0.5, 2.0, -0.8660254037844386, -0.5, 2.0, 0.0, -1.0, 2.0, 0.8660254037844386, -0.5, 2.0];
1351 conn=[1,2,3,4,5,0,7,8,9,10,11,6]
1352 mesh=MEDCouplingUMesh.New("MyFirstHexagonalPrism",3);
1353 coo=DataArrayDouble.New();
1354 coo.setValues(coords,12,3);
1355 mesh.setCoords(coo);
1356 mesh.allocateCells(1);
1357 mesh.insertNextCell(NORM_HEXGP12,12,conn[0:12])
1358 mesh.finishInsertingCells();
1360 mesh.checkConsistencyLight();
1361 vols=mesh.getMeasureField(False);
1362 self.assertEqual(1,vols.getNumberOfTuples());
1363 self.assertEqual(1,vols.getNumberOfComponents());
1364 self.assertAlmostEqual(-5.196152422706632,vols.getIJ(0,0),12);
1365 bary=mesh.computeCellCenterOfMass();
1366 self.assertEqual(1,bary.getNumberOfTuples());
1367 self.assertEqual(3,bary.getNumberOfComponents());
1368 expected1=[0.,0.,1.]
1370 self.assertAlmostEqual(expected1[i],bary.getIJ(0,i),12);
1372 d1=DataArrayInt.New();
1373 d2=DataArrayInt.New();
1374 d3=DataArrayInt.New();
1375 d4=DataArrayInt.New();
1376 m2=mesh.buildDescendingConnectivity(d1,d2,d3,d4);
1377 self.assertEqual(8,m2.getNumberOfCells());
1378 expected4=[[1,2,3,4,5,0],[7,6,11,10,9,8],[1,7,8,2],[2,8,9,3],[3,9,10,4],[4,10,11,5],[5,11,6,0],[0,6,7,1]];
1379 expected2=[NORM_POLYGON, NORM_POLYGON, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4, NORM_QUAD4];
1380 expected3=[6,6,4,4,4,4,4,4]
1382 self.assertTrue(m2.getTypeOfCell(i)==expected2[i]);
1383 v=m2.getNodeIdsOfCell(i);
1384 self.assertTrue(len(v)==expected3[i]);
1385 self.assertEqual(expected4[i],v);
1387 mesh.convertAllToPoly();
1388 self.assertTrue(NORM_POLYHED==mesh.getTypeOfCell(0));
1390 self.assertTrue(NORM_HEXGP12==mesh.getTypeOfCell(0));
1391 self.assertEqual(13,mesh.getNodalConnectivityArrayLen());
1395 def testDADCheckIsMonotonic(self):
1396 da=DataArrayDouble.New();
1397 da.setValues([-1.,1.01,2.03,6.],2,2);
1398 self.assertRaises(InterpKernelException,da.isMonotonic,True,1e-12);
1400 self.assertTrue(da.isMonotonic(True,1e-12));
1401 da.checkMonotonic(True,1e-12);
1403 self.assertTrue(not da.isMonotonic(True,1e-12));
1404 self.assertRaises(InterpKernelException,da.checkMonotonic,True,1e-12);
1406 self.assertTrue(da.isMonotonic(True,1e-12));
1407 self.assertTrue(not da.isMonotonic(True,1e-1));
1410 def testCheckCoherencyDeeper1(self):
1411 m=MEDCouplingDataForTest.build3DSourceMesh_1();
1412 m.checkConsistencyLight();
1413 m.checkConsistency();
1414 m.getNodalConnectivity().setIJ(8,0,-1);
1415 m.checkConsistencyLight();
1416 self.assertRaises(InterpKernelException,m.checkConsistency);
1417 m.getNodalConnectivity().setIJ(8,0,-6);
1418 m.checkConsistencyLight();
1419 self.assertRaises(InterpKernelException,m.checkConsistency);
1420 m.getNodalConnectivity().setIJ(8,0,9);#9>=NbOfNodes
1421 m.checkConsistencyLight();
1422 self.assertRaises(InterpKernelException,m.checkConsistency);
1423 m.getNodalConnectivity().setIJ(8,0,8);#OK
1424 m.checkConsistencyLight();
1425 m.checkConsistency();
1427 m.convertToPolyTypes(elts);
1428 m.checkConsistencyLight();
1429 m.checkConsistency();
1430 m.getNodalConnectivity().setIJ(2,0,9);#9>=NbOfNodes
1431 m.checkConsistencyLight();
1432 self.assertRaises(InterpKernelException,m.checkConsistency);
1433 m.getNodalConnectivity().setIJ(2,0,-3);
1434 m.checkConsistencyLight();
1435 self.assertRaises(InterpKernelException,m.checkConsistency);
1436 m.getNodalConnectivity().setIJ(2,0,-1);
1437 m.checkConsistencyLight();
1438 self.assertRaises(InterpKernelException,m.checkConsistency);#Throw because cell#0 is not a polyhedron
1439 m.getNodalConnectivity().setIJ(2,0,4);
1440 m.checkConsistencyLight();
1441 m.checkConsistency();
1442 m.getNodalConnectivity().setIJ(7,0,-1);
1443 m.checkConsistencyLight();
1444 m.checkConsistency();#OK because we are in polyhedron connec
1445 m.getNodalConnectivity().setIJ(36,0,14);
1446 m.checkConsistencyLight();
1447 self.assertRaises(InterpKernelException,m.checkConsistency);#Throw beacause now cell 5 is a TETRA4 (14) so mimatch of number index and static type.
1450 def testUnPolyze2(self):
1451 m=MEDCouplingUMesh.New("jjj",3);
1452 coo=DataArrayDouble.New();
1459 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
1460 m.insertNextCell(NORM_TETRA4,4,[0,1,2,3]);
1461 m.finishInsertingCells();
1462 m2=MEDCouplingUMesh.MergeUMeshesOnSameCoords(4*[m]);
1463 m2.convertToPolyTypes([2]);
1465 self.assertEqual(NORM_TETRA4,m2.getTypeOfCell(2));
1466 self.assertEqual(40,m2.getNodalConnectivityArrayLen());
1467 temp2=m2.getNodeIdsOfCell(2);
1468 self.assertEqual(temp2,[0,1,2,3]);
1469 m2.checkConsistency();
1472 self.assertTrue(m3.isEqual(m2,1e-12));
1475 def testDACpyFrom1(self):
1476 d=DataArrayDouble.New();
1481 d.setInfoOnComponent(0,"X [m]");
1482 d.setInfoOnComponent(1,"Y [m]");
1483 d.setInfoOnComponent(2,"Z [m]");
1485 d1=DataArrayDouble.New();
1486 self.assertTrue(not d.isEqual(d1,1e-12));
1488 self.assertTrue(d.isEqual(d1,1e-12));
1490 self.assertTrue(d.isEqual(d1,1e-12));
1492 self.assertTrue(not d.isEqual(d1,1e-12));
1494 self.assertTrue(d.isEqual(d1,1e-12));
1496 d2=d.convertToIntArr();
1497 d4=DataArrayInt.New();
1498 self.assertTrue(not d2.isEqual(d4));
1499 d4.deepCopyFrom(d2);
1500 self.assertTrue(d2.isEqual(d4));
1501 d4.deepCopyFrom(d2);
1502 self.assertTrue(d2.isEqual(d4));
1504 self.assertTrue(not d2.isEqual(d4));
1505 d4.deepCopyFrom(d2);
1506 self.assertTrue(d2.isEqual(d4));
1509 def testDAITransformWithIndArr1(self):
1511 tab2=[0,1,1,3,3,0,1,3,2,2,3,0]
1512 expected=[17,18,18,19,19,17,18,19,22,22,19,17]
1513 d=DataArrayInt.New();
1514 d.setValues(tab1,4,1);
1515 d1=DataArrayInt.New();
1516 d1.setValues(tab2,12,1);
1519 d1.transformWithIndArr(d);
1520 self.assertEqual(12,d1.getNumberOfTuples());
1521 self.assertEqual(1,d1.getNumberOfComponents());
1522 for i in xrange(12):
1523 self.assertEqual(expected[i],d1.getIJ(i,0));
1527 d1.transformWithIndArr(tab1)
1528 self.assertEqual(12,d1.getNumberOfTuples());
1529 self.assertEqual(1,d1.getNumberOfComponents());
1530 for i in xrange(12):
1531 self.assertEqual(expected[i],d1.getIJ(i,0));
1535 def testDAIBuildPermArrPerLevel1(self):
1536 arr=[2,0,1,1,0,1,2,0,1,1,0,0]
1537 expected1=[10,0,5,6,1,7,11,2,8,9,3,4]
1538 da=DataArrayInt.New();
1539 da.setValues(arr,12,1);
1540 da2=da.buildPermArrPerLevel();
1541 self.assertEqual(12,da2.getNumberOfTuples());
1542 self.assertEqual(1,da2.getNumberOfComponents());
1543 for i in xrange(12):
1544 self.assertEqual(expected1[i],da2.getIJ(i,0));
1548 def testDAIOperations1(self):
1549 arr1=[-1,-2,4,7,3,2,6,6,4,3,0,1]
1550 da=DataArrayInt.New();
1551 da.setValues(arr1,4,3);
1552 da1=DataArrayInt.New();
1555 self.assertRaises(InterpKernelException,DataArrayInt.Add,da,da1);#not same number of tuples/Components
1557 da2=DataArrayInt.Add(da,da1);
1558 self.assertEqual(4,da2.getNumberOfTuples());
1559 self.assertEqual(3,da2.getNumberOfComponents());
1560 expected1=[1,1,8,12,9,9,14,15,14,14,12,14]
1561 for i in xrange(12):
1562 self.assertEqual(expected1[i],da2.getIJ(0,i));
1564 da1.substractEqual(da);
1565 expected2=[3,5,0,-2,3,5,2,3,6,8,12,12]
1566 for i in xrange(12):
1567 self.assertEqual(expected2[i],da1.getIJ(0,i));
1569 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
1571 for i in xrange(12):
1572 self.assertEqual(expected1[i],da1.getIJ(0,i));
1574 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
1575 da2=DataArrayInt.Multiply(da,da1);
1576 self.assertEqual(4,da2.getNumberOfTuples());
1577 self.assertEqual(3,da2.getNumberOfComponents());
1578 expected3=[-2,-6,16,35,18,14,48,54,40,33,0,13]
1579 for i in xrange(12):
1580 self.assertEqual(expected3[i],da2.getIJ(0,i));
1582 da.divideEqual(da1);
1583 self.assertEqual(4,da.getNumberOfTuples());
1584 self.assertEqual(3,da.getNumberOfComponents());
1585 expected4=[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]
1586 for i in xrange(12):
1587 self.assertEqual(expected4[i],da.getIJ(0,i));
1589 da.setValues(arr1,4,3);
1590 da1.multiplyEqual(da);
1591 self.assertEqual(4,da1.getNumberOfTuples());
1592 self.assertEqual(3,da1.getNumberOfComponents());
1593 for i in xrange(12):
1594 self.assertEqual(expected3[i],da1.getIJ(0,i));
1596 da1.rearrange(1); da1.iota(2); da1.rearrange(3);
1597 da2=DataArrayInt.Divide(da,da1);
1598 self.assertEqual(4,da2.getNumberOfTuples());
1599 self.assertEqual(3,da2.getNumberOfComponents());
1600 for i in xrange(12):
1601 self.assertEqual(expected4[i],da2.getIJ(0,i));
1604 self.assertEqual(4,da1.getNumberOfTuples());
1605 self.assertEqual(3,da1.getNumberOfComponents());
1606 expected5=[160,107,80,64,53,45,40,35,32,29,26,24]
1607 for i in xrange(12):
1608 self.assertEqual(expected5[i],da1.getIJ(0,i));
1610 da1.applyDivideBy(2);
1611 self.assertEqual(4,da1.getNumberOfTuples());
1612 self.assertEqual(3,da1.getNumberOfComponents());
1613 expected6=[80,53,40,32,26,22,20,17,16,14,13,12]
1614 for i in xrange(12):
1615 self.assertEqual(expected6[i],da1.getIJ(0,i));
1617 expected7=[3,4,5,4,5,1,6,3,2,0,6,5]
1618 da1.applyModulus(7);
1619 for i in xrange(12):
1620 self.assertEqual(expected7[i],da1.getIJ(0,i));
1623 expected8=[3,3,3,3,3,1,3,3,0,0,3,3]
1624 da1.applyRModulus(3);
1625 for i in xrange(12):
1626 self.assertEqual(expected8[i],da1.getIJ(0,i));
1630 def testEmulateMEDMEMBDC1(self):
1631 m,m1=MEDCouplingDataForTest.buildPointe_1();
1632 m2,da1,da2,da3,da4,da5,da0=m.emulateMEDMEMBDC(m1)
1633 expected0=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,36,37,32,33,34,35,38,39,40,41,42,43,44,45,46]
1634 expected1=[1,32,29,23,41,36]
1635 self.assertEqual(47,da0.getNumberOfTuples());
1636 self.assertEqual(1,da0.getNumberOfComponents());
1637 for i in xrange(47):
1638 self.assertEqual(expected0[i],da0.getIJ(0,i));
1640 self.assertEqual(6,da5.getNumberOfTuples());
1641 self.assertEqual(1,da5.getNumberOfComponents());
1643 self.assertEqual(expected1[i],da5.getIJ(0,i));
1645 expected2=[0,1,2,3,4,0,5,6,7,4,8,9,1,7,10,11,12,13,14,5,15,16,17,8,18,19,20,10,21,22,23,2,13,24,25,21,16,26,27,12,19,28,29,15,22,30,31,18,36,26,28,30,24,37,32,33,34,35,38,36,39,40,41,42,37,38,43,44,45,46]
1646 self.assertEqual(70,da1.getNumberOfTuples());
1647 self.assertEqual(1,da1.getNumberOfComponents());
1648 for i in xrange(70):
1649 self.assertEqual(expected2[i],da1.getIJ(0,i));
1651 expected3=[0,4,8,12,16,20,24,28,32,36,40,44,48,53,58,64,70]
1652 self.assertEqual(17,da2.getNumberOfTuples());
1653 self.assertEqual(1,da2.getNumberOfComponents());
1654 for i in xrange(17):
1655 self.assertEqual(expected3[i],da2.getIJ(0,i));
1657 expected4=[0,2,4,6,7,9,11,12,14,16,17,19,20,22,24,25,27,29,30,32,34,35,37,39,40,42,43,45,46,48,49,51,52,53,54,55,56,58,60,62,63,64,65,66,67,68,69,70]
1658 #expected4=[0,2,4,6,7,9,11,12,14,16,17,19,20,22,24,25,27,29,30,32,34,35,37,39,40,42,43,45,46,48,49,51,52,54,56,57,58,59,60,62,63,64,65,66,67,68,69,70];
1659 self.assertEqual(48,da4.getNumberOfTuples());
1660 self.assertEqual(1,da4.getNumberOfComponents());
1661 for i in xrange(48):
1662 self.assertEqual(expected4[i],da4.getIJ(0,i));
1664 expected5=[0,1,0,3,0,7,0,1,2,1,4,1,2,3,2,5,2,3,6,3,4,9,4,8,4,5,10,5,9,5,6,11,6,10,6,7,8,7,11,7,8,12,8,9,12,9,10,12,10,11,12,11,13,13,13,13,12,14,13,15,14,15,14,14,14,14,15,15,15,15]
1665 self.assertEqual(70,da3.getNumberOfTuples());
1666 self.assertEqual(1,da3.getNumberOfComponents());
1667 for i in xrange(70):
1668 self.assertEqual(expected5[i],da3.getIJ(0,i));
1672 def testGetLevArrPerCellTypes1(self):
1673 m,m1=MEDCouplingDataForTest.buildPointe_1();
1674 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
1675 order=[NORM_TRI3,NORM_QUAD4];
1676 da0,da1=m1.getLevArrPerCellTypes(order);
1677 expected0=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1]
1678 expected1=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,36,37,32,33,34,35,38,39,40,41,42,43,44,45,46]
1679 self.assertEqual(47,da0.getNumberOfTuples());
1680 self.assertEqual(1,da0.getNumberOfComponents());
1681 for i in xrange(47):
1682 self.assertEqual(expected0[i],da0.getIJ(0,i));
1684 self.assertEqual(2,da1.getNumberOfTuples());
1685 self.assertEqual(1,da1.getNumberOfComponents());
1686 self.assertEqual(36,da1.getIJ(0,0));#36 TRI3
1687 self.assertEqual(11,da1.getIJ(1,0));#11 QUAD4
1689 da2=da0.buildPermArrPerLevel();
1691 self.assertEqual(47,da2.getNumberOfTuples());
1692 self.assertEqual(1,da2.getNumberOfComponents());
1693 for i in xrange(47):
1694 self.assertEqual(expected1[i],da2.getIJ(0,i));
1698 def testSortCellsInMEDFileFrmt1(self):
1699 m,m1=MEDCouplingDataForTest.buildPointe_1();
1701 da=DataArrayInt.New()
1702 da.setValues([0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13],16,1)
1703 daa=da.invertArrayN2O2O2N(16)
1704 m.renumberCells(daa,False)
1705 da2=m.sortCellsInMEDFileFrmt()
1706 self.assertEqual(da2.getValues(),[0,1,2,14,3,12,4,5,15,6,7,8,9,10,11,13])
1707 self.assertTrue(m.isEqual(m2,1e-12))
1708 self.assertTrue(da.isEqual(da2))
1711 def testBuildPartAndReduceNodes1(self):
1712 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1714 m2,da=m.buildPartAndReduceNodes(arr);
1715 self.assertEqual(5,m2.getNumberOfNodes());
1716 self.assertEqual(2,m2.getNumberOfCells());
1717 f=m2.getMeasureField(True);
1718 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
1719 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
1721 arr2=DataArrayInt.New()
1722 arr2.setValues(arr,2,1)
1723 m2,da=m.buildPartAndReduceNodes(arr2);
1724 self.assertEqual(5,m2.getNumberOfNodes());
1725 self.assertEqual(2,m2.getNumberOfCells());
1726 f=m2.getMeasureField(True);
1727 self.assertAlmostEqual(0.125,f.getArray().getIJ(0,0),12);
1728 self.assertAlmostEqual(0.25,f.getArray().getIJ(1,0),12);
1731 def testDAITransformWithIndArrR1(self):
1733 tab2=[-1,-1,0,1,2,3,4,5,-1,-1,-1,-1]
1734 expected=[0,3,1,2,4,5]
1735 d=DataArrayInt.New();
1736 d.setValues(tab1,6,1);
1737 d1=DataArrayInt.New();
1738 d1.setValues(tab2,12,1);
1741 d3=d.transformWithIndArrR(d1);
1742 self.assertEqual(6,d3.getNumberOfTuples());
1743 self.assertEqual(1,d3.getNumberOfComponents());
1745 self.assertEqual(expected[i],d3.getIJ(i,0));
1749 d3=d.transformWithIndArrR(tab2)
1750 self.assertEqual(6,d3.getNumberOfTuples());
1751 self.assertEqual(1,d3.getNumberOfComponents());
1753 self.assertEqual(expected[i],d3.getIJ(i,0));
1757 def testDAISplitByValueRange1(self):
1758 val1=[6,5,0,3,2,7,8,1,4]
1760 d=DataArrayInt.New();
1761 d.setValues(val1,9,1);
1762 e,f,g=d.splitByValueRange(val2);
1763 self.assertEqual(9,e.getNumberOfTuples());
1764 self.assertEqual(1,e.getNumberOfComponents());
1765 self.assertEqual(9,f.getNumberOfTuples());
1766 self.assertEqual(1,f.getNumberOfComponents());
1767 self.assertEqual(2,g.getNumberOfTuples());
1768 self.assertEqual(1,g.getNumberOfComponents());
1770 expected1=[1,1,0,0,0,1,1,0,1]
1771 expected2=[2,1,0,3,2,3,4,1,0]
1773 self.assertEqual(expected1[i],e.getIJ(i,0));
1774 self.assertEqual(expected2[i],f.getIJ(i,0));
1776 self.assertEqual(0,g.getIJ(0,0));
1777 self.assertEqual(1,g.getIJ(1,0));
1780 self.assertRaises(InterpKernelException,d.splitByValueRange,val2);
1783 def testUMeshSplitProfilePerType1(self):
1785 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1786 m.renumberCells(val0,False);
1789 d=DataArrayInt.New();
1790 d.setValues(val1,3,1);
1792 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
1793 self.assertEqual(2,len(code));
1794 self.assertEqual(2,len(idsInPflPerType));
1795 expected1=[[3,1,0], [4,2,1]]
1796 self.assertEqual(expected1,code)
1797 self.assertEqual(2,len(idsInPflPerType));
1798 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
1799 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
1800 self.assertEqual(2,idsInPflPerType[1].getNumberOfTuples());
1801 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
1802 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
1804 self.assertEqual(2,len(pfls));
1805 self.assertEqual("sup",pfls[0].getName())
1806 self.assertEqual(1,pfls[0].getNumberOfTuples());
1807 self.assertEqual(0,pfls[0].getIJ(0,0));
1808 self.assertEqual("sup",pfls[1].getName())
1809 self.assertEqual(2,pfls[1].getNumberOfTuples());
1810 self.assertEqual(0,pfls[1].getIJ(0,0));
1811 self.assertEqual(1,pfls[1].getIJ(1,0));
1814 d=DataArrayInt.New();
1815 d.setValues(val2,4,1);
1816 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
1817 self.assertEqual(2,len(code));
1818 self.assertEqual(2,len(idsInPflPerType));
1819 expected2=[[3,1,0], [4,3,-1]]
1820 self.assertEqual(expected2,code);
1821 self.assertEqual(2,len(idsInPflPerType));
1822 self.assertEqual(1,idsInPflPerType[0].getNumberOfTuples());
1823 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
1824 self.assertEqual(3,idsInPflPerType[1].getNumberOfTuples());
1825 self.assertEqual(1,idsInPflPerType[1].getIJ(0,0));
1826 self.assertEqual(2,idsInPflPerType[1].getIJ(1,0));
1827 self.assertEqual(3,idsInPflPerType[1].getIJ(2,0));
1829 self.assertEqual(1,len(pfls));
1830 self.assertEqual(1,pfls[0].getNumberOfTuples());
1831 self.assertEqual(0,pfls[0].getIJ(0,0));
1834 d=DataArrayInt.New();
1835 d.setValues(val3,3,1);
1836 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
1837 self.assertEqual(2,len(code));
1838 self.assertEqual(2,len(idsInPflPerType));
1839 expected3=[[3,2,0], [4,1,1]]
1840 self.assertEqual(expected3,code);
1841 self.assertEqual(2,len(idsInPflPerType));
1842 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
1843 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
1844 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
1845 self.assertEqual(1,idsInPflPerType[1].getNumberOfTuples());
1846 self.assertEqual(2,idsInPflPerType[1].getIJ(0,0));
1848 self.assertEqual(2,len(pfls));
1849 self.assertEqual(2,pfls[0].getNumberOfTuples());
1850 self.assertEqual(1,pfls[0].getIJ(0,0));
1851 self.assertEqual(0,pfls[0].getIJ(1,0));
1852 self.assertEqual(0,pfls[1].getIJ(0,0));
1855 d=DataArrayInt.New();
1856 d.setValues(val4,2,1);
1857 code,idsInPflPerType,pfls=m.splitProfilePerType(d);
1858 self.assertEqual(1,len(code));
1859 self.assertEqual(1,len(idsInPflPerType));
1861 self.assertEqual(expected4,code);
1862 self.assertEqual(1,len(idsInPflPerType));
1863 self.assertEqual(2,idsInPflPerType[0].getNumberOfTuples());
1864 self.assertEqual(0,idsInPflPerType[0].getIJ(0,0));
1865 self.assertEqual(1,idsInPflPerType[0].getIJ(1,0));
1867 self.assertEqual(1,len(pfls));
1868 self.assertEqual(2,pfls[0].getNumberOfTuples());
1869 self.assertEqual(1,pfls[0].getIJ(0,0));
1870 self.assertEqual(2,pfls[0].getIJ(1,0));
1873 def testDAIBuildExplicitArrByRanges1(self):
1874 d=DataArrayInt.New();
1876 d.setValues(vals1,3,1);
1877 e=DataArrayInt.New();
1878 vals2=[0,3,6,10,14,20]
1879 e.setValues(vals2,6,1);
1881 f=d.buildExplicitArrByRanges(e);
1882 self.assertEqual(11,f.getNumberOfTuples());
1883 self.assertEqual(1,f.getNumberOfComponents());
1884 expected1=[0,1,2,6,7,8,9,10,11,12,13]
1885 for i in xrange(11):
1886 self.assertEqual(expected1[i],f.getIJ(i,0));
1890 def testDAIComputeOffsets2(self):
1891 d=DataArrayInt.New();
1893 expected1=[0,3,8,9,11,11,19]
1894 d.setValues(vals1,6,1);
1895 d.computeOffsetsFull();
1896 self.assertEqual(7,d.getNumberOfTuples());
1897 self.assertEqual(1,d.getNumberOfComponents());
1899 self.assertEqual(expected1[i],d.getIJ(0,i));
1903 def testMergeField3(self):
1904 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1905 m.getCoords().setInfoOnComponent(0,"x [m]");
1906 m.getCoords().setInfoOnComponent(1,"z [km]");
1908 m.setDescription("desc");
1909 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
1912 arr=DataArrayDouble.New();
1914 arr.setInfoOnComponent(0,"X [m]");
1915 arr.setInfoOnComponent(1,"YY [mm]");
1916 arr.fillWithValue(2.);
1919 f2=MEDCouplingFieldDouble.MergeFields([f1]);
1920 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
1924 def testGetDistributionOfTypes1(self):
1925 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1927 self.assertRaises(InterpKernelException,m.getDistributionOfTypes);
1928 m.renumberCells(tab1,False);
1929 code=m.getDistributionOfTypes();
1930 self.assertEqual(2,len(code));
1931 self.assertEqual(3,code[0][0]);
1932 self.assertEqual(2,code[0][1]);
1933 self.assertEqual(-1,code[0][2]);
1934 self.assertEqual(4,code[1][0]);
1935 self.assertEqual(3,code[1][1]);
1936 self.assertEqual(-1,code[1][2]);
1939 def testNorm2_1(self):
1940 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1941 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
1944 d=DataArrayDouble.New();
1945 tab=[1.2,1.3,2.2,2.3,3.2,3.3,4.2,4.3,5.2,5.3]
1946 d.setValues(tab,5,2);
1948 f.checkConsistencyLight();
1950 self.assertAlmostEqual(11.209371079592289,f.norm2(),14);
1954 def testNormMax1(self):
1955 m=MEDCouplingDataForTest.build2DTargetMesh_1();
1956 f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
1959 d=DataArrayDouble.New();
1960 tab=[2.3,-1.2,6.3,-7.8,2.9,7.7,2.1,0.,3.6,-7.6]
1961 d.setValues(tab,5,2);
1963 f.checkConsistencyLight();
1965 self.assertAlmostEqual(7.8,f.normMax(),14);
1969 def testFindAndCorrectBadOriented3DExtrudedCells1(self):
1970 coords=[0.0011180339887498999, -0.0011755705045849499, 0.0, -0.0012331070204200001, -0.0011755705045849499, 0.0, -0.00067557050458494599, -0.00145964954842536, 0.0, -0.00050000000000000001, -0.00086602540378443902, 0.0, 0.00140211303259031, -0.00061803398874989504, 0.0, 0.00086602540378443902, -0.00050000000000000001, 0.0, 0.001, 0.0, 0.0, 0.00034561537182258202, 0.000269164072574575, 0.0, 0.0, 0.001, 0.0, -0.00050000000000000001, 0.00086602540378443902, 0.0, -0.000269164072574575, 0.00034561537182258202, 0.0, -0.001, 0.0, 0.0, -0.00086602540378443902, -0.00050000000000000001, 0.0, -0.00034561537182258202, -0.000269164072574575, 0.0, 0.0, -0.001, 0.0, 0.00050000000000000001, -0.00086602540378443902, 0.0, 0.000269164072574575, -0.00034561537182258202, 0.0, 0.0015, -6.01853107621011e-36, 0.0, 0.00056049747291484397, -0.00145964954842536, 0.0, 0.0011180339887498999, -0.0011755705045849499, 0.00050000000000000001, -0.0012331070204200001, -0.0011755705045849499, 0.00050000000000000001, -0.00067557050458494599, -0.00145964954842536, 0.00050000000000000001, -0.00050000000000000001, -0.00086602540378443902, 0.00050000000000000001, 0.00140211303259031, -0.00061803398874989504, 0.00050000000000000001, 0.00086602540378443902, -0.00050000000000000001, 0.00050000000000000001, 0.001, 0.0, 0.00050000000000000001, 0.00034561537182258202, 0.000269164072574575, 0.00050000000000000001, 0.0, 0.001, 0.00050000000000000001, -0.00050000000000000001, 0.00086602540378443902, 0.00050000000000000001, -0.000269164072574575, 0.00034561537182258202, 0.00050000000000000001, -0.001, 0.0, 0.00050000000000000001, -0.00086602540378443902, -0.00050000000000000001, 0.00050000000000000001, -0.00034561537182258202, -0.000269164072574575, 0.00050000000000000001, 0.0, -0.001, 0.00050000000000000001, 0.00050000000000000001, -0.00086602540378443902, 0.00050000000000000001, 0.000269164072574575, -0.00034561537182258202, 0.00050000000000000001, 0.0015, -6.01853107621011e-36, 0.00050000000000000001, 0.00056049747291484397, -0.00145964954842536, 0.00050000000000000001];
1971 conn=[2, 1, 3, 21, 20, 22, 4, 0, 5, 23, 19, 24, 8, 9, 10, 27, 28, 29, 11, 12, 13, 30, 31, 32, 0, 18, 15, 5, 19, 37, 34, 24, 6, 17, 4, 5, 25, 36, 23, 24, 3, 14, 16, 13, 22, 33, 35, 32, 13, 16, 7, 10, 32, 35, 26, 29]
1972 connExp=[16, 2, 1, 3, 21, 20, 22, 16, 4, 0, 5, 23, 19, 24, 16, 8, 10, 9, 27, 29, 28, 16, 11, 13, 12, 30, 32, 31, 18, 0, 18, 15, 5, 19, 37, 34, 24,18, 6, 17, 4, 5, 25, 36, 23, 24, 18, 3, 13, 16, 14, 22, 32, 35, 33, 18, 13, 10, 7, 16, 32, 29, 26, 35]
1973 invalidCells=[2,3,6,7]
1974 m=MEDCouplingUMesh.New("Example",3);
1975 coo=DataArrayDouble.New();
1976 coo.setValues(coords,38,3);
1979 m.insertNextCell(NORM_PENTA6,6,conn[0:6])
1980 m.insertNextCell(NORM_PENTA6,6,conn[6:12])
1981 m.insertNextCell(NORM_PENTA6,6,conn[12:18])
1982 m.insertNextCell(NORM_PENTA6,6,conn[18:24])
1983 m.insertNextCell(NORM_HEXA8,8,conn[24:32])
1984 m.insertNextCell(NORM_HEXA8,8,conn[32:40])
1985 m.insertNextCell(NORM_HEXA8,8,conn[40:48])
1986 m.insertNextCell(NORM_HEXA8,8,conn[48:56])
1987 m.finishInsertingCells();
1989 v=m.findAndCorrectBadOriented3DExtrudedCells();
1990 self.assertEqual(4,len(v));
1991 self.assertEqual(v.getValues(),invalidCells);
1992 self.assertEqual(connExp,m.getNodalConnectivity().getValues());
1993 self.assertTrue(m.findAndCorrectBadOriented3DExtrudedCells().empty())
1997 def testConvertExtrudedPolyhedra1(self):
1998 conn=[1,2,3,4, 5,6,7,8,9,10,11,12, 13,14,15,16, 17,18,19,20,21,22, 23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, 39,40,41,42,43,44,45,46, 47,48,49,50,51,52,53,54,55,56,57,58, 59,60,61,62,63,64,65,66,67,68,69,70,71,72]
1999 m=MEDCouplingUMesh.New("Example",3);
2000 coo=DataArrayDouble.New();
2002 coo.rearrange(1); coo.iota(0); coo.rearrange(3);
2005 m.insertNextCell(NORM_TETRA4,4,conn[0:4])
2006 m.insertNextCell(NORM_HEXA8,8,conn[4:12])
2007 m.insertNextCell(NORM_TETRA4,4,conn[12:16])
2008 m.insertNextCell(NORM_POLYHED,6,conn[16:22])
2009 m.insertNextCell(NORM_PENTA6,6,conn[22:28])
2010 m.insertNextCell(NORM_POLYHED,10,conn[28:38])
2011 m.insertNextCell(NORM_HEXA8,8,conn[38:46])
2012 m.insertNextCell(NORM_HEXGP12,12,conn[46:58])
2013 m.insertNextCell(NORM_POLYHED,14,conn[58:72])
2014 m.finishInsertingCells();
2016 m.convertExtrudedPolyhedra();
2017 da=m.getNodalConnectivity();
2018 dai=m.getNodalConnectivityIndex();
2019 self.assertEqual(10,dai.getNbOfElems());
2020 self.assertEqual(159,da.getNbOfElems());
2022 expected1=[14,1,2,3,4,18,5,6,7,8,9,10,11,12,14,13,14,15,16,31,17,18,19,-1,20,22,21,-1,17,20,21,18,-1,18,21,22,19,-1,19,22,20,17,16,23,24,25,26,27,28,31,29,30,31,32,33,-1,34,38,37,36,35,-1,29,34,35,30,-1,30,35,36,31,-1,31,36,37,32,-1,32,37,38,33,-1,33,38,34,29,18,39,40,41,42,43,44,45,46,22,47,48,49,50,51,52,53,54,55,56,57,58,31,59,60,61,62,63,64,65,-1,66,72,71,70,69,68,67,-1,59,66,67,60,-1,60,67,68,61,-1,61,68,69,62,-1,62,69,70,63,-1,63,70,71,64,-1,64,71,72,65,-1,65,72,66,59];
2023 expected2=[0,5,14,19,42,49,86,95,108,159]
2024 self.assertEqual(expected1,da.getValues());
2025 self.assertEqual(expected2,dai.getValues());
2026 m.checkConsistency()
2029 def testNonRegressionCopyTinyStrings(self):
2030 m=MEDCouplingDataForTest.build2DTargetMesh_1()
2031 f1=m.getMeasureField(True)
2032 f1.getArray().setInfoOnComponent(0,"P [N/m^2]")
2033 bary=m.computeCellCenterOfMass()
2034 f2=f1.buildNewTimeReprFromThis(NO_TIME,False)
2036 self.assertRaises(InterpKernelException,f1.copyTinyAttrFrom,f2)
2039 def testDaDSetPartOfValuesAdv1(self):
2040 tab1=[3.,4.,5., 13.,14.,15., 23.,24.,25., 33.,34.,35., 43.,44.,45., 53.,54.,55.]
2041 tab2=[6.,7.,8., 16.,17.,18., 26.,27.,28.]
2042 tab3=[4,1, 2,2, 3,0]
2043 a=DataArrayDouble.New();
2044 a.setValues(tab1,6,3);
2045 b=DataArrayDouble.New();
2046 b.setValues(tab2,3,3);
2047 c=DataArrayInt.New();
2048 c.setValues(tab3,3,2);
2050 a.setPartOfValuesAdv(b,c);
2051 expected1=[3.,4.,5., 13.,14.,15., 26.,27.,28., 6.,7.,8., 16.,17.,18., 53.,54.,55.]
2052 self.assertEqual(expected1,a.getValues());
2055 def testUMeshBuildSetInstanceFromThis1(self):
2056 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2057 m2=m.buildSetInstanceFromThis(3);
2058 self.assertTrue(m.isEqual(m2,1e-12));
2060 m=MEDCouplingUMesh.New("toto",2);
2061 m2=m.buildSetInstanceFromThis(3);
2062 self.assertEqual(0,m2.getNumberOfNodes());
2063 self.assertEqual(0,m2.getNumberOfCells());
2066 def testUMeshMergeMeshesCVW1(self):
2067 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2068 m2=MEDCouplingUMesh.New("toto",2);
2069 m3=MEDCouplingUMesh.MergeUMeshes([m,m2]);
2070 m3.setName(m.getName());
2071 self.assertTrue(m.isEqual(m3,1e-12));
2074 def testChangeUnderlyingMeshWithCMesh1(self):
2075 mesh=MEDCouplingCMesh.New();
2076 coordsX=DataArrayDouble.New();
2077 arrX=[ -1., 1., 2., 4. ]
2078 coordsX.setValues(arrX,4,1);
2079 coordsY=DataArrayDouble.New();
2080 arrY=[ -2., 2., 4., 8. ]
2081 coordsY.setValues(arrY,4,1);
2082 coordsZ=DataArrayDouble.New();
2083 arrZ=[ -3., 3., 6., 12. ]
2084 coordsZ.setValues(arrZ,4,1);
2085 mesh.setCoords(coordsX,coordsY,coordsZ);
2086 f=mesh.getMeasureField(True)
2087 mesh2=mesh.deepCopy()
2088 for myId in [0,1,2,10,11,12,20,21,22]:
2089 f=mesh.getMeasureField(True)
2090 f.changeUnderlyingMesh(mesh2,myId,1e-12);
2092 mesh2.setName("uuuu")
2093 for myId in [1,2,10,11,12,20,21,22]:
2094 f=mesh.getMeasureField(True)
2095 f.changeUnderlyingMesh(mesh2,myId,1e-12);
2099 def testDADFindCommonTuples1(self):
2100 da=DataArrayDouble.New();
2102 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
2103 da.setValues(array1,6,1)
2104 c,cI=da.findCommonTuples(1e-2);
2107 self.assertEqual(3,c.getNbOfElems());
2108 self.assertEqual(2,cI.getNbOfElems());
2109 self.assertEqual(expected1,c.getValues())
2110 self.assertEqual(expected2,cI.getValues())
2111 c,cI=da.findCommonTuples(2e-1)
2112 expected3=[0,3,4,1,2]
2114 self.assertEqual(5,c.getNbOfElems());
2115 self.assertEqual(3,cI.getNbOfElems());
2116 self.assertEqual(expected3,c.getValues())
2117 self.assertEqual(expected4,cI.getValues())
2119 array2=[2.3,2.3,1.2,1.2,1.3,1.3,2.3,2.3,2.301,2.301,0.8,0.8]
2120 da.setValues(array2,6,2)
2121 c,cI=da.findCommonTuples(1e-2);
2122 self.assertEqual(3,c.getNbOfElems());
2123 self.assertEqual(2,cI.getNbOfElems());
2124 self.assertEqual(expected1,c.getValues())
2125 self.assertEqual(expected2,cI.getValues())
2126 c,cI=da.findCommonTuples(2e-1)
2127 self.assertEqual(5,c.getNbOfElems());
2128 self.assertEqual(3,cI.getNbOfElems());
2129 self.assertEqual(expected3,c.getValues())
2130 self.assertEqual(expected4,cI.getValues())
2132 array3=[2.3,2.3,2.3,1.2,1.2,1.2,1.3,1.3,1.3,2.3,2.3,2.3,2.301,2.301,2.301,0.8,0.8,0.8]
2133 da.setValues(array3,6,3)
2134 c,cI=da.findCommonTuples(1e-2);
2135 self.assertEqual(3,c.getNbOfElems());
2136 self.assertEqual(2,cI.getNbOfElems());
2137 self.assertEqual(expected1,c.getValues())
2138 self.assertEqual(expected2,cI.getValues())
2139 c,cI=da.findCommonTuples(2e-1)
2140 self.assertEqual(5,c.getNbOfElems());
2141 self.assertEqual(3,cI.getNbOfElems());
2142 self.assertEqual(expected3,c.getValues())
2143 self.assertEqual(expected4,cI.getValues())
2144 # nbOftuples=1, no common groups
2145 array11=[2.3,1.2,1.3,2.4,2.5,0.8]
2146 da.setValues(array11,6,1)
2147 c,cI=da.findCommonTuples(1e-2);
2148 self.assertEqual(0,c.getNbOfElems());
2149 self.assertEqual(1,cI.getNbOfElems());
2150 self.assertEqual([0],cI.getValues())
2153 da.setValues(array12,6,5) #bad NumberOfComponents
2154 self.assertRaises(InterpKernelException, da.findCommonTuples, 1e-2);
2157 def testDABack1(self):
2158 da=DataArrayDouble.New();
2159 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
2160 da.setValues(array1,6,1);
2161 self.assertAlmostEqual(0.8,da.back(),14);
2163 self.assertRaises(InterpKernelException,da.back);
2165 self.assertRaises(InterpKernelException,da.back);
2167 da=DataArrayInt.New();
2169 da.setValues(array2,4,1);
2170 self.assertEqual(2,da.back());
2172 self.assertRaises(InterpKernelException,da.back);
2174 self.assertRaises(InterpKernelException,da.back);
2177 def testDADGetDifferentValues1(self):
2178 da=DataArrayDouble.New();
2179 array1=[2.3,1.2,1.3,2.3,2.301,0.8]
2180 da.setValues(array1,6,1)
2182 expected1=[2.301,1.2,1.3,0.8]
2183 dv=da.getDifferentValues(1e-2);
2184 self.assertEqual(4,dv.getNbOfElems());
2186 self.assertAlmostEqual(expected1[i],dv.getIJ(i,0),14);
2189 dv=da.getDifferentValues(2e-1);
2190 expected2=[2.301,1.3,0.8]
2191 self.assertEqual(3,dv.getNbOfElems());
2193 self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14);
2197 def testDAIBuildOld2NewArrayFromSurjectiveFormat2(self):
2200 a=DataArrayInt.New();
2201 a.setValues(arr,5,1);
2202 b=DataArrayInt.New();
2203 b.setValues(arrI,3,1);
2204 ret,newNbTuple=DataArrayInt.ConvertIndexArrayToO2N(10,a,b);
2205 expected=[0,1,2,0,3,4,5,4,6,4]
2206 self.assertEqual(10,ret.getNbOfElems());
2207 self.assertEqual(7,newNbTuple);
2208 self.assertEqual(1,ret.getNumberOfComponents());
2209 self.assertEqual(expected,ret.getValues());
2210 self.assertRaises(InterpKernelException,DataArrayInt.ConvertIndexArrayToO2N,9,a,b);
2213 def testDADIReverse1(self):
2215 a=DataArrayInt.New();
2216 a.setValues(arr,6,1);
2217 self.assertEqual(2,a.back());
2220 self.assertEqual(arr[5-i],a.getIJ(i,0));
2222 a.setValues(arr[:-1],5,1);
2225 self.assertEqual(arr[4-i],a.getIJ(i,0));
2228 arr2=[0.,3.,5.,7.,9.,2.]
2229 b=DataArrayDouble.New();
2230 b.setValues(arr2,6,1);
2233 self.assertAlmostEqual(arr2[5-i],b.getIJ(i,0),14);
2235 b.setValues(arr2[:5],5,1);
2236 self.assertAlmostEqual(9.,b.back(),14)
2239 self.assertAlmostEqual(arr2[4-i],b.getIJ(i,0),14);
2243 def testGetNodeIdsInUse1(self):
2244 m0=MEDCouplingDataForTest.build2DTargetMesh_1();
2246 m1=m0.buildPartOfMySelf(CellIds,True);
2247 arr,newNbOfNodes=m1.getNodeIdsInUse();
2248 expected=[-1,0,1,-1,2,3,-1,-1,-1]
2249 self.assertEqual(4,newNbOfNodes);
2250 self.assertEqual(9,arr.getNbOfElems());
2251 self.assertEqual(expected,arr.getValues());
2252 arr2=arr.invertArrayO2N2N2O(newNbOfNodes);
2253 self.assertEqual(4,arr2.getNbOfElems());
2255 self.assertEqual(expected2,arr2.getValues());
2258 def testBuildDescendingConnec2(self):
2259 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
2261 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
2262 mesh2.checkConsistencyLight();
2263 self.assertEqual(1,mesh2.getMeshDimension());
2264 self.assertEqual(13,mesh2.getNumberOfCells());
2265 self.assertEqual(14,revDescIndx.getNbOfElems()); self.assertEqual(14,revDescIndx.getNumberOfTuples());
2266 self.assertEqual(6,descIndx.getNbOfElems()); self.assertEqual(6,descIndx.getNumberOfTuples());
2267 self.assertEqual(18,desc.getNbOfElems()); self.assertEqual(18,desc.getNumberOfTuples());
2268 self.assertEqual(18,revDesc.getNbOfElems()); self.assertEqual(18,revDesc.getNumberOfTuples());
2269 expected1=[1,2,3,4,-3,5,6, 7,8,-5,9,10,-2,11, 12,13,-7,-10]
2270 self.assertEqual(expected1,desc.getValues());
2271 expected2=[0,4,7,10,14,18]
2272 self.assertEqual(expected2,descIndx.getValues());
2273 expected3=[0,1,3,5,6,8,9,11,12,13,15,16,17,18]
2274 self.assertEqual(expected3,revDescIndx.getValues());
2275 expected4=[0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4]
2276 self.assertEqual(expected4,revDesc.getValues());
2277 conn=mesh2.getNodalConnectivity();
2278 connIndex=mesh2.getNodalConnectivityIndex();
2279 expected5=[0,3,6,9,12,15,18,21,24,27,30,33,36,39]
2280 self.assertEqual(expected5,connIndex.getValues());
2281 expected6=[1, 0, 3, 1, 3, 4, 1, 4, 1, 1, 1, 0, 1, 4, 2, 1, 2, 1, 1, 4, 5, 1, 5, 2, 1, 6, 7, 1, 7, 4, 1, 3, 6, 1, 7, 8, 1, 8, 5]
2282 self.assertEqual(expected6,conn.getValues());
2285 def testIntersect2DMeshesTmp1(self):
2286 m1c=MEDCouplingCMesh.New();
2287 coordsX=DataArrayDouble.New();
2288 arrX=[ -1., 1., 2., 4. ]
2289 coordsX.setValues(arrX,4,1);
2290 m1c.setCoordsAt(0,coordsX);
2291 coordsY=DataArrayDouble.New();
2292 arrY=[ -2., 2., 4., 8. ]
2293 coordsY.setValues(arrY,4,1);
2294 m1c.setCoordsAt(1,coordsY);
2295 m1=m1c.buildUnstructured()
2296 m1bis=m1.buildPartOfMySelf([3,4,5],False)
2298 m2=m2.buildPartOfMySelf([0,1,2],False)
2299 m2.translate([0.5,0.5])
2301 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1bis,m2,1e-10)
2302 expected1=[0,0,1,1,1,2,2,2]
2303 expected2=[0,-1,0,1,-1,1,2,-1]
2304 self.assertEqual(8,d1.getNumberOfTuples());
2305 self.assertEqual(8,d2.getNumberOfTuples());
2306 self.assertEqual(8,m3.getNumberOfCells());
2307 self.assertEqual(22,m3.getNumberOfNodes());
2308 self.assertEqual(2,m3.getSpaceDimension());
2309 self.assertEqual(expected1,d1.getValues());
2310 self.assertEqual(expected2,d2.getValues());
2311 expected3=[5,17,1,16,12,5,16,0,4,5,17,12,5,18,1,17,13,5,19,2,18,13,5,17,5,6,19,13,5,20,2,19,14,5,21,3,20,14,5,19,6,7,21,14]
2312 expected4=[0,5,12,17,22,28,33,38,44]
2313 expected5=[-1.0,2.0,1.0,2.0,2.0,2.0,4.0,2.0,-1.0,4.0,1.0,4.0,2.0,4.0,4.0,4.0,-0.5,-1.5,1.5,-1.5,2.5,-1.5,4.5,-1.5,-0.5,2.5,1.5,2.5,2.5,2.5,4.5,2.5,-0.5,2.0,1.0,2.5,1.5,2.0,2.0,2.5,2.5,2.0,4.0,2.5]
2314 self.assertEqual(44,m3.getNodalConnectivity().getNumberOfTuples());
2315 self.assertEqual(9,m3.getNodalConnectivityIndex().getNumberOfTuples());
2316 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
2317 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
2318 for i in xrange(44):
2319 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
2323 def testFindNodesOnLine1(self):
2324 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
2332 res=mesh.findNodesOnLine(pt,vec,1e-12);
2333 self.assertEqual(3,len(res));
2334 self.assertEqual(expected1,res.getValues());
2336 mesh.changeSpaceDimension(3);
2337 mesh.rotate(pt2,vec2,pi/4.);
2338 res=mesh.findNodesOnLine(pt3,vec3,1e-12);
2339 self.assertEqual(3,len(res));
2340 self.assertEqual(expected1,res.getValues());
2343 def testIntersect2DMeshesTmp2(self):
2344 m1c=MEDCouplingCMesh.New();
2345 coordsX1=DataArrayDouble.New();
2346 arrX1=[ 0., 1., 1.5, 2. ]
2347 coordsX1.setValues(arrX1,4,1);
2348 m1c.setCoordsAt(0,coordsX1);
2349 coordsY1=DataArrayDouble.New();
2350 arrY1=[ 0., 1.5, 3.]
2351 coordsY1.setValues(arrY1,3,1);
2352 m1c.setCoordsAt(1,coordsY1);
2353 m1=m1c.buildUnstructured();
2354 m2c=MEDCouplingCMesh.New();
2355 coordsX2=DataArrayDouble.New();
2356 arrX2=[ 0., 1., 2. ]
2357 coordsX2.setValues(arrX2,3,1);
2358 m2c.setCoordsAt(0,coordsX2);
2359 coordsY2=DataArrayDouble.New();
2361 coordsY2.setValues(arrY2,3,1);
2362 m2c.setCoordsAt(1,coordsY2);
2363 m2=m2c.buildUnstructured();
2365 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
2367 expected1=[0,0,1,1,2,2,3,4,5]
2368 expected2=[0,2,1,3,1,3,2,3,3]
2369 self.assertEqual(9,d1.getNumberOfTuples());
2370 self.assertEqual(9,d2.getNumberOfTuples());
2371 self.assertEqual(9,m3.getNumberOfCells());
2372 self.assertEqual(22,m3.getNumberOfNodes());
2373 self.assertEqual(2,m3.getSpaceDimension());
2374 self.assertEqual(expected1,d1.getValues());
2375 self.assertEqual(expected2,d2.getValues());
2376 expected3=[5,16,13,12,15,5,15,4,5,16,5,21,2,13,16,5,16,5,6,21,5,17,14,2,21,5,21,6,7,17,5,4,18,19,5,5,5,19,10,6,5,6,10,20,7]
2377 expected4=[0,5,10,15,20,25,30,35,40,45]
2378 expected5=[0.0,0.0,1.0,0.0,1.5,0.0,2.0,0.0,0.0,1.5,1.0,1.5,1.5,1.5,2.0,1.5,0.0,3.0,1.0,3.0,1.5,3.0,2.0,3.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,1.0,1.0,1.0,2.0,1.0,0.0,3.0,1.0,3.0,2.0,3.0,1.5,1.0]
2379 self.assertEqual(45,m3.getNodalConnectivity().getNumberOfTuples());
2380 self.assertEqual(10,m3.getNodalConnectivityIndex().getNumberOfTuples());
2381 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
2382 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
2383 for i in xrange(44):
2384 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
2388 def testBuildPartOfMySelfSafe1(self):
2389 mesh=MEDCouplingDataForTest.build2DTargetMesh_1()
2390 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,-1,4,2],True)
2391 self.assertRaises(InterpKernelException,mesh.buildPartOfMySelf,[0,4,5,4],True)
2394 def testIntersect2DMeshesTmp3(self):
2395 m1Coords=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1,0.,-1.5,0.5,0.,1.25,0.,0.70710678118654757,0.70710678118654757,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.70710678118654757,0.70710678118654757,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.70710678118654757,-0.70710678118654757,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.70710678118654757,-0.70710678118654757,1.0606601717798214,-1.0606601717798214];
2396 m1Conn=[0,3,1,13,11,9, 3,4,2,1,14,12,10,11, 5,3,0,15,13,17, 6,4,3,5,16,14,15,18, 5,0,7,17,21,19, 6,5,7,8,18,19,22,20, 0,1,7,9,23,21, 1,2,8,7,10,24,22,23];
2397 m1=MEDCouplingUMesh.New();
2398 m1.setMeshDimension(2);
2399 m1.allocateCells(8);
2400 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
2401 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
2402 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
2403 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
2404 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
2405 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
2406 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
2407 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
2408 m1.finishInsertingCells();
2409 myCoords1=DataArrayDouble.New();
2410 myCoords1.setValues(m1Coords,25,2);
2411 m1.setCoords(myCoords1);
2413 m2Coords=[0.,0.,1.1,0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1,-1.1,-1.,0.,-1.,1.1,-1,1.7,-1.]
2414 m2Conn=[0,3,2,1, 1,2,5,4, 7,6,3,0, 8,9,6,7, 7,0,12,11, 8,7,11,10, 0,1,13,12, 1,4,14,13]
2415 m2=MEDCouplingUMesh.New();
2416 m2.setMeshDimension(2);
2417 m2.allocateCells(8);
2419 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
2421 m2.finishInsertingCells();
2422 myCoords2=DataArrayDouble.New();
2423 myCoords2.setValues(m2Coords,15,2);
2424 m2.setCoords(myCoords2);
2426 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m1,m2,1e-10)
2429 expected1=[0,1,1,1,2,3,3,3,4,5,5,5,6,7,7,7]
2430 expected2=[0,0,1,-1,2,2,3,-1,4,4,5,-1,6,6,7,-1]
2431 self.assertEqual(16,d1.getNumberOfTuples());
2432 self.assertEqual(16,d2.getNumberOfTuples());
2433 self.assertEqual(16,m3.getNumberOfCells());
2434 self.assertEqual(104,m3.getNumberOfNodes());
2435 self.assertEqual(2,m3.getSpaceDimension());
2436 self.assertEqual(expected1,d1.getValues());
2437 self.assertEqual(expected2,d2.getValues());
2438 expected3=[6,28,1,25,44,45,46,8,26,1,28,27,47,48,49,50,8,40,2,26,27,51,52,53,54,8,28,4,40,27,55,56,57,58,6,28,25,5,59,60,61,8,28,5,32,31,62,63,64,65,8,32,6,41,31,66,67,68,69,8,41,4,28,31,70,71,72,73,6,25,37,5,74,75,76,8,32,5,37,36,77,78,79,80,8,42,6,32,36,81,82,83,84,8,37,8,42,36,85,86,87,88,6,1,37,25,89,90,91,8,37,1,26,38,92,93,94,95,8,26,2,43,38,96,97,98,99,8,43,8,37,38,100,101,102,103]
2439 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
2440 expected5=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1.,0.,-1.5,0.5,0.,1.25,0.,0.7071067811865476,0.7071067811865476,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.7071067811865476,0.7071067811865476,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.7071067811865476,-0.7071067811865476,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.7071067811865476,-0.7071067811865476,1.0606601717798214,-1.0606601717798214,0.,0.,1.1,0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1.,-1.1,-1.,0.,-1.,1.1,-1.,1.7,-1.,1.118033988749895,1.,-1.118033988749895,1.,-1.118033988749895,-1.,1.118033988749895,-1.,0.7071067811865477,0.7071067811865476,0.5,0.,0.,0.5,1.05,0.,0.7071067811865475,0.7071067811865477,0.55,1.,1.1,0.5,1.4012585384440737,0.535233134659635,1.3,0.,1.1,0.5,1.1090169943749475,1.,0.,1.25,0.6123724356957946,1.369306393762915,1.1090169943749475,1.,0.55,1.,0.,0.5,-0.5,0.,-0.7071067811865477,0.7071067811865476,-0.7071067811865475,0.7071067811865477,-1.05,0.,-1.1,0.5,-0.55,1.,-1.3,0.,-1.4012585384440737,0.5352331346596344,-1.1090169943749475,1.,-1.1,0.5,-0.6123724356957941,1.3693063937629155,0.,1.25,-0.55,1.,-1.1090169943749475,1.,0.,-0.5,-0.7071067811865475,-0.7071067811865477,-0.5,0.,-1.05,0.,-0.7071067811865478,-0.7071067811865475,-0.55,-1.,-1.1,-0.5,-1.4012585384440734,-0.5352331346596354,-1.3,0.,-1.1,-0.5,-1.1090169943749475,-1.,0.,-1.25,-0.6123724356957945,-1.369306393762915,-1.1090169943749475,-1.,-0.55,-1.,0.7071067811865475,-0.7071067811865477,0.,-0.5,0.5,0.,0.7071067811865477,-0.7071067811865475,1.05,0.,1.1,-0.5,0.55,-1.,1.3,0.,1.4012585384440737,-0.535233134659635,1.1090169943749475,-1.,1.1,-0.5,0.6123724356957946,-1.369306393762915,0.,-1.25,0.55,-1.,1.1090169943749475,-1.0]
2441 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
2442 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
2443 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
2444 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
2445 for i in xrange(208):
2446 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
2450 def testUMeshTessellate2D1(self):
2451 m1Coords=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1,0.,-1.5,0.5,0.,1.25,0.,0.70710678118654757,0.70710678118654757,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.70710678118654757,0.70710678118654757,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.70710678118654757,-0.70710678118654757,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.70710678118654757,-0.70710678118654757,1.0606601717798214,-1.0606601717798214];
2452 m1Conn=[0,3,1,13,11,9, 3,4,2,1,14,12,10,11, 5,3,0,15,13,17, 6,4,3,5,16,14,15,18, 5,0,7,17,21,19, 6,5,7,8,18,19,22,20, 0,1,7,9,23,21, 1,2,8,7,10,24,22,23];
2453 m1=MEDCouplingUMesh.New();
2454 m1.setMeshDimension(2);
2455 m1.allocateCells(8);
2456 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
2457 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
2458 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
2459 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
2460 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
2461 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
2462 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
2463 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
2464 m1.finishInsertingCells();
2465 myCoords1=DataArrayDouble.New();
2466 myCoords1.setValues(m1Coords,25,2);
2467 m1.setCoords(myCoords1);
2470 m11.tessellate2D(1.);
2471 self.assertTrue(m11.getCoords().isEqual(m11.getCoords(),1e-12));
2472 expected1=[5,0,3,11,1,5,3,4,12,2,1,11,5,5,15,3,0,5,6,16,4,3,15,5,5,5,0,7,19,5,6,5,19,7,8,20,5,0,1,23,7,5,1,2,24,8,7,23]
2473 expected2=[0,5,12,17,24,29,36,41,48]
2474 self.assertEqual(48,m11.getNodalConnectivity().getNumberOfTuples());
2475 self.assertEqual(9,m11.getNodalConnectivityIndex().getNumberOfTuples());
2476 self.assertEqual(expected1,m11.getNodalConnectivity().getValues());
2477 self.assertEqual(expected2,m11.getNodalConnectivityIndex().getValues());
2480 m12.tessellate2D(0.5);
2481 self.assertEqual(41,m12.getNumberOfNodes());
2482 expected3=[5,0,3,25,26,1,5,3,4,27,28,2,1,26,25,5,5,29,30,3,0,5,6,31,32,4,3,30,29,5,5,5,0,7,33,34,5,6,5,34,33,7,8,35,36,5,0,1,37,38,7,5,1,2,39,40,8,7,38,37]
2483 expected4=[0,6,15,21,30,36,45,51,60]
2484 expected5=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1.,0.,-1.5,0.5,0.,1.25,0.,0.7071067811865476,0.7071067811865476,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.7071067811865476,0.7071067811865476,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.7071067811865476,-0.7071067811865476,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.7071067811865476,-0.7071067811865476,1.0606601717798214,-1.0606601717798214,0.479425538604203,0.8775825618903728,0.8414709848078964,0.54030230586814,0.7191383079063044,1.3163738428355591,1.2622064772118446,0.8104534588022099,-0.877582561890373,0.4794255386042027,-0.5403023058681399,0.8414709848078964,-1.3163738428355596,0.7191383079063038,-0.8104534588022098,1.2622064772118446,-0.4794255386042031,-0.8775825618903728,-0.8414709848078965,-0.5403023058681399,-0.7191383079063045,-1.3163738428355591,-1.2622064772118449,-0.8104534588022098,0.8775825618903729,-0.47942553860420295,0.54030230586814,-0.8414709848078964,1.3163738428355594,-0.7191383079063043,0.8104534588022099,-1.2622064772118446]
2485 for i in xrange(82):
2486 self.assertAlmostEqual(expected5[i],m12.getCoords().getIJ(0,i),12);
2488 self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples());
2489 self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples());
2490 self.assertEqual(expected3,m12.getNodalConnectivity().getValues());
2491 self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues());
2494 def testUMeshTessellate2DCurve1(self):
2495 # A quarter of circle:
2496 mcoords = [0.4,0.0, 0.0,-0.4, 0.283,-0.283]
2499 m1 = MEDCouplingUMesh.New()
2500 m1.setMeshDimension(1)
2502 m1.insertNextCell(NORM_SEG3, mconnec)
2504 myCoords = DataArrayDouble.New(mcoords, 3, 2)
2505 m1.setCoords(myCoords)
2508 m2.tessellate2D(0.1)
2509 # If the following raises, the test will fail automatically:
2510 m2.checkConsistency(0.0) # eps param not used
2512 def testIntersect2DMeshesTmp4(self):
2513 m1Coords=[0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1,0.,-1.5,0.5,0.,1.25,0.,0.70710678118654757,0.70710678118654757,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.70710678118654757,0.70710678118654757,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.70710678118654757,-0.70710678118654757,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.70710678118654757,-0.70710678118654757,1.0606601717798214,-1.0606601717798214];
2514 m1Conn=[0,3,1,13,11,9, 3,4,2,1,14,12,10,11, 5,3,0,15,13,17, 6,4,3,5,16,14,15,18, 5,0,7,17,21,19, 6,5,7,8,18,19,22,20, 0,1,7,9,23,21, 1,2,8,7,10,24,22,23];
2515 m1=MEDCouplingUMesh.New();
2516 m1.setMeshDimension(2);
2517 m1.allocateCells(8);
2518 m1.insertNextCell(NORM_TRI6,6,m1Conn[0:6]);
2519 m1.insertNextCell(NORM_QUAD8,8,m1Conn[6:14]);
2520 m1.insertNextCell(NORM_TRI6,6,m1Conn[14:20]);
2521 m1.insertNextCell(NORM_QUAD8,8,m1Conn[20:28]);
2522 m1.insertNextCell(NORM_TRI6,6,m1Conn[28:34]);
2523 m1.insertNextCell(NORM_QUAD8,8,m1Conn[34:42]);
2524 m1.insertNextCell(NORM_TRI6,6,m1Conn[42:48]);
2525 m1.insertNextCell(NORM_QUAD8,8,m1Conn[48:56]);
2526 m1.finishInsertingCells();
2527 myCoords1=DataArrayDouble.New();
2528 myCoords1.setValues(m1Coords,25,2);
2529 m1.setCoords(myCoords1);
2531 m2Coords=[0.,0.,1.1,0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1,-1.1,-1.,0.,-1.,1.1,-1,1.7,-1.]
2532 m2Conn=[0,3,2,1, 1,2,5,4, 7,6,3,0, 8,9,6,7, 7,0,12,11, 8,7,11,10, 0,1,13,12, 1,4,14,13]
2533 m2=MEDCouplingUMesh.New();
2534 m2.setMeshDimension(2);
2535 m2.allocateCells(8);
2537 m2.insertNextCell(NORM_QUAD4,4,m2Conn[4*i:4*(i+1)])
2539 m2.finishInsertingCells();
2540 myCoords2=DataArrayDouble.New();
2541 myCoords2.setValues(m2Coords,15,2);
2542 m2.setCoords(myCoords2);
2544 m3,d1,d2=MEDCouplingUMesh.Intersect2DMeshes(m2,m1,1e-10)
2547 expected1=[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
2548 expected2=[0,1,1,-1,2,3,3,-1,4,5,5,-1,6,7,7,-1]
2549 self.assertEqual(16,d1.getNumberOfTuples());
2550 self.assertEqual(16,d2.getNumberOfTuples());
2551 self.assertEqual(16,m3.getNumberOfCells());
2552 self.assertEqual(104,m3.getNumberOfNodes());
2553 self.assertEqual(2,m3.getSpaceDimension());
2554 self.assertEqual(expected1,d1.getValues());
2555 self.assertEqual(expected2,d2.getValues());
2556 expected3=[6,16,15,18,44,45,46,8,18,2,1,16,47,48,49,50,8,17,1,2,40,51,52,53,54,8,40,5,4,17,55,56,57,58,6,18,15,20,59,60,61,8,20,7,6,18,62,63,64,65,8,41,6,7,21,66,67,68,69,8,21,8,9,41,70,71,72,73,6,20,15,22,74,75,76,8,22,11,7,20,77,78,79,80,8,21,7,11,42,81,82,83,84,8,42,10,8,21,85,86,87,88,6,22,15,16,89,90,91,8,16,1,13,22,92,93,94,95,8,43,13,1,17,96,97,98,99,8,17,4,14,43,100,101,102,103]
2557 expected4=[0,7,16,25,34,41,50,59,68,75,84,93,102,109,118,127,136]
2558 expected5=[0.,0.,1.1, 0.,1.1,1.,0.,1.,1.7,0.,1.7,1.,-1.1,1.,-1.1,0.,-1.7,0.,-1.7,1.,-1.7,-1.,-1.1,-1.,0.,-1.,1.1,-1.,1.7,-1.,0.,0.,1.,0.,1.5,0.,0.,1.,0.,1.5,-1.,0.,-1.5,0.,0.,-1.,0.,-1.5,0.5,0.,1.25,0.,0.7071067811865476,0.7071067811865476,1.0606601717798214,1.0606601717798214,0.,0.5,0.,1.25,-0.7071067811865476,0.7071067811865476,-1.0606601717798214,1.0606601717798214,-0.5,0.,-1.25,0.,-0.7071067811865476,-0.7071067811865476,-1.0606601717798214,-1.0606601717798214,0.,-0.5,0.,-1.25,0.7071067811865476,-0.7071067811865476,1.0606601717798214,-1.0606601717798214,1.1180339887498951,1.,-1.1180339887498951,1.,-1.1180339887498951,-1.,1.1180339887498951,-1.,0.5,0.,0.,0.5,0.7071067811865477,0.7071067811865476,0.55,1.,1.1,0.5,1.05,0.,0.7071067811865477,0.7071067811865475,1.3,0.,1.1,0.5,1.1090169943749475,1.,1.4012585384440737,0.535233134659635,1.4090169943749475,1.,1.7,0.5,1.6,0.,1.4012585384440737,0.535233134659635,0.,0.5,-0.5,0.,-0.7071067811865477,0.7071067811865476,-1.05,0.,-1.1,0.5,-0.55,1.,-0.7071067811865478,0.7071067811865475,-1.1090169943749475,1.,-1.1,0.5,-1.3,0.,-1.4012585384440737,0.5352331346596344,-1.6,0.,-1.7,0.5,-1.4090169943749475,1.,-1.4012585384440737,0.5352331346596344,-0.5,0.,0.,-0.5,-0.7071067811865475,-0.7071067811865477,-0.55,-1.,-1.1,-0.5,-1.05,0.,-0.7071067811865475,-0.7071067811865477,-1.3,0.,-1.1,-0.5,-1.1090169943749475,-1.,-1.4012585384440734,-0.5352331346596354,-1.4090169943749475,-1.,-1.7,-0.5,-1.6,0.,-1.4012585384440732,-0.5352331346596354,0.,-0.5,0.5,0.,0.7071067811865475,-0.7071067811865477,1.05,0.,1.1,-0.5,0.55,-1.,0.7071067811865475,-0.7071067811865477,1.1090169943749475,-1.,1.1,-0.5,1.3,0.,1.4012585384440737,-0.535233134659635,1.6,0.,1.7,-0.5,1.4090169943749475,-1.,1.4012585384440737,-0.535233134659635]
2559 self.assertEqual(136,m3.getNodalConnectivity().getNumberOfTuples());
2560 self.assertEqual(17,m3.getNodalConnectivityIndex().getNumberOfTuples());
2561 self.assertEqual(expected3,m3.getNodalConnectivity().getValues());
2562 self.assertEqual(expected4,m3.getNodalConnectivityIndex().getValues());
2563 for i in xrange(208):
2564 self.assertAlmostEqual(expected5[i],m3.getCoords().getIJ(0,i),12);
2568 def testGetCellIdsCrossingPlane1(self):
2569 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2571 origin=[1.524,1.4552,1.74768]
2572 ids1=mesh3D.getCellIdsCrossingPlane(origin,vec,1e-10)
2573 self.assertEqual([1,3,4,7,9,10,13,15,16],ids1.getValues())
2575 ids2=mesh3D.getCellIdsCrossingPlane(origin,vec2,1e-10)
2576 self.assertEqual([6,7,8,9,10,11],ids2.getValues())
2579 def testBuildSlice3D1(self):
2580 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2581 vec1=[-0.07,1.,0.07]
2582 origin1=[1.524,1.4552,1.74768]
2583 slice1,ids=mesh3D.buildSlice3D(origin1,vec1,1e-10);
2584 expected1=[1,3,4,7,9,10,13,15,16]
2585 expected2=[5,42,41,40,43,44,5,42,46,45,41,5,44,43,40,47,48,5,49,42,44,50,5,49,51,46,42,5,50,44,48,52,5,53,49,50,54,5,53,55,51,49,5,54,50,52,56]
2586 expected3=[0,6,11,17,22,27,32,37,42,47]
2587 expected4=[1.,1.,0.,1.,1.25,0.,1.,1.5,0.,2.,1.,0.,1.,2.,0.,0.,2.,0.,3.,1.,0.,3.,2.,0.,0.,1.,0.,2.,2.,0.,1.,1.,1.,1.,1.25,1.,1.,1.5,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,2.,2.,1.,1.,1.,2.,1.,1.25,2.,1.,1.5,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,2.,2.,2.,1.,1.,3.,1.,1.25,3.,1.,1.5,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,2.,2.,3.,1.,1.5408576,0.,2.,1.6108576000000001,0.,2.,1.5408576,1.,1.,1.5,0.5836800000000008,1.,1.4708576,1.,3.,1.6808576,0.,3.,1.6108576000000001,1.,0.,1.4708576,0.,0.,1.4008576,1.,2.,1.4708576,2.,1.,1.4008576000000001,2.,3.,1.5408575999999998,2.,0.,1.3308575999999999,2.,2.,1.4008576,3.,1.,1.3308576,3.,3.,1.4708576,3.,0.,1.2608576,3.]
2588 self.assertEqual(2,slice1.getMeshDimension());
2589 self.assertEqual(3,slice1.getSpaceDimension());
2590 self.assertEqual(57,slice1.getNumberOfNodes());
2591 self.assertEqual(9,slice1.getNumberOfCells());
2592 self.assertEqual(9,ids.getNumberOfTuples());
2593 self.assertEqual(47,slice1.getNodalConnectivity().getNumberOfTuples());
2594 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
2595 self.assertEqual(expected1,ids.getValues());
2596 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
2597 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
2598 for i in xrange(171):
2599 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
2601 # 2nd slice based on already existing nodes of mesh3D.
2604 slice1,ids=mesh3D.buildSlice3D(origin2,vec2,1e-10);
2605 expected5=[5,50,10,4,51,5,50,52,7,10,5,51,4,5,53,5,54,50,51,55,56,5,54,57,52,50,5,56,55,51,53,58,5,38,59,56,54,43,5,54,57,46,43,5,38,59,56,58,48]
2606 expected6=[0,5,10,15,21,26,32,38,43,49]
2607 expected7=[1.,1.,0.,1.,1.25,0.,1.,1.5,0.,2.,1.,0.,1.,2.,0.,0.,2.,0.,3.,1.,0.,3.,2.,0.,0.,1.,0.,1.,3.,0.,2.,2.,0.,2.,3.,0.,1.,1.,1.,1.,1.25,1.,1.,1.5,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,1.,3.,1.,2.,2.,1.,2.,3.,1.,0.,0.,2.,1.,1.,2.,1.,1.25,2.,1.,0.,2.,1.,1.5,2.,2.,0.,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,2.,2.,2.,0.,0.,3.,1.,1.,3.,1.,1.25,3.,1.,0.,3.,1.,1.5,3.,2.,0.,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,2.,2.,3.,2.,1.6666666666666667,1.,1.,1.6666666666666667,1.,3.,1.6666666666666667,1.,0.,1.6666666666666667,1.,2.,1.3333333333333335,2.,1.,1.5,1.5,1.,1.3333333333333333,2.,3.,1.3333333333333335,2.,0.,1.3333333333333335,2.,1.,1.25,2.25]
2608 self.assertEqual(2,slice1.getMeshDimension());
2609 self.assertEqual(3,slice1.getSpaceDimension());
2610 self.assertEqual(60,slice1.getNumberOfNodes());
2611 self.assertEqual(9,slice1.getNumberOfCells());
2612 self.assertEqual(9,ids.getNumberOfTuples());
2613 self.assertEqual(49,slice1.getNodalConnectivity().getNumberOfTuples());
2614 self.assertEqual(10,slice1.getNodalConnectivityIndex().getNumberOfTuples());
2615 self.assertEqual(expected1,ids.getValues());
2616 self.assertEqual(expected5,slice1.getNodalConnectivity().getValues());
2617 self.assertEqual(expected6,slice1.getNodalConnectivityIndex().getValues());
2618 for i in xrange(180):
2619 self.assertAlmostEqual(expected7[i],slice1.getCoords().getIJ(0,i),12);
2621 # 3rd slice based on shared face of mesh3D.
2624 slice1,ids=mesh3D.buildSlice3D(origin3,vec3,1e-10);
2625 expected8=[6,7,8,9,10,11,12,13,14,15,16,17]
2626 expected9=[5,15,26,16,18,5,16,21,28,22,19,17,5,18,20,21,16,5,21,24,25,28,5,26,16,17,19,22,23,5,22,27,29,28,5,15,26,16,18,5,16,21,28,22,19,17,5,18,20,21,16,5,21,24,25,28,5,26,16,17,19,22,23,5,22,27,29,28]
2627 expected10=[0,5,12,17,22,29,34,39,46,51,56,63,68]
2628 expected11=[0.,0.,1.,1.,1.,1.,1.,1.25,1.,1.,0.,1.,1.,1.5,1.,2.,0.,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,1.,3.,1.,2.,2.,1.,2.,3.,1.,0.,0.,2.,1.,1.,2.,1.,1.25,2.,1.,0.,2.,1.,1.5,2.,2.,0.,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,1.,3.,2.,2.,2.,2.,2.,3.,2.,0.,0.,3.,1.,1.,3.,1.,1.25,3.,1.,0.,3.,1.,1.5,3.,2.,0.,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,1.,3.,3.,2.,2.,3.,2.,3.,3.]
2629 self.assertEqual(2,slice1.getMeshDimension());
2630 self.assertEqual(3,slice1.getSpaceDimension());
2631 self.assertEqual(45,slice1.getNumberOfNodes());
2632 self.assertEqual(12,slice1.getNumberOfCells());
2633 self.assertEqual(12,ids.getNumberOfTuples());
2634 self.assertEqual(68,slice1.getNodalConnectivity().getNumberOfTuples());
2635 self.assertEqual(13,slice1.getNodalConnectivityIndex().getNumberOfTuples());
2636 self.assertEqual(expected8,ids.getValues());
2637 self.assertEqual(expected9,slice1.getNodalConnectivity().getValues());
2638 self.assertEqual(expected10,slice1.getNodalConnectivityIndex().getValues());
2639 for i in xrange(135):
2640 self.assertAlmostEqual(expected11[i],slice1.getCoords().getIJ(0,i),12);
2644 def testBuildSlice3DSurf1(self):
2645 mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
2646 mesh2D=mesh3D.buildDescendingConnectivity()[0];
2647 vec1=[-0.07,1.,0.07]
2648 origin1=[1.524,1.4552,1.74768]
2649 slice1,ids=mesh2D.buildSlice3DSurf(origin1,vec1,1e-10);
2650 expected1=[6,8,10,11,13,18,19,21,23,25,26,38,41,43,47,49,52,53,64,67,69,73,75,78,79]
2651 expected2=[1,40,41,1,42,41,1,40,43,1,44,43,1,42,44,1,45,41,1,42,46,1,46,45,1,47,40,1,47,48,1,44,48,1,49,42,1,44,50,1,49,50,1,49,51,1,51,46,1,48,52,1,50,52,1,53,49,1,50,54,1,53,54,1,53,55,1,55,51,1,52,56,1,54,56]
2652 expected3=[0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75];
2653 expected4=[1.,1.,0.,1.,1.25,0.,1.,1.5,0.,2.,1.,0.,1.,2.,0.,0.,2.,0.,3.,1.,0.,3.,2.,0.,0.,1.,0.,2.,2.,0.,1.,1.,1.,1.,1.25,1.,1.,1.5,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,2.,2.,1.,1.,1.,2.,1.,1.25,2.,1.,1.5,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,2.,2.,2.,1.,1.,3.,1.,1.25,3.,1.,1.5,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,2.,2.,3.,1.,1.5408576,0.,2.,1.6108576000000001,0.,2.,1.5408576,1.,1.,1.5,0.5836800000000008,1.,1.4708576,1.,3.,1.6808576,0.,3.,1.6108576000000001,1.,0.,1.4708576,0.,0.,1.4008576,1.,2.,1.4708576,2.,1.,1.4008576000000001,2.,3.,1.5408575999999998,2.,0.,1.3308575999999999,2.,2.,1.4008576,3.,1.,1.3308576,3.,3.,1.4708576,3.,0.,1.2608576,3.]
2654 self.assertEqual(1,slice1.getMeshDimension());
2655 self.assertEqual(3,slice1.getSpaceDimension());
2656 self.assertEqual(57,slice1.getNumberOfNodes());
2657 self.assertEqual(25,slice1.getNumberOfCells());
2658 self.assertEqual(25,ids.getNumberOfTuples());
2659 self.assertEqual(75,slice1.getNodalConnectivity().getNumberOfTuples());
2660 self.assertEqual(26,slice1.getNodalConnectivityIndex().getNumberOfTuples());
2661 self.assertEqual(expected1,ids.getValues());
2662 self.assertEqual(expected2,slice1.getNodalConnectivity().getValues());
2663 self.assertEqual(expected3,slice1.getNodalConnectivityIndex().getValues());
2664 for i in xrange(171):
2665 self.assertAlmostEqual(expected4[i],slice1.getCoords().getIJ(0,i),12);
2670 slice1,ids=mesh2D.buildSlice3DSurf(origin2,vec2,1e-10);
2671 expected5=[32,32,32,32,33,34,35,36,37,38,39,40,41,42,43,43,43,43,43,43,44,44,44,44,45,46,47,47,47,47,48,49,50,51,52,53,53,53,53,53,53,54,54,54,54,55,56,57,59,60,61,62,63,64,65,66,67,68,71,72,74,75,76,77,78,81,82,83]
2672 expected6=[1,15,18,1,18,16,1,16,26,1,26,15,1,26,15,1,16,26,1,18,16,1,15,18,1,16,21,1,21,28,1,22,28,1,19,22,1,17,19,1,16,17,1,16,21,1,21,28,1,28,22,1,22,19,1,19,17,1,17,16,1,16,18,1,18,20,1,20,21,1,21,16,1,20,21,1,18,20,1,28,21,1,21,24,1,24,25,1,25,28,1,25,28,1,24,25,1,21,24,1,23,22,1,26,23,1,26,16,1,16,17,1,17,19,1,19,22,1,22,23,1,23,26,1,22,28,1,28,29,1,29,27,1,27,22,1,27,22,1,29,27,1,28,29,1,26,15,1,16,26,1,18,16,1,15,18,1,16,21,1,21,28,1,22,28,1,19,22,1,17,19,1,16,17,1,20,21,1,18,20,1,25,28,1,24,25,1,21,24,1,23,22,1,26,23,1,27,22,1,29,27,1,28,29]
2673 expected7=[0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,183,186,189,192,195,198,201,204];
2674 expected8=[0.,0.,1.,1.,1.,1.,1.,1.25, 1.,1.,0.,1.,1.,1.5, 1.,2.,0.,1.,2.,1.,1.,1.,2.,1.,0.,2.,1.,3.,1.,1.,3.,2.,1.,0.,1.,1.,1.,3.,1.,2.,2.,1.,2.,3.,1.,0.,0.,2.,1.,1.,2.,1.,1.25, 2.,1.,0.,2.,1.,1.5, 2.,2.,0.,2.,2.,1.,2.,1.,2.,2.,0.,2.,2.,3.,1.,2.,3.,2.,2.,0.,1.,2.,1.,3.,2.,2.,2.,2.,2.,3.,2.,0.,0.,3.,1.,1.,3.,1.,1.25, 3.,1.,0.,3.,1.,1.5, 3.,2.,0.,3.,2.,1.,3.,1.,2.,3.,0.,2.,3.,3.,1.,3.,3.,2.,3.,0.,1.,3.,1.,3.,3.,2.,2.,3.,2.,3.,3.]
2675 self.assertEqual(1,slice1.getMeshDimension());
2676 self.assertEqual(3,slice1.getSpaceDimension());
2677 self.assertEqual(45,slice1.getNumberOfNodes());
2678 self.assertEqual(68,slice1.getNumberOfCells());
2679 self.assertEqual(68,ids.getNumberOfTuples());
2680 self.assertEqual(204,slice1.getNodalConnectivity().getNumberOfTuples());
2681 self.assertEqual(69,slice1.getNodalConnectivityIndex().getNumberOfTuples());
2682 self.assertEqual(expected5,ids.getValues());
2683 self.assertEqual(expected6,slice1.getNodalConnectivity().getValues());
2684 self.assertEqual(expected7,slice1.getNodalConnectivityIndex().getValues());
2685 for i in xrange(135):
2686 self.assertAlmostEqual(expected8[i],slice1.getCoords().getIJ(0,i),12);
2690 def testDataArrayDoubleAdvSetting1(self):
2691 data1=[1.,11.,2.,12.,3.,13.,4.,14.,5.,15.,6.,16.,7.,17.]
2692 data2=[8.,38.,9.,39.,0.,30.,11.,41.,12.,42.]
2693 compsCpp=["comp1","comp2"]
2694 da=DataArrayDouble.New();
2695 da.setInfoAndChangeNbOfCompo(compsCpp);
2698 compsCpp=compsCpp[:-1]
2699 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
2700 da.setValues(data1,7,2)
2702 p=[(0,3),(3,5),(5,7)]
2703 tmp=da.selectByTupleRanges(p);
2704 self.assertTrue(tmp.isEqual(da,1e-14));
2705 p=[(0,2),(3,4),(5,7)]
2706 tmp=da.selectByTupleRanges(p);
2707 expected1=[1.,11.,2.,12.,4.,14.,6.,16.,7.,17.]
2708 self.assertEqual(5,tmp.getNumberOfTuples());
2709 self.assertEqual(2,tmp.getNumberOfComponents());
2710 for i in xrange(10):
2711 self.assertAlmostEqual(expected1[i],tmp.getIJ(0,i),14);
2713 p=[(0,2),(0,2),(5,6)]
2714 tmp=da.selectByTupleRanges(p);
2715 expected2=[1.,11.,2.,12.,1.,11.,2.,12.,6.,16.]
2716 self.assertEqual(5,tmp.getNumberOfTuples());
2717 self.assertEqual(2,tmp.getNumberOfComponents());
2718 for i in xrange(10):
2719 self.assertAlmostEqual(expected2[i],tmp.getIJ(0,i),14);
2721 p=[(0,2),(-1,2),(5,6)]
2722 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
2723 p=[(0,2),(0,2),(5,8)]
2724 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
2726 da2=DataArrayDouble.New();
2727 da2.setValues(data2,5,2);
2730 dac.setContigPartOfSelectedValuesSlice(1,da2,2,4,1);
2731 expected3=[1.,11.,0.,30.,11.,41.,4.,14.,5.,15.,6.,16.,7.,17.]
2732 for i in xrange(14):
2733 self.assertAlmostEqual(expected3[i],dac.getIJ(0,i),14);
2737 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValuesSlice,3,da2,0,5,1);
2738 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValuesSlice,0,da2,4,6,1);
2739 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValuesSlice,3,da2,5,0,1);
2740 dac.setContigPartOfSelectedValuesSlice(3,da2,1,5,1);
2741 expected4=[1.,11.,2.,12.,3.,13.,9.,39.,0.,30.,11.,41.,12.,42.]
2742 for i in xrange(14):
2743 self.assertAlmostEqual(expected4[i],dac.getIJ(0,i),14);
2746 ids=DataArrayInt.New();
2749 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
2750 dac.setContigPartOfSelectedValues(2,da2,ids);
2751 expected5=[1.,11.,2.,12.,0.,30.,8.,38.,12.,42.,6.,16.,7.,17.]
2752 for i in xrange(14):
2753 self.assertAlmostEqual(expected5[i],dac.getIJ(0,i),14);
2757 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
2758 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
2759 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
2760 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
2761 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
2762 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
2764 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
2766 dac.setContigPartOfSelectedValues(4,da2,ids);
2767 expected6=[1.,11.,2.,12.,3.,13.,4.,14.,0.,30.,0.,30.,9.,39.]
2768 for i in xrange(14):
2769 self.assertAlmostEqual(expected6[i],dac.getIJ(0,i),14);
2773 def testDataArrayIntAdvSetting1(self):
2774 data1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
2775 data2=[8,38,9,39,0,30,11,41,12,42]
2776 compsCpp=["comp1","comp2"]
2777 da=DataArrayInt.New();
2778 da.setInfoAndChangeNbOfCompo(compsCpp);
2781 compsCpp=compsCpp[:-1]
2782 self.assertRaises(InterpKernelException,da.setInfoAndChangeNbOfCompo,compsCpp);
2783 da.setValues(data1,7,2)
2785 p=[(0,3),(3,5),(5,7)]
2786 tmp=da.selectByTupleRanges(p);
2787 self.assertTrue(tmp.isEqual(da));
2788 p=[(0,2),(3,4),(5,7)]
2789 tmp=da.selectByTupleRanges(p);
2790 expected1=[1,11,2,12,4,14,6,16,7,17]
2791 self.assertEqual(5,tmp.getNumberOfTuples());
2792 self.assertEqual(2,tmp.getNumberOfComponents());
2793 for i in xrange(10):
2794 self.assertEqual(expected1[i],tmp.getIJ(0,i));
2796 p=[(0,2),(0,2),(5,6)]
2797 tmp=da.selectByTupleRanges(p);
2798 expected2=[1,11,2,12,1,11,2,12,6,16]
2799 self.assertEqual(5,tmp.getNumberOfTuples());
2800 self.assertEqual(2,tmp.getNumberOfComponents());
2801 for i in xrange(10):
2802 self.assertEqual(expected2[i],tmp.getIJ(0,i));
2804 p=[(0,2),(-1,2),(5,6)]
2805 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
2806 p=[(0,2),(0,2),(5,8)]
2807 self.assertRaises(InterpKernelException,da.selectByTupleRanges,p);
2809 da2=DataArrayInt.New();
2810 da2.setValues(data2,5,2);
2813 dac.setContigPartOfSelectedValuesSlice(1,da2,2,4,1);
2814 expected3=[1,11,0,30,11,41,4,14,5,15,6,16,7,17]
2815 for i in xrange(14):
2816 self.assertEqual(expected3[i],dac.getIJ(0,i));
2820 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValuesSlice,3,da2,0,5,1);
2821 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValuesSlice,0,da2,4,6,1);
2822 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValuesSlice,3,da2,5,0,1);
2823 dac.setContigPartOfSelectedValuesSlice(3,da2,1,5,1);
2824 expected4=[1,11,2,12,3,13,9,39,0,30,11,41,12,42]
2825 for i in xrange(14):
2826 self.assertEqual(expected4[i],dac.getIJ(0,i));
2829 ids=DataArrayInt.New();
2832 ids.setIJ(0,0,2); ids.setIJ(1,0,0); ids.setIJ(2,0,4);
2833 dac.setContigPartOfSelectedValues(2,da2,ids);
2834 expected5=[1,11,2,12,0,30,8,38,12,42,6,16,7,17]
2835 for i in xrange(14):
2836 self.assertEqual(expected5[i],dac.getIJ(0,i));
2840 ids.setIJ(0,0,2); ids.setIJ(1,0,5); ids.setIJ(2,0,4);
2841 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
2842 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,-1);
2843 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,1,da2,ids);
2844 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
2845 self.assertRaises(InterpKernelException,dac.setContigPartOfSelectedValues,5,da2,ids);
2847 ids.setIJ(0,0,2); ids.setIJ(1,0,2); ids.setIJ(2,0,1);
2849 dac.setContigPartOfSelectedValues(4,da2,ids);
2850 expected6=[1,11,2,12,3,13,4,14,0,30,0,30,9,39]
2851 for i in xrange(14):
2852 self.assertEqual(expected6[i],dac.getIJ(0,i));
2856 def testBuildDescendingConnec2Of3DMesh1(self):
2857 mesh=MEDCouplingDataForTest.build3DSourceMesh_1();
2859 mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2();
2860 mesh2.checkConsistencyLight();
2861 self.assertEqual(2,mesh2.getMeshDimension());
2862 self.assertEqual(30,mesh2.getNumberOfCells());
2863 self.assertEqual(31,revDescIndx.getNbOfElems()); self.assertEqual(31,revDescIndx.getNumberOfTuples());
2864 self.assertEqual(13,descIndx.getNbOfElems()); self.assertEqual(13,descIndx.getNumberOfTuples());
2865 self.assertEqual(48,desc.getNbOfElems()); self.assertEqual(48,desc.getNumberOfTuples());
2866 self.assertEqual(48,revDesc.getNbOfElems()); self.assertEqual(48,revDesc.getNumberOfTuples());
2867 expected1=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,-10,15,-5,-13,16,17,-14,18,-4,19,-2,20,21,22,23,24,25,-11,26,-1,-12,-25,-22,27,28,-7,-20,-24,29,-16,-18,30,-8,-28]
2868 self.assertEqual(expected1,desc.getValues());
2869 expected2=[0,4,8,12,16,20,24,28,32,36,40,44,48]
2870 self.assertEqual(expected2,descIndx.getValues());
2871 expected3=[0,2,4,5,7,9,10,12,14,15,17,19,21,23,25,26,28,29,31,32,34,35,37,38,40,42,43,44,46,47,48]
2872 self.assertEqual(expected3,revDescIndx.getValues());
2873 expected4=[0,8,0,6,0,0,5,1,4,1,1,9,1,11,2,2,3,2,7,2,8,3,4,3,5,3,4,10,4,5,11,5,6,10,6,6,9,7,7,10,7,8,8,9,9,11,10,11]
2874 self.assertEqual(expected4,revDesc.getValues());
2875 conn=mesh2.getNodalConnectivity();
2876 connIndex=mesh2.getNodalConnectivityIndex();
2877 expected5=[0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120]
2878 self.assertEqual(expected5,connIndex.getValues());
2879 expected6=[3,8,1,7,3,8,3,1,3,1,3,7,3,7,3,8,3,6,0,8,3,6,2,0,3,0,2,8,3,8,2,6,3,7,4,5,3,7,8,4,3,4,8,5,3,5,8,7,3,6,8,4,3,6,7,8,3,4,7,6,3,8,4,0,3,0,4,6,3,6,3,8,3,7,3,6,3,8,0,1,3,1,0,3,3,3,0,8,3,4,1,5,3,4,8,1,3,1,8,5,3,1,7,5,3,0,2,3,3,3,2,8,3,1,4,0,3,3,2,6]
2880 self.assertEqual(expected6,conn.getValues());
2883 def testAre2DCellsNotCorrectlyOriented1(self):
2884 m1Coords=[1.,1.,-1.,-1.,-1.,-1.,1.,-1.]
2886 m1=MEDCouplingUMesh.New();
2887 m1.setMeshDimension(2);
2888 m1.allocateCells(1);
2889 m1.insertNextCell(NORM_QUAD4,4,m1Conn[0:4])
2890 m1.finishInsertingCells();
2891 myCoords1=DataArrayDouble.New();
2892 myCoords1.setValues(m1Coords,4,2);
2893 m1.setCoords(myCoords1);
2896 for i in xrange(18):
2897 vec2=[3.*cos(pi/9.*i),3.*sin(pi/9.*i)];
2898 m1Cpy=m1.deepCopy();
2899 m1Cpy.translate(vec2);
2900 self.assertRaises(InterpKernelException,m1Cpy.are2DCellsNotCorrectlyOriented,vec1,False);
2901 m1Cpy.changeSpaceDimension(3);
2902 res=m1Cpy.are2DCellsNotCorrectlyOriented(vec1,False)
2903 self.assertEqual([0],res.getValues());
2907 def testDataArrayAbs1(self):
2908 d1=DataArrayDouble.New();
2909 val1=[2.,-3.,-5.,6.,-7.,-8.,9.,10.,-11.,-12.,-13.,-15.]
2910 expected1=[2.,3.,5.,6.,7.,8.,9.,10.,11.,12.,13.,15.]
2911 d1.setValues(val1,6,2);
2912 d2=d1.convertToIntArr();
2915 for i in xrange(12):
2916 self.assertAlmostEqual(expected1[i],d1.getIJ(0,i),14);
2919 expected2=[2,3,5,6,7,8,9,10,11,12,13,15]
2921 for i in xrange(12):
2922 self.assertEqual(expected2[i],d2.getIJ(0,i));
2928 def testGetValueOn3(self):
2930 v2=[0.7,1.25,0.,2.,1.5]
2931 disp=[5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.]
2932 m=MEDCouplingUMesh.New("myMesh",1)
2935 m.allocateCells(nbCells)
2936 coords=DataArrayDouble.New() ; coords.setValues(v,nbNodes,1)
2938 m.insertNextCell(NORM_SEG2,2,[0,1])
2939 m.insertNextCell(NORM_SEG2,2,[2,1])
2940 m.insertNextCell(NORM_SEG2,2,[2,3])
2941 m.finishInsertingCells()
2942 f=MEDCouplingFieldDouble.New(ON_NODES)
2944 array=DataArrayDouble.New(); array.setValues(disp,m.getNumberOfNodes(),3)
2946 arr1=f.getValueOnMulti(v2)
2947 self.assertEqual(5,arr1.getNumberOfTuples());
2948 self.assertEqual(3,arr1.getNumberOfComponents());
2949 expected1=[5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.]
2950 for i in xrange(15):
2951 self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14);
2955 def testGetNodeIdsOfCell2(self):
2956 m1c=MEDCouplingCMesh.New();
2957 coordsX=DataArrayDouble.New();
2958 arrX=[ -1., 1., 2., 4., 4.5 ]
2959 coordsX.setValues(arrX,5,1);
2960 coordsY=DataArrayDouble.New();
2961 arrY=[ -2., 2., 4., 8.]
2962 coordsY.setValues(arrY,4,1);
2963 coordsZ=DataArrayDouble.New();
2965 coordsZ.setValues(arrZ,3,1);
2967 m1c.setCoordsAt(0,coordsX);
2968 expected1=[[0,1],[1,2],[2,3],[3,4]]
2969 self.assertEqual(4,m1c.getNumberOfCells())
2970 for i in xrange(m1c.getNumberOfCells()):
2971 self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i))
2974 m1c.setCoordsAt(1,coordsY);
2975 self.assertEqual(12,m1c.getNumberOfCells())
2976 self.assertEqual(20,m1c.getNumberOfNodes())
2977 expected2=[[0,1,6,5],[1,2,7,6],[2,3,8,7],[3,4,9,8],[5,6,11,10],[6,7,12,11],[7,8,13,12],[8,9,14,13],[10,11,16,15],[11,12,17,16],[12,13,18,17],[13,14,19,18]]
2978 for i in xrange(m1c.getNumberOfCells()):
2979 self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i))
2982 m1c.setCoordsAt(2,coordsZ);
2983 self.assertEqual(24,m1c.getNumberOfCells())
2984 self.assertEqual(60,m1c.getNumberOfNodes())
2985 expected3=[[0,1,6,5,20,21,26,25],[1,2,7,6,21,22,27,26],[2,3,8,7,22,23,28,27],[3,4,9,8,23,24,29,28],[5,6,11,10,25,26,31,30],[6,7,12,11,26,27,32,31],[7,8,13,12,27,28,33,32],[8,9,14,13,28,29,34,33],[10,11,16,15,30,31,36,35],[11,12,17,16,31,32,37,36],[12,13,18,17,32,33,38,37],[13,14,19,18,33,34,39,38],[20,21,26,25,40,41,46,45],[21,22,27,26,41,42,47,46],[22,23,28,27,42,43,48,47],[23,24,29,28,43,44,49,48],[25,26,31,30,45,46,51,50],[26,27,32,31,46,47,52,51],[27,28,33,32,47,48,53,52],[28,29,34,33,48,49,54,53],[30,31,36,35,50,51,56,55],[31,32,37,36,51,52,57,56],[32,33,38,37,52,53,58,57],[33,34,39,38,53,54,59,58]]
2986 self.assertEqual(24,m1c.getNumberOfCells())
2987 for i in xrange(m1c.getNumberOfCells()):
2988 self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i))
2994 if __name__ == '__main__':