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 MEDCouplingBasicsTest2(unittest.TestCase):
29 def testMinMaxFields1(self):
30 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
31 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
34 array=DataArrayDouble.New();
35 arr1=[7.,107.,207.,8.,108.,208.,9.,109.,209.,10.,110.,210.,11.,111.,211.,12.,112.,212.,13.,113.,213.,14.,114.,214.,15.,115.,215.,16.,116.,216.]
36 array.setValues(arr1,mesh1.getNumberOfCells(),3);
38 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
41 array=DataArrayDouble.New();
42 arr2=[6.,108.,206.,9.,107.,209.,8.,110.,208.,11.,109.,211.,10.,112.,210.,13.,111.,213.,12.,114.,212.,15.,113.,215.,14.,116.,214.,17.,115.,217.]
43 array.setValues(arr2,mesh1.getNumberOfCells(),3);
47 expected1=[7.,108.,207.,9.,108.,209.,9.,110.,209.,11.,110.,211.,11.,112.,211.,13.,112.,213.,13.,114.,213.,15.,114.,215.,15.,116.,215.,17.,116.,217.]
49 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),9);
53 expected2=[6.,107.,206.,8.,107.,208.,8.,109.,208.,10.,109.,210.,10.,111.,210.,12.,111.,212.,12.,113.,212.,14.,113.,214.,14.,115.,214.,16.,115.,216.]
55 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
60 def testApplyLin1(self):
61 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
62 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
64 array=DataArrayDouble.New();
65 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
66 array.setValues(arr,mesh1.getNumberOfCells(),2);
70 expected1=[17.,107.,19.,108.,21.,109.,23.,110.,25.,111.,27.,112.,29.,113.,31.,114.,33.,115.,35.,116.]
72 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),9);
75 arr2=[2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
76 array=DataArrayDouble.New();
77 array.setValues(arr2,mesh1.getNumberOfCells(),2);
78 f1.setEndArray(array);
82 expected2=[17.,433.,19.,437.,21.,441.,23.,445.,25.,449.,27.,453.,29.,457.,31.,461.,33.,465.,35.,469.]
84 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),9);
86 expected3=[2.,413.,3.,417.,4.,421.,5.,425.,6.,429.,7.,433.,8.,437.,9.,441.,10.,445.,11.,449.]
88 self.assertAlmostEqual(expected3[i],f1.getEndArray().getIJ(0,i),9);
93 def testGetIdsInRange1(self):
94 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
95 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
98 array=DataArrayDouble.New();
99 arr1=[2.,8.,6.,5.,11.,7.,9.,3.,10.,4.]
100 array.setValues(arr1,mesh1.getNumberOfCells(),1);
103 f1.checkConsistencyLight();
104 da=f1.findIdsInRange(2.9,7.1);
105 self.failUnlessEqual(5,da.getNbOfElems());
106 expected1=[2,3,5,7,9]
107 self.failUnlessEqual(expected1,list(da.getValues()));
108 da=f1.findIdsInRange(8.,12.);
109 self.failUnlessEqual(4,da.getNbOfElems());
111 self.failUnlessEqual(expected2,list(da.getValues()));
115 def testBuildSubPart1(self):
116 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
117 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
120 array=DataArrayDouble.New();
121 arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.]
122 array.setValues(arr1,mesh1.getNumberOfCells(),2);
128 self.failUnlessEqual(3,f2.getNumberOfTuples());
129 self.failUnlessEqual(2,f2.getNumberOfComponents());
130 expected1=[5.,105.,4.,104.,7.,107.]
132 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
134 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
135 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
136 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
137 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
139 self.failUnlessEqual(13,m2C.getNodalConnectivityArrayLen());
140 expected2=[0.2, -0.3, 0.7, -0.3, 0.2, 0.2, 0.7, 0.2, 0.2, 0.7, 0.7, 0.7]
142 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
144 expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
145 self.failUnlessEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
147 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
148 # Test with field on nodes.
149 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
152 array=DataArrayDouble.New();
153 arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
154 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
157 f2=f1.buildSubPart(part2);
158 self.failUnlessEqual(4,f2.getNumberOfTuples());
159 self.failUnlessEqual(2,f2.getNumberOfComponents());
160 expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
162 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
164 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
165 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
166 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
167 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
169 self.failUnlessEqual(8,m2C.getNodalConnectivityArrayLen());
170 for i in xrange(8):#8 is not an error
171 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
173 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
174 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
175 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
176 #idem previous because nodes of cell#4 are not fully present in part3
178 arrr=DataArrayInt.New();
179 arrr.setValues(part3,2,1);
180 f2=f1.buildSubPart(arrr);
181 self.failUnlessEqual(4,f2.getNumberOfTuples());
182 self.failUnlessEqual(2,f2.getNumberOfComponents());
184 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
186 self.failUnlessEqual(2,f2.getMesh().getNumberOfCells());
187 self.failUnlessEqual(4,f2.getMesh().getNumberOfNodes());
188 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
189 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
191 self.failUnlessEqual(8,m2C.getNodalConnectivityArrayLen());
192 for i in xrange(8):#8 is not an error
193 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
195 self.failUnlessEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
196 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
197 self.failUnlessEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
200 f2=f1.buildSubPart(part4);
201 self.failUnlessEqual(6,f2.getNumberOfTuples());
202 self.failUnlessEqual(2,f2.getNumberOfComponents());
203 expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
205 self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12);
207 self.failUnlessEqual(3,f2.getMesh().getNumberOfCells());
208 self.failUnlessEqual(6,f2.getMesh().getNumberOfNodes());
209 self.failUnlessEqual(2,f2.getMesh().getSpaceDimension());
210 self.failUnlessEqual(2,f2.getMesh().getMeshDimension());
212 self.failUnlessEqual(13,m2C.getNodalConnectivityArrayLen());
214 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
216 self.failUnlessEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
217 self.failUnlessEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
218 self.failUnlessEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
219 self.failUnlessEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
222 def testDoublyContractedProduct1(self):
223 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
224 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
226 array=DataArrayDouble.New();
227 arr1=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
228 array.setValues(arr1,mesh1.getNumberOfCells(),6);
230 f1.checkConsistencyLight();
232 f2=f1.doublyContractedProduct();
233 f2.checkConsistencyLight();
234 self.assertEqual(1,f2.getNumberOfComponents());
235 self.assertEqual(5,f2.getNumberOfTuples());
237 self.assertAlmostEqual(3906.56,f2.getIJ(i,0),9);
242 def testDeterminant1(self):
243 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
244 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
246 f1.setEndTime(3.8,7,3);
248 array=DataArrayDouble.New();
249 arr1=[1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5]
250 array.setValues(arr1,mesh1.getNumberOfCells(),4);
253 f1.checkConsistencyLight();
255 f2.checkConsistencyLight();
256 self.assertEqual(CONST_ON_TIME_INTERVAL,f2.getTimeDiscretization());
257 self.assertEqual(1,f2.getNumberOfComponents());
258 self.assertEqual(5,f2.getNumberOfValues());
260 self.assertAlmostEqual(-2.42,f2.getIJ(i,0),13);
262 #6 components multi arrays with end array not defined
263 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
265 f1.setEndTime(3.8,7,3);
267 array=DataArrayDouble.New();
268 arr2=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7,
269 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
270 array.setValues(arr2,mesh1.getNumberOfNodes(),6);
272 self.assertRaises(InterpKernelException,f1.checkConsistencyLight);#no end array specified !
275 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
276 self.assertEqual(1,f2.getArray().getNumberOfComponents());
277 self.assertEqual(9,f2.getNumberOfTuples());
279 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
281 #6 components multi arrays with end array defined
282 array=DataArrayDouble.New();
283 arr3=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5,
284 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
285 array.setValues(arr3,mesh1.getNumberOfNodes(),6);
286 f1.setEndArray(array);
287 f1.checkConsistencyLight();
289 f2.checkConsistencyLight();
290 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
291 self.assertEqual(1,f2.getNumberOfComponents());
292 self.assertEqual(9,f2.getNumberOfTuples());
293 time2,it,order=f2.getTime()
294 self.assertAlmostEqual(2.3,time2,12);
295 self.assertEqual(5,it);
296 self.assertEqual(6,order);
297 time2,it,order=f2.getEndTime()
298 self.assertAlmostEqual(3.8,time2,12);
299 self.assertEqual(7,it);
300 self.assertEqual(3,order);
302 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
303 self.assertAlmostEqual(1289.685,f2.getEndArray().getIJ(i,0),9);
306 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
307 f1.setTime(7.8,10,2);
309 array=DataArrayDouble.New();
310 arr4=[1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1]
311 array.setValues(arr4,mesh1.getNumberOfCells(),9);
314 f1.checkConsistencyLight();
316 f2.checkConsistencyLight();
317 self.assertEqual(ONE_TIME,f2.getTimeDiscretization());
318 self.assertEqual(1,f2.getNumberOfComponents());
319 self.assertEqual(5,f2.getNumberOfTuples());
320 time2,it,order=f2.getTime()
321 self.assertAlmostEqual(7.8,time2,12);
322 self.assertEqual(10,it);
323 self.assertEqual(2,order);
325 self.assertAlmostEqual(3.267,f2.getIJ(i,0),13);
329 def testEigenValues1(self):
330 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
331 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
333 array=DataArrayDouble.New();
334 arr1=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
335 array.setValues(arr1,mesh1.getNumberOfCells(),6);
337 f1.checkConsistencyLight();
340 f2.checkConsistencyLight();
341 self.assertEqual(3,f2.getNumberOfComponents());
342 self.assertEqual(5,f2.getNumberOfTuples());
343 expected1=[13.638813677891717,-4.502313844635971,-2.2364998332557486]
345 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
346 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
347 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
351 def testEigenVectors1(self):
352 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
353 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
355 array=DataArrayDouble.New();
356 arr1=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
357 array.setValues(arr1,mesh1.getNumberOfCells(),6);
359 f1.checkConsistencyLight();
361 f2=f1.eigenVectors();
362 f2.checkConsistencyLight();
363 self.assertEqual(9,f2.getNumberOfComponents());
364 self.assertEqual(5,f2.getNumberOfTuples());
365 expected1=[0.5424262364180696, 0.5351201064614425, 0.6476266283176001,#eigenvect 0
366 0.7381111277307373, 0.06458838384003074, -0.6715804522117897,#eigenvect 1
367 -0.4012053603397987, 0.8423032781211455, -0.3599436712889738#eigenvect 2
370 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
371 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
372 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
373 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
374 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
375 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
376 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
377 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
378 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
383 def testInverse1(self):
384 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
385 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
387 array=DataArrayDouble.New();
388 arr1=[1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1]
389 array.setValues(arr1,mesh1.getNumberOfCells(),9);
391 f1.checkConsistencyLight();
394 f2.checkConsistencyLight();
395 self.assertEqual(9,f2.getNumberOfComponents());
396 self.assertEqual(5,f2.getNumberOfTuples());
397 expected1=[-2.6538108356290113, 2.855831037649208, -1.1111111111111067, 3.461891643709813, -4.775022956841121, 2.2222222222222143, -1.1111111111111054, 2.222222222222214, -1.1111111111111072]
399 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
400 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
401 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
402 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
403 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
404 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
405 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
406 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
407 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
410 array=DataArrayDouble.New();
411 arr3=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
412 array.setValues(arr3,mesh1.getNumberOfCells(),6);
414 f1.checkConsistencyLight();
417 f2.checkConsistencyLight();
418 self.assertEqual(6,f2.getNumberOfComponents());
419 self.assertEqual(5,f2.getNumberOfTuples());
420 expected3=[-0.3617705098531818, -0.8678630828458127, -0.026843764174972983, 0.5539957431465833, 0.13133439560823013, -0.05301294502145887]
422 self.assertAlmostEqual(expected3[0],f2.getIJ(i,0),13);
423 self.assertAlmostEqual(expected3[1],f2.getIJ(i,1),13);
424 self.assertAlmostEqual(expected3[2],f2.getIJ(i,2),13);
425 self.assertAlmostEqual(expected3[3],f2.getIJ(i,3),13);
426 self.assertAlmostEqual(expected3[4],f2.getIJ(i,4),13);
427 self.assertAlmostEqual(expected3[5],f2.getIJ(i,5),13);
430 array=DataArrayDouble.New();
431 arr2=[1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5]
432 array.setValues(arr2,mesh1.getNumberOfCells(),4);
434 f1.checkConsistencyLight();
437 f2.checkConsistencyLight();
438 self.assertEqual(4,f2.getNumberOfComponents());
439 self.assertEqual(5,f2.getNumberOfTuples());
440 expected2=[-1.8595041322314059, 0.9504132231404963, 1.404958677685951, -0.49586776859504156]
442 self.assertAlmostEqual(expected2[0],f2.getIJ(i,0),13);
443 self.assertAlmostEqual(expected2[1],f2.getIJ(i,1),13);
444 self.assertAlmostEqual(expected2[2],f2.getIJ(i,2),13);
445 self.assertAlmostEqual(expected2[3],f2.getIJ(i,3),13);
450 def testTrace1(self):
451 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
452 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
454 array=DataArrayDouble.New();
455 arr1=[1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1, 1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.1]
456 array.setValues(arr1,mesh1.getNumberOfCells(),9);
458 f1.checkConsistencyLight();
461 f2.checkConsistencyLight();
462 self.assertEqual(1,f2.getNumberOfComponents());
463 self.assertEqual(5,f2.getNumberOfTuples());
465 self.assertAlmostEqual(15.9,f2.getIJ(i,0),13);
468 array=DataArrayDouble.New();
469 arr3=[7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5, 7.8,8.9,9.1,10.2,23.4,34.5]
470 array.setValues(arr3,mesh1.getNumberOfCells(),6);
472 f1.checkConsistencyLight();
475 f2.checkConsistencyLight();
476 self.assertEqual(1,f2.getNumberOfComponents());
477 self.assertEqual(5,f2.getNumberOfTuples());
479 self.assertAlmostEqual(25.8,f2.getIJ(i,0),13);
482 array=DataArrayDouble.New();
483 arr2=[1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5, 1.2,2.3,3.4,4.5]
484 array.setValues(arr2,mesh1.getNumberOfCells(),4);
486 f1.checkConsistencyLight();
489 f2.checkConsistencyLight();
490 self.assertEqual(1,f2.getNumberOfComponents());
491 self.assertEqual(5,f2.getNumberOfTuples());
493 self.assertAlmostEqual(5.7,f2.getIJ(i,0),13);
498 def testDeviator1(self):
499 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
500 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
502 array=DataArrayDouble.New();
503 arr1=[1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7, 1.2,2.3,3.4,4.5,5.6,6.7]
504 array.setValues(arr1,mesh1.getNumberOfCells(),6);
506 f1.checkConsistencyLight();
509 f2.checkConsistencyLight();
510 self.assertEqual(6,f2.getNumberOfComponents());
511 self.assertEqual(5,f2.getNumberOfTuples());
512 expected1=[-1.1,0.,1.1,4.5,5.6,6.7]
514 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
515 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
516 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
517 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
518 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
519 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
524 def testMagnitude1(self):
525 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
526 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
528 array=DataArrayDouble.New();
529 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6, 1.2,2.3,3.4,4.5,5.6]
530 array.setValues(arr1,mesh1.getNumberOfCells(),5);
532 f1.checkConsistencyLight();
535 f2.checkConsistencyLight();
536 self.assertEqual(1,f2.getNumberOfComponents());
537 self.assertEqual(5,f2.getNumberOfTuples());
539 self.assertAlmostEqual(8.3606219864313918,f2.getIJ(i,0),13);
544 def testMaxPerTuple1(self):
545 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
546 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
548 array=DataArrayDouble.New();
549 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,3.4,4.5,5.6,2.3, 3.4,4.5,5.6,1.2,2.3, 5.6,1.2,2.3,3.4,4.5, 4.5,5.6,1.2,2.3,3.4]
550 array.setValues(arr1,mesh1.getNumberOfCells(),5);
552 f1.checkConsistencyLight();
555 f2.checkConsistencyLight();
556 self.assertEqual(1,f2.getNumberOfComponents());
557 self.assertEqual(5,f2.getNumberOfTuples());
559 self.assertAlmostEqual(5.6,f2.getIJ(i,0),13);
562 d2,d2I=array.maxPerTupleWithCompoId()
563 self.assertEqual(1,d2.getNumberOfComponents());
564 self.assertEqual(5,d2.getNumberOfTuples());
566 self.assertAlmostEqual(5.6,d2.getIJ(i,0),13);
568 self.assertTrue(d2I.isEqual(DataArrayInt([4,3,2,0,1])))
571 def testChangeNbOfComponents(self):
572 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
573 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
575 array=DataArrayDouble.New();
576 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,3.4,4.5,5.6,2.3, 3.4,4.5,5.6,1.2,2.3, 5.6,1.2,2.3,3.4,4.5, 4.5,5.6,1.2,2.3,3.4]
577 array.setValues(arr1,mesh1.getNumberOfCells(),5);
579 f1.checkConsistencyLight();
581 f1.changeNbOfComponents(3,7.77);
582 f1.checkConsistencyLight();
583 self.assertEqual(3,f1.getNumberOfComponents());
584 self.assertEqual(5,f1.getNumberOfTuples());
585 expected1=[1.2,2.3,3.4, 1.2,3.4,4.5, 3.4,4.5,5.6, 5.6,1.2,2.3, 4.5,5.6,1.2]
587 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),13);
589 f1.changeNbOfComponents(4,7.77);
590 f1.checkConsistencyLight();
591 self.assertEqual(4,f1.getNumberOfComponents());
592 self.assertEqual(5,f1.getNumberOfTuples());
593 expected2=[1.2,2.3,3.4,7.77, 1.2,3.4,4.5,7.77, 3.4,4.5,5.6,7.77, 5.6,1.2,2.3,7.77, 4.5,5.6,1.2,7.77]
595 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),13);
600 def testSortPerTuple1(self):
601 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
602 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
604 array=DataArrayDouble.New();
605 arr1=[1.2,2.3,3.4,4.5,5.6, 1.2,3.4,4.5,5.6,2.3, 3.4,4.5,5.6,1.2,2.3, 5.6,1.2,2.3,3.4,4.5, 4.5,5.6,1.2,2.3,3.4]
606 array.setValues(arr1,mesh1.getNumberOfCells(),5);
608 f1.checkConsistencyLight();
610 f1.sortPerTuple(True);
611 f1.checkConsistencyLight();
612 self.assertEqual(5,f1.getNumberOfComponents());
613 self.assertEqual(5,f1.getNumberOfTuples());
615 self.assertAlmostEqual(arr1[0],f1.getIJ(i,0),13);
616 self.assertAlmostEqual(arr1[1],f1.getIJ(i,1),13);
617 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
618 self.assertAlmostEqual(arr1[3],f1.getIJ(i,3),13);
619 self.assertAlmostEqual(arr1[4],f1.getIJ(i,4),13);
622 f1.sortPerTuple(False);
623 f1.checkConsistencyLight();
624 self.assertEqual(5,f1.getNumberOfComponents());
625 self.assertEqual(5,f1.getNumberOfTuples());
627 self.assertAlmostEqual(arr1[4],f1.getIJ(i,0),13);
628 self.assertAlmostEqual(arr1[3],f1.getIJ(i,1),13);
629 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
630 self.assertAlmostEqual(arr1[1],f1.getIJ(i,3),13);
631 self.assertAlmostEqual(arr1[0],f1.getIJ(i,4),13);
636 def testIsEqualWithoutConsideringStr1(self):
637 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
638 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
640 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
641 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
643 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
644 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
645 da1,da2=mesh1.checkGeoEquivalWith(mesh2,2,1e-12);
646 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);
648 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
649 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
650 mesh2.getCoords().setInfoOnComponent(0,"tty");
651 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
652 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
653 mesh2.getCoords().setInfoOnComponent(0,"");
654 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
655 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
656 mesh2.getCoords().setInfoOnComponent(1,"tty");
657 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
658 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
659 mesh2.getCoords().setInfoOnComponent(1,"");
660 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
661 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
662 tmp=mesh2.getCoords().getIJ(0,3);
663 mesh2.getCoords().setIJ(0,3,9999.);
664 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
665 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
666 mesh2.getCoords().setIJ(0,3,tmp);
667 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
668 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
669 tmp2=mesh2.getNodalConnectivity().getIJ(0,4);
670 mesh2.getNodalConnectivity().setIJ(0,4,0);
671 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
672 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
673 mesh2.getNodalConnectivity().setIJ(0,4,tmp2);
674 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
675 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
677 f1=mesh1.getMeasureField(True);
678 f2=mesh2.getMeasureField(True);
679 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
680 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
682 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
683 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
685 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
686 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
688 f2.getArray().setInfoOnComponent(0,"eee");
689 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
690 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
691 f2.getArray().setInfoOnComponent(0,"");
692 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
693 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
695 f2.getArray().setIJ(1,0,0.123);
696 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
697 self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
698 f2.getArray().setIJ(1,0,0.125);
699 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
700 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
704 def testGetNodeIdsOfCell1(self):
705 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
706 li=mesh1.getNodeIdsOfCell(1)
708 self.assertEqual(expected1,list(li))
709 li=mesh1.getCoordinatesOfNode(4)
710 self.assertEqual(2,len(li))
711 self.assertAlmostEqual(0.2,li[0],13);
712 self.assertAlmostEqual(0.2,li[1],13);
713 li=mesh1.getCoords().getValuesAsTuple()
714 self.assertEqual(9,len(li))
715 li2=mesh1.getNodalConnectivityIndex().getValuesAsTuple()
716 self.assertEqual(6,len(li2))
719 def testGetEdgeRatioField1(self):
720 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
721 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
722 f1=m1.getEdgeRatioField();
723 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
724 self.assertEqual("us",f1.getTimeUnit())
725 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
726 self.assertEqual(5,f1.getNumberOfTuples());
727 self.assertEqual(1,f1.getNumberOfComponents());
728 expected1=[1.,1.4142135623730951, 1.4142135623730951,1.,1.]
730 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),14);
733 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
734 f1=m1.getEdgeRatioField();
735 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
736 self.assertEqual(5,f1.getNumberOfTuples());
737 self.assertEqual(1,f1.getNumberOfComponents());
738 expected2=[1.4142135623730951, 1.7320508075688772, 1.7320508075688772, 1.4142135623730951, 1.4142135623730951]
740 self.assertAlmostEqual(expected2[i],f1.getIJ(i,0),14);
744 def testFillFromAnalytic3(self):
745 m=MEDCouplingDataForTest.build2DTargetMesh_1()
746 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
747 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"y+x");
749 f1.setName("myField");
750 f1.fillFromAnalytic(1,"y+x");
751 f1.checkConsistencyLight();
752 self.assertEqual(f1.getName(),"myField");
753 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
754 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
755 self.assertEqual(1,f1.getNumberOfComponents());
756 self.assertEqual(5,f1.getNumberOfTuples());
757 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
758 tmp=f1.getArray().getValues();
759 self.assertEqual(len(values1),len(tmp))
760 for i in xrange(len(values1)):
761 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
764 f1=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL)
766 f1.fillFromAnalytic(1,"y+2*x");
767 f1.setEndTime(1.2,3,4);
768 f1.checkConsistencyLight();
769 self.assertEqual(f1.getTypeOfField(),ON_NODES);
770 self.assertEqual(f1.getTimeDiscretization(),CONST_ON_TIME_INTERVAL);
771 self.assertEqual(1,f1.getNumberOfComponents());
772 self.assertEqual(9,f1.getNumberOfTuples());
773 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
774 tmp=f1.getArray().getValues();
775 self.assertEqual(len(values2),len(tmp))
776 for i in xrange(len(values2)):
777 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
779 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
781 f1.fillFromAnalytic(1,"2.*x+y");
782 f1.setEndTime(1.2,3,4);
783 f1.checkConsistencyLight();
784 self.assertEqual(f1.getTypeOfField(),ON_NODES);
785 self.assertEqual(f1.getTimeDiscretization(),LINEAR_TIME);
786 self.assertEqual(1,f1.getNumberOfComponents());
787 self.assertEqual(9,f1.getNumberOfTuples());
788 tmp=f1.getArray().getValues();
789 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
790 self.assertEqual(len(values2Bis),len(tmp))
791 for i in xrange(len(values2Bis)):
792 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
794 tmp=f1.getEndArray().getValues();
795 self.assertEqual(len(values2Bis),len(tmp))
796 for i in xrange(len(values2Bis)):
797 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
800 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
802 f1.fillFromAnalytic(2,"(x+y)*IVec+2*(x+y)*JVec");
803 f1.checkConsistencyLight();
804 self.assertEqual(f1.getTypeOfField(),ON_NODES);
805 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
806 self.assertEqual(2,f1.getNumberOfComponents());
807 self.assertEqual(9,f1.getNumberOfTuples());
808 values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8]
809 tmp=f1.getArray().getValues();
810 self.assertEqual(len(values3),len(tmp))
811 for i in xrange(len(values3)):
812 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
814 values4=f1.accumulate();
815 self.assertTrue(abs(3.6-values4[0])<1.e-12);
816 self.assertTrue(abs(7.2-values4[1])<1.e-12);
817 values4=f1.integral(True);
818 self.assertTrue(abs(0.5-values4[0])<1.e-12);
819 self.assertTrue(abs(1.-values4[1])<1.e-12);
821 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
823 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"1./(x-0.2)");
826 def testFieldDoubleOpEqual1(self):
827 m=MEDCouplingDataForTest.build2DTargetMesh_1();
828 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
829 self.assertRaises(InterpKernelException,f1.assign,0.07);
832 f1.checkConsistencyLight();
833 self.assertEqual(1,f1.getNumberOfComponents());
834 self.assertEqual(5,f1.getNumberOfTuples());
836 self.assertAlmostEqual(0.07,f1.getIJ(i,0),16);
839 f1.checkConsistencyLight();
840 self.assertEqual(1,f1.getNumberOfComponents());
841 self.assertEqual(5,f1.getNumberOfTuples());
843 self.assertAlmostEqual(0.09,f1.getIJ(i,0),16);
846 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
847 f1.setEndTime(4.5,2,3);
850 f1.checkConsistencyLight();
851 self.assertEqual(1,f1.getNumberOfComponents());
852 self.assertEqual(9,f1.getNumberOfTuples());
854 self.assertAlmostEqual(0.08,f1.getIJ(i,0),16);
856 self.assertEqual(1,f1.getEndArray().getNumberOfComponents());
857 self.assertEqual(9,f1.getEndArray().getNumberOfTuples());
859 self.assertAlmostEqual(0.08,f1.getEndArray().getIJ(i,0),16);
863 def testAreaBary3D2(self):
864 coordsForHexa8=[-75.45749305371, 180.95495078401, 39.515472018008,
865 -9.755591679144, 23.394927935279, 5.108794294848,
866 14.337630157832, 61.705351002702, 160.42422501908,
867 -27.273893776752, 167.567731083961, 192.830034145464,
868 99.857193154796,264.499264735586,-8.287335493412,
869 144.939882761126,156.38626563134,-31.896173894226,
870 161.34096835726,182.4654895809,73.832387065572,
871 132.680430393685,255.37973247196,96.15235602819];
872 volHexa8=3258520.29637466;
873 baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
875 coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
876 8.461744647847,76.653979804423,165.00018874933,
877 -27.273893776752,167.567731083961,192.830034145464,
878 106.586501038965,262.629609408327,13.124533008813,
879 155.465082847275,197.414118382622,78.408350795821,
880 132.680430393685,255.37973247196,96.15235602819];
881 volPenta6=944849.868507338;
882 baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
884 coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
885 -27.273893776752,167.567731083961,192.830034145464,
886 8.461744647847,76.653979804423,165.00018874933,
887 155.465082847275,197.414118382622,78.408350795821,
888 -68.199829618726,178.938498373416,62.608505919588];
889 volPyra5=756943.92980254;
890 baryPyra5=[29.204294116618,172.540129749156,118.01035951483]
891 mesh=MEDCouplingUMesh.New("Bary3D2",3);
892 coo=DataArrayDouble.New();
893 tmp=coordsForHexa8+coordsForPenta6+coordsForPyra5
894 coo.setValues(tmp,19,3);
897 tmpConn=[0,1,2,3,4,5,6,7]
898 mesh.allocateCells(3);
899 self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
900 mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
901 mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
902 mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
903 mesh.finishInsertingCells();
904 mesh.checkConsistencyLight();
905 mesh.mergeNodes(1e-7)
906 self.assertEqual(12,mesh.getNumberOfNodes());
907 vols=mesh.getMeasureField(True);
908 self.assertEqual(3,vols.getNumberOfTuples());
909 self.assertEqual(1,vols.getNumberOfComponents());
910 self.assertAlmostEqual(volHexa8,vols.getIJ(0,0),6);
911 self.assertAlmostEqual(volPenta6,vols.getIJ(1,0),7);
912 self.assertAlmostEqual(volPyra5,vols.getIJ(2,0),7);
913 bary=mesh.computeCellCenterOfMass();
914 self.assertEqual(3,bary.getNumberOfTuples());
915 self.assertEqual(3,bary.getNumberOfComponents());
916 self.assertAlmostEqual(baryHexa8[0],bary.getIJ(0,0),11);
917 self.assertAlmostEqual(baryHexa8[1],bary.getIJ(0,1),11);
918 self.assertAlmostEqual(baryHexa8[2],bary.getIJ(0,2),11);
919 self.assertAlmostEqual(baryPenta6[0],bary.getIJ(1,0),11);
920 self.assertAlmostEqual(baryPenta6[1],bary.getIJ(1,1),11);
921 self.assertAlmostEqual(baryPenta6[2],bary.getIJ(1,2),11);
922 self.assertAlmostEqual(baryPyra5[0],bary.getIJ(2,0),11);
923 self.assertAlmostEqual(baryPyra5[1],bary.getIJ(2,1),11);
924 self.assertAlmostEqual(baryPyra5[2],bary.getIJ(2,2),11);
927 def testGetMeasureFieldCMesh1(self):
928 m=MEDCouplingCMesh.New();
929 da=DataArrayDouble.New();
930 discX=[2.3,3.4,5.8,10.2]
931 discY=[12.3,23.4,45.8]
932 discZ=[-0.7,1.2,1.25,2.13,2.67]
933 da.setValues(discX,4,1);
935 m.checkConsistencyLight();
936 self.assertEqual(4,m.getNumberOfNodes());
937 self.assertEqual(3,m.getNumberOfCells());
938 self.assertEqual(1,m.getSpaceDimension());
939 f=m.getMeasureField(True);
940 self.assertEqual(3,f.getNumberOfTuples());
941 self.assertEqual(1,f.getNumberOfComponents());
942 expected1=[1.1,2.4,4.4]
944 self.assertAlmostEqual(expected1[i],f.getIJ(i,0),12);
946 coords=m.getCoordinatesAndOwner();
947 self.assertEqual(4,coords.getNumberOfTuples());
948 self.assertEqual(1,coords.getNumberOfComponents());
950 self.assertAlmostEqual(discX[i],coords.getIJ(i,0),12);
952 coords=m.computeCellCenterOfMass();
953 self.assertEqual(3,coords.getNumberOfTuples());
954 self.assertEqual(1,coords.getNumberOfComponents());
955 expected1_3=[2.85,4.6,8.]
957 self.assertAlmostEqual(expected1_3[i],coords.getIJ(i,0),12);
960 da=DataArrayDouble.New();
961 da.setValues(discY,3,1);
963 m.checkConsistencyLight();
964 self.assertEqual(12,m.getNumberOfNodes());
965 self.assertEqual(6,m.getNumberOfCells());
966 self.assertEqual(2,m.getSpaceDimension());
967 f=m.getMeasureField(True);
968 self.assertEqual(6,f.getNumberOfTuples());
969 self.assertEqual(1,f.getNumberOfComponents());
970 expected2=[12.21,26.64,48.84,24.64,53.76,98.56]
972 self.assertAlmostEqual(expected2[i],f.getIJ(i,0),12);
974 coords=m.getCoordinatesAndOwner();
975 self.assertEqual(12,coords.getNumberOfTuples());
976 self.assertEqual(2,coords.getNumberOfComponents());
977 expected2_2=[2.3,12.3,3.4,12.3,5.8,12.3,10.2,12.3, 2.3,23.4,3.4,23.4,5.8,23.4,10.2,23.4, 2.3,45.8,3.4,45.8,5.8,45.8,10.2,45.8]
979 self.assertAlmostEqual(expected2_2[i],coords.getIJ(0,i),12);
981 coords=m.computeCellCenterOfMass();
982 self.assertEqual(6,coords.getNumberOfTuples());
983 self.assertEqual(2,coords.getNumberOfComponents());
984 expected2_3=[2.85,17.85,4.6,17.85,8.,17.85, 2.85,34.6,4.6,34.6,8.,34.6]
986 self.assertAlmostEqual(expected2_3[i],coords.getIJ(0,i),12);
989 da=DataArrayDouble.New();
990 da.setValues(discZ,5,1);
992 m.checkConsistencyLight();
993 self.assertEqual(60,m.getNumberOfNodes());
994 self.assertEqual(24,m.getNumberOfCells());
995 self.assertEqual(3,m.getSpaceDimension());
996 f=m.getMeasureField(True);
997 self.assertEqual(24,f.getNumberOfTuples());
998 self.assertEqual(1,f.getNumberOfComponents());
999 expected3=[23.199, 50.616, 92.796, 46.816, 102.144, 187.264, 0.6105, 1.332, 2.442, 1.232, 2.688, 4.928, 10.7448, 23.4432, 42.9792, 21.6832, 47.3088, 86.7328, 6.5934, 14.3856, 26.3736, 13.3056, 29.0304, 53.2224]
1000 for i in xrange(24):
1001 self.assertAlmostEqual(expected3[i],f.getIJ(i,0),12);
1003 coords=m.getCoordinatesAndOwner();
1004 self.assertEqual(60,coords.getNumberOfTuples());
1005 self.assertEqual(3,coords.getNumberOfComponents());
1007 2.3,12.3,-0.7, 3.4,12.3,-0.7, 5.8,12.3,-0.7, 10.2,12.3,-0.7, 2.3,23.4,-0.7, 3.4,23.4,-0.7, 5.8,23.4,-0.7, 10.2,23.4,-0.7, 2.3,45.8,-0.7, 3.4,45.8,-0.7, 5.8,45.8,-0.7, 10.2,45.8,-0.7,
1008 2.3,12.3,1.2, 3.4,12.3,1.2, 5.8,12.3,1.2, 10.2,12.3,1.2, 2.3,23.4,1.2, 3.4,23.4,1.2, 5.8,23.4,1.2, 10.2,23.4,1.2, 2.3,45.8,1.2, 3.4,45.8,1.2, 5.8,45.8,1.2, 10.2,45.8,1.2,
1009 2.3,12.3,1.25, 3.4,12.3,1.25, 5.8,12.3,1.25, 10.2,12.3,1.25, 2.3,23.4,1.25, 3.4,23.4,1.25, 5.8,23.4,1.25, 10.2,23.4,1.25, 2.3,45.8,1.25, 3.4,45.8,1.25, 5.8,45.8,1.25, 10.2,45.8,1.25,
1010 2.3,12.3,2.13, 3.4,12.3,2.13, 5.8,12.3,2.13, 10.2,12.3,2.13, 2.3,23.4,2.13, 3.4,23.4,2.13, 5.8,23.4,2.13, 10.2,23.4,2.13, 2.3,45.8,2.13, 3.4,45.8,2.13, 5.8,45.8,2.13, 10.2,45.8,2.13,
1011 2.3,12.3,2.67, 3.4,12.3,2.67, 5.8,12.3,2.67, 10.2,12.3,2.67, 2.3,23.4,2.67, 3.4,23.4,2.67, 5.8,23.4,2.67, 10.2,23.4,2.67, 2.3,45.8,2.67, 3.4,45.8,2.67, 5.8,45.8,2.67, 10.2,45.8,2.67];
1012 for i in xrange(180):
1013 self.assertAlmostEqual(expected3_2[i],coords.getIJ(0,i),12);
1015 coords=m.computeCellCenterOfMass();
1016 self.assertEqual(24,coords.getNumberOfTuples());
1017 self.assertEqual(3,coords.getNumberOfComponents());
1019 2.85,17.85,0.25,4.6,17.85,0.25,8.,17.85,0.25, 2.85,34.6,0.25,4.6,34.6,0.25,8.,34.6,0.25,
1020 2.85,17.85,1.225,4.6,17.85,1.225,8.,17.85,1.225, 2.85,34.6,1.225,4.6,34.6,1.225,8.,34.6,1.225,
1021 2.85,17.85,1.69,4.6,17.85,1.69,8.,17.85,1.69, 2.85,34.6,1.69,4.6,34.6,1.69,8.,34.6,1.69,
1022 2.85,17.85,2.4,4.6,17.85,2.4,8.,17.85,2.4, 2.85,34.6,2.4,4.6,34.6,2.4,8.,34.6,2.4];
1023 for i in xrange(72):
1024 self.assertAlmostEqual(expected3_3[i],coords.getIJ(0,i),12);
1028 def testFieldDoubleZipCoords1(self):
1029 m=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
1030 f=m.fillFromAnalytic(ON_NODES,2,"x*2.");
1031 f.getArray().setInfoOnComponent(0,"titi");
1032 f.getArray().setInfoOnComponent(1,"tutu");
1033 f.checkConsistencyLight();
1034 self.assertEqual(18,f.getNumberOfTuples());
1035 self.assertEqual(2,f.getNumberOfComponents());
1036 expected1=[-0.6, -0.6, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, 0.4, 0.4]
1037 for i in xrange(36):
1038 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
1040 self.assertTrue(f.zipCoords());
1041 f.checkConsistencyLight();
1042 expected2=[-0.6, -0.6, 1.4, 1.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, 1.4, 1.4, -0.6, -0.6, 0.4, 0.4, 1.4, 1.4, 0.4, 0.4]
1043 for i in xrange(30):
1044 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1046 self.assertTrue(not f.zipCoords());
1047 f.checkConsistencyLight();
1048 for i in xrange(30):
1049 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1051 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
1052 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
1055 def testFieldDoubleZipConnectivity1(self):
1056 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1057 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1059 m3_1=m2.buildPartOfMySelf(cells1,True);
1061 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
1062 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
1063 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
1065 self.assertEqual(10,m6.getNumberOfCells());
1066 self.assertEqual(22,m6.getNumberOfNodes());
1067 arr,areNodesMerged,newNbOfNodes=m6.mergeNodes(1e-13);
1068 self.assertEqual(9,m6.getNumberOfNodes());
1069 f=m6.fillFromAnalytic(ON_CELLS,2,"x");
1070 f2=m6.fillFromAnalytic(ON_NODES,2,"x");
1071 self.assertEqual(10,f.getNumberOfTuples());
1072 self.assertEqual(2,f.getNumberOfComponents());
1073 expected1=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
1074 -0.05, -0.05, 0.45, 0.45, 0.53333333333333321, 0.53333333333333321, -0.05, -0.05, 0.45, 0.45,
1075 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
1076 for i in xrange(20):
1077 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
1079 f.getArray().setInfoOnComponent(0,"titi");
1080 f.getArray().setInfoOnComponent(1,"tutu");
1081 f.checkConsistencyLight();
1082 self.assertTrue(f.zipConnectivity(0));
1083 expected2=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
1084 -0.05, -0.05, 0.45, 0.45, 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
1085 self.assertEqual(7,f.getNumberOfTuples());
1086 self.assertEqual(2,f.getNumberOfComponents());
1087 for i in xrange(14):
1088 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1090 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
1091 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
1092 self.assertTrue(not f.zipConnectivity(0));
1094 expected3=[-0.3, -0.3, 0.2, 0.2, 0.7, 0.7, -0.3, -0.3, 0.2, 0.2, 0.7, 0.7,
1095 -0.3, -0.3, 0.2, 0.2, 0.7, 0.7];
1096 self.assertEqual(9,f2.getNumberOfTuples());
1097 self.assertEqual(2,f2.getNumberOfComponents());
1098 for i in xrange(18):
1099 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
1101 self.assertTrue(f2.zipConnectivity(0));
1102 self.assertEqual(9,f2.getNumberOfTuples());
1103 self.assertEqual(2,f2.getNumberOfComponents());
1104 for i in xrange(18):
1105 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
1109 def testDaDoubleRenumber1(self):
1110 a=DataArrayDouble.New();
1111 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
1112 a.setValues(arr1,7,2);
1113 a.setInfoOnComponent(0,"toto");
1114 a.setInfoOnComponent(1,"tata");
1116 arr2=[3,1,0,6,5,4,2]
1118 self.assertEqual(7,b.getNumberOfTuples());
1119 self.assertEqual(2,b.getNumberOfComponents());
1120 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1121 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1122 expected1=[3.1, 13.1, 2.1, 12.1, 7.1, 17.1, 1.1, 11.1, 6.1, 16.1, 5.1, 15.1, 4.1, 14.1]
1123 for i in xrange(14):
1124 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1127 c=DataArrayInt.New();
1128 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1129 c.setValues(arr3,7,2);
1130 c.setInfoOnComponent(0,"toto");
1131 c.setInfoOnComponent(1,"tata");
1133 self.assertEqual(7,d.getNumberOfTuples());
1134 self.assertEqual(2,d.getNumberOfComponents());
1135 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1136 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1137 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
1138 for i in xrange(14):
1139 self.assertEqual(expected2[i],d.getIJ(0,i));
1143 def testDaDoubleRenumberAndReduce1(self):
1144 a=DataArrayDouble.New();
1145 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
1146 a.setValues(arr1,7,2);
1147 a.setInfoOnComponent(0,"toto");
1148 a.setInfoOnComponent(1,"tata");
1150 arr2=[2,-1,1,-1,0,4,3]
1151 b=a.renumberAndReduce(arr2,5);
1152 self.assertEqual(5,b.getNumberOfTuples());
1153 self.assertEqual(2,b.getNumberOfComponents());
1154 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1155 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1156 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
1157 for i in xrange(10):
1158 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1161 c=DataArrayInt.New();
1162 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1163 c.setValues(arr3,7,2);
1164 c.setInfoOnComponent(0,"toto");
1165 c.setInfoOnComponent(1,"tata");
1166 d=c.renumberAndReduce(arr2,5);
1167 self.assertEqual(5,d.getNumberOfTuples());
1168 self.assertEqual(2,d.getNumberOfComponents());
1169 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1170 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1171 expected2=[5,15,3,13,1,11,7,17,6,16]
1172 for i in xrange(10):
1173 self.assertEqual(expected2[i],d.getIJ(0,i));
1177 def testDaDoubleRenumberInPlace1(self):
1178 a=DataArrayDouble.New();
1179 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
1180 a.setValues(arr1,7,2);
1182 arr2=[3,1,0,6,5,4,2]
1183 a.renumberInPlace(arr2);
1184 self.assertEqual(7,a.getNumberOfTuples());
1185 self.assertEqual(2,a.getNumberOfComponents());
1186 expected1=[3.1, 13.1, 2.1, 12.1, 7.1, 17.1, 1.1, 11.1, 6.1, 16.1, 5.1, 15.1, 4.1, 14.1]
1187 for i in xrange(14):
1188 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
1191 c=DataArrayInt.New();
1192 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1193 c.setValues(arr3,7,2);
1194 c.renumberInPlace(arr2);
1195 self.assertEqual(7,c.getNumberOfTuples());
1196 self.assertEqual(2,c.getNumberOfComponents());
1197 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
1198 for i in xrange(14):
1199 self.assertEqual(expected2[i],c.getIJ(0,i));
1203 def testDaDoubleRenumberR1(self):
1204 a=DataArrayDouble.New();
1205 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
1206 a.setValues(arr1,7,2);
1207 a.setInfoOnComponent(0,"toto");
1208 a.setInfoOnComponent(1,"tata");
1210 arr2=[3,1,0,6,5,4,2]
1211 b=a.renumberR(arr2);
1212 self.assertEqual(7,b.getNumberOfTuples());
1213 self.assertEqual(2,b.getNumberOfComponents());
1214 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1215 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1216 expected1=[4.1, 14.1, 2.1, 12.1, 1.1, 11.1, 7.1, 17.1, 6.1, 16.1, 5.1, 15.1, 3.1, 13.1]
1217 for i in xrange(14):
1218 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1221 c=DataArrayInt.New();
1222 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1223 c.setValues(arr3,7,2);
1224 c.setInfoOnComponent(0,"toto");
1225 c.setInfoOnComponent(1,"tata");
1226 d=c.renumberR(arr2);
1227 self.assertEqual(7,d.getNumberOfTuples());
1228 self.assertEqual(2,d.getNumberOfComponents());
1229 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1230 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1231 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
1232 for i in xrange(14):
1233 self.assertEqual(expected2[i],d.getIJ(0,i));
1237 def testDaDoubleRenumberInPlaceR1(self):
1238 a=DataArrayDouble.New();
1239 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
1240 a.setValues(arr1,7,2);
1242 arr2=[3,1,0,6,5,4,2]
1243 a.renumberInPlaceR(arr2);
1244 self.assertEqual(7,a.getNumberOfTuples());
1245 self.assertEqual(2,a.getNumberOfComponents());
1246 expected1=[4.1, 14.1, 2.1, 12.1, 1.1, 11.1, 7.1, 17.1, 6.1, 16.1, 5.1, 15.1, 3.1, 13.1]
1247 for i in xrange(14):
1248 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
1251 c=DataArrayInt.New();
1252 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1253 c.setValues(arr3,7,2);
1254 c.renumberInPlaceR(arr2);
1255 self.assertEqual(7,c.getNumberOfTuples());
1256 self.assertEqual(2,c.getNumberOfComponents());
1257 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
1258 for i in xrange(14):
1259 self.assertEqual(expected2[i],c.getIJ(0,i));
1263 def testDaDoubleSelectByTupleId1(self):
1264 a=DataArrayDouble.New();
1265 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
1266 a.setValues(arr1,7,2);
1267 a.setInfoOnComponent(0,"toto");
1268 a.setInfoOnComponent(1,"tata");
1271 b=a.selectByTupleId(arr2);
1272 self.assertEqual(5,b.getNumberOfTuples());
1273 self.assertEqual(2,b.getNumberOfComponents());
1274 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1275 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1276 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
1277 for i in xrange(10):
1278 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1281 c=DataArrayInt.New();
1282 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1283 c.setValues(arr3,7,2);
1284 c.setInfoOnComponent(0,"toto");
1285 c.setInfoOnComponent(1,"tata");
1286 d=c.selectByTupleId(arr2);
1287 self.assertEqual(5,d.getNumberOfTuples());
1288 self.assertEqual(2,d.getNumberOfComponents());
1289 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1290 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1291 expected2=[5,15,3,13,1,11,7,17,6,16]
1292 for i in xrange(10):
1293 self.assertEqual(expected2[i],d.getIJ(0,i));
1297 def testDaDoubleGetMinMaxValues1(self):
1298 a=DataArrayDouble.New();
1299 arr1=[2.34,4.56,-6.77,4.55,4.56,2.24,2.34,1.02,4.56]
1300 a.setValues(arr1,9,1);
1301 m,where=a.getMaxValue();
1302 self.assertEqual(1,where);
1303 self.assertAlmostEqual(4.56,m,12);
1304 m,ws=a.getMaxValue2();
1305 self.assertAlmostEqual(4.56,m,12);
1306 self.assertEqual(3,ws.getNumberOfTuples());
1307 self.assertEqual(1,ws.getNumberOfComponents());
1310 self.assertEqual(expected1[i],ws.getIJ(i,0));
1312 a=DataArrayDouble.New();
1313 arr2=[-2.34,-4.56,6.77,-4.55,-4.56,-2.24,-2.34,-1.02,-4.56]
1314 a.setValues(arr2,9,1);
1315 m,where=a.getMinValue();
1316 self.assertEqual(1,where);
1317 self.assertAlmostEqual(-4.56,m,12);
1318 m,ws=a.getMinValue2();
1319 self.assertAlmostEqual(-4.56,m,12);
1320 self.assertEqual(3,ws.getNumberOfTuples());
1321 self.assertEqual(1,ws.getNumberOfComponents());
1323 self.assertEqual(expected1[i],ws.getIJ(i,0));
1327 def testFieldDoubleGetMinMaxValues2(self):
1328 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
1329 self.assertEqual(18,m2.getNumberOfCells());
1330 arr1=[8.71,4.53,-12.41,8.71,-8.71,8.7099,4.55,8.71,5.55,6.77,-1e-200,4.55,8.7099,0.,1.23,0.,2.22,8.71]
1331 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
1332 a=DataArrayDouble.New();
1333 a.setValues(arr1,18,1);
1337 f.checkConsistencyLight();
1339 self.assertAlmostEqual(8.71,m,12);
1340 m,ws=f.getMaxValue2();
1341 self.assertAlmostEqual(8.71,m,12);
1342 self.assertEqual(4,ws.getNumberOfTuples());
1343 self.assertEqual(1,ws.getNumberOfComponents());
1344 expected1=[0,3,7,17]
1346 self.assertEqual(expected1[i],ws.getIJ(i,0));
1349 arr2=[-8.71,-4.53,12.41,-8.71,8.71,-8.7099,-4.55,-8.71,-5.55,-6.77,1e-200,-4.55,-8.7099,0.,-1.23,0.,-2.22,-8.71]
1350 a.setValues(arr2,18,1);
1351 f.checkConsistencyLight();
1353 self.assertAlmostEqual(-8.71,m,12);
1354 m,ws=f.getMinValue2();
1355 self.assertAlmostEqual(-8.71,m,12);
1356 self.assertEqual(4,ws.getNumberOfTuples());
1357 self.assertEqual(1,ws.getNumberOfComponents());
1359 self.assertEqual(expected1[i],ws.getIJ(i,0));
1363 def testBuildUnstructuredCMesh1(self):
1364 m=MEDCouplingCMesh.New();
1365 da=DataArrayDouble.New();
1366 discX=[2.3,3.4,5.8,10.2]
1367 discY=[12.3,23.4,45.8]
1368 discZ=[-0.7,1.2,1.25,2.13,2.67]
1369 da.setValues(discX,4,1);
1370 m.setCoordsAt(0,da);
1371 m.checkConsistencyLight();
1372 self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
1373 self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
1374 self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
1375 self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
1376 self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
1378 m2=m.buildUnstructured();
1379 m2.checkConsistencyLight();
1380 f1=m.getMeasureField(False);
1381 f2=m2.getMeasureField(False);
1382 self.assertTrue(isinstance(f1.getMesh(),MEDCouplingCMesh))
1383 self.assertEqual(f1.getNumberOfTuples(),3);
1384 self.assertEqual(f2.getNumberOfTuples(),3);
1385 self.assertEqual(1,m2.getMeshDimension());
1386 self.assertEqual(1,m2.getSpaceDimension());
1388 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
1390 da=DataArrayDouble.New();
1391 da.setValues(discY,3,1);
1392 m.setCoordsAt(1,da);
1394 m2=m.buildUnstructured();
1395 m2.checkConsistencyLight();
1396 f1=m.getMeasureField(False);
1397 f2=m2.getMeasureField(False);
1398 self.assertEqual(f1.getNumberOfTuples(),6);
1399 self.assertEqual(f2.getNumberOfTuples(),6);
1400 self.assertEqual(2,m2.getMeshDimension());
1401 self.assertEqual(2,m2.getSpaceDimension());
1403 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
1406 da=DataArrayDouble.New();
1407 da.setValues(discZ,5,1);
1408 m.setCoordsAt(2,da);
1409 m2=m.buildUnstructured();
1410 m2.checkConsistencyLight();
1411 f1=m.getMeasureField(False);
1412 f2=m2.getMeasureField(False);
1413 self.assertEqual(f1.getNumberOfTuples(),24);
1414 self.assertEqual(f2.getNumberOfTuples(),24);
1415 self.assertEqual(3,m2.getMeshDimension());
1416 self.assertEqual(3,m2.getSpaceDimension());
1417 for i in xrange(24):
1418 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
1422 self.assertEqual(16,m.getCellContainingPoint(pos1,1e-12));
1424 elems=m2.getCellsInBoundingBox([3.5,6.,12.2,25.,0.,1.5],1e-7)
1425 self.assertEqual([1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17],elems.getValues())
1429 m3=m.buildUnstructured();
1431 self.assertTrue(m3.isEqual(m2,1e-12));
1434 def testDataArrayIntInvertO2NNO21(self):
1436 da=DataArrayInt.New();
1437 da.setValues(arr1,6,1);
1438 da2=da.invertArrayO2N2N2O(6);
1439 self.assertEqual(6,da2.getNumberOfTuples());
1440 self.assertEqual(1,da2.getNumberOfComponents());
1441 expected1=[1,3,0,5,2,4]
1443 self.assertEqual(expected1[i],da2.getIJ(i,0));
1445 da3=da2.invertArrayN2O2O2N(6);
1447 self.assertEqual(arr1[i],da3.getIJ(i,0));
1450 arr2=[3,-1,5,4,-1,0,-1,1,2,-1]
1451 da=DataArrayInt.New();
1452 da.setValues(arr2,10,1);
1453 da2=da.invertArrayO2N2N2O(6);
1454 self.assertEqual(6,da2.getNumberOfTuples());
1455 self.assertEqual(1,da2.getNumberOfComponents());
1456 expected2=[5,7,8,0,3,2]
1458 self.assertEqual(expected2[i],da2.getIJ(i,0));
1460 da3=da2.invertArrayN2O2O2N(10);
1461 for i in xrange(10):
1462 self.assertEqual(arr2[i],da3.getIJ(i,0));
1466 def testKeepSetSelectedComponent1(self):
1467 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
1468 a1=DataArrayDouble.New();
1469 a1.setValues(arr1,5,4);
1470 expp=[21.,22.,23.,24.]
1471 self.assertEqual(4,len(a1.getTuple(2)));
1473 self.assertAlmostEqual(expp[i],a1.getTuple(2)[i],12)
1475 a1.setInfoOnComponent(0,"aaaa");
1476 a1.setInfoOnComponent(1,"bbbb");
1477 a1.setInfoOnComponent(2,"cccc");
1478 a1.setInfoOnComponent(3,"dddd");
1480 a2=a1.keepSelectedComponents(arr2V);
1481 self.assertEqual(6,a2.getNumberOfComponents());
1482 self.assertEqual(5,a2.getNumberOfTuples());
1483 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
1484 self.assertTrue(a2.getInfoOnComponent(1)=="cccc");
1485 self.assertTrue(a2.getInfoOnComponent(2)=="bbbb");
1486 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
1487 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
1488 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
1489 expected1=[2.,3.,2.,3.,1.,1., 12.,13.,12.,13.,11.,11., 22.,23.,22.,23.,21.,21., 32.,33.,32.,33.,31.,31., 42.,43.,42.,43.,41.,41.]
1490 for i in xrange(30):
1491 self.assertAlmostEqual(expected1[i],a2.getIJ(0,i),14);
1493 a3=a1.convertToIntArr();
1494 self.assertEqual([21,22,23,24],a3.getTuple(2))
1495 a4=a3.keepSelectedComponents(arr2V);
1496 self.assertEqual(6,a4.getNumberOfComponents());
1497 self.assertEqual(5,a4.getNumberOfTuples());
1498 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
1499 self.assertTrue(a4.getInfoOnComponent(1)=="cccc");
1500 self.assertTrue(a4.getInfoOnComponent(2)=="bbbb");
1501 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
1502 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
1503 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
1504 for i in xrange(30):
1505 self.assertEqual(int(expected1[i]),a4.getIJ(0,i));
1507 # setSelectedComponents
1509 a5=a1.keepSelectedComponents(arr3V);
1510 a5.setInfoOnComponent(0,"eeee");
1511 a5.setInfoOnComponent(1,"ffff");
1513 a2.setSelectedComponents(a5,arr4V);
1514 self.assertEqual(6,a2.getNumberOfComponents());
1515 self.assertEqual(5,a2.getNumberOfTuples());
1516 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
1517 self.assertTrue(a2.getInfoOnComponent(1)=="eeee");
1518 self.assertTrue(a2.getInfoOnComponent(2)=="ffff");
1519 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
1520 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
1521 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
1522 expected2=[2.,4.,3.,3.,1.,1., 12.,14.,13.,13.,11.,11., 22.,24.,23.,23.,21.,21., 32.,34.,33.,33.,31.,31., 42.,44.,43.,43.,41.,41.]
1523 for i in xrange(30):
1524 self.assertAlmostEqual(expected2[i],a2.getIJ(0,i),14);
1526 a6=a5.convertToIntArr();
1527 a6.setInfoOnComponent(0,"eeee");
1528 a6.setInfoOnComponent(1,"ffff");
1529 a4.setSelectedComponents(a6,arr4V);
1530 self.assertEqual(6,a4.getNumberOfComponents());
1531 self.assertEqual(5,a4.getNumberOfTuples());
1532 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
1533 self.assertTrue(a4.getInfoOnComponent(1)=="eeee");
1534 self.assertTrue(a4.getInfoOnComponent(2)=="ffff");
1535 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
1536 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
1537 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
1538 for i in xrange(30):
1539 self.assertEqual(int(expected2[i]),a4.getIJ(0,i));
1545 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr5V);
1546 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr6V);
1547 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
1549 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
1553 def testKeepSetSelectedComponent2(self):
1554 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1555 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
1556 a1=DataArrayDouble.New();
1557 a1.setValues(arr1,5,4);
1558 a1.setInfoOnComponent(0,"aaaa");
1559 a1.setInfoOnComponent(1,"bbbb");
1560 a1.setInfoOnComponent(2,"cccc");
1561 a1.setInfoOnComponent(3,"dddd");
1562 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
1563 f1.setTime(2.3,4,5);
1567 f1.checkConsistencyLight();
1570 f2=f1.keepSelectedComponents(arr2V);
1571 self.assertTrue(f2.getTimeDiscretization()==ONE_TIME);
1572 t,dt,it=f2.getTime()
1573 self.assertAlmostEqual(2.3,t,13);
1574 self.assertEqual(4,dt);
1575 self.assertEqual(5,it);
1576 f2.checkConsistencyLight();
1577 self.assertEqual(6,f2.getNumberOfComponents());
1578 self.assertEqual(5,f2.getNumberOfTuples());
1579 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
1580 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="cccc");
1581 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="bbbb");
1582 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
1583 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
1584 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
1585 expected1=[2.,3.,2.,3.,1.,1., 12.,13.,12.,13.,11.,11., 22.,23.,22.,23.,21.,21., 32.,33.,32.,33.,31.,31., 42.,43.,42.,43.,41.,41.]
1586 for i in xrange(30):
1587 self.assertAlmostEqual(expected1[i],f2.getIJ(0,i),14);
1589 #setSelectedComponents
1591 f5=f1.keepSelectedComponents(arr3V);
1592 f5.setTime(6.7,8,9);
1593 f5.getArray().setInfoOnComponent(0,"eeee");
1594 f5.getArray().setInfoOnComponent(1,"ffff");
1595 f5.checkConsistencyLight();
1597 f2.setSelectedComponents(f5,arr4V);
1598 self.assertEqual(6,f2.getNumberOfComponents());
1599 self.assertEqual(5,f2.getNumberOfTuples());
1600 f2.checkConsistencyLight();
1601 t,dt,it=f2.getTime()
1602 self.assertAlmostEqual(2.3,t,13);
1603 self.assertEqual(4,dt);
1604 self.assertEqual(5,it);
1605 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
1606 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="eeee");
1607 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="ffff");
1608 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
1609 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
1610 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
1611 expected2=[2.,4.,3.,3.,1.,1., 12.,14.,13.,13.,11.,11., 22.,24.,23.,23.,21.,21., 32.,34.,33.,33.,31.,31., 42.,44.,43.,43.,41.,41.]
1612 for i in xrange(30):
1613 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),14);
1618 def testElementaryDAThrowAndSpecialCases(self):
1619 da=DataArrayInt.New();
1620 self.assertRaises(InterpKernelException, da.checkAllocated);
1621 self.assertRaises(InterpKernelException, da.fillWithValue, 1);
1622 self.assertRaises(InterpKernelException, da.iota, 1);
1624 da.fillWithValue(11); #11,11,11,11...
1625 da.iota(10); #10,11,12,13...
1627 db=DataArrayInt.New();
1630 dbl2=DataArrayDouble.New();
1632 self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
1633 self.assertRaises(InterpKernelException, dbl2.sort);
1634 self.assertRaises(InterpKernelException, dbl2.iota, 10.);
1636 dbl=DataArrayDouble.New();
1637 #DataArrayDouble not allocated yet
1638 self.assertRaises(InterpKernelException, dbl.iota, 10.);
1639 self.assertRaises(InterpKernelException, dbl.isUniform, 10., 1e-15);
1640 self.assertRaises(InterpKernelException, dbl.sort);
1641 self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
1642 self.assertRaises(InterpKernelException, dbl.toNoInterlace);
1646 self.assertTrue(not dbl.isUniform(10.,1e-15));
1648 self.assertTrue(dbl.isMonotonic(True, .99));
1649 self.assertTrue(dbl.isMonotonic(True, -.99));
1650 self.assertTrue(not dbl.isMonotonic(True, 1.1));
1651 self.assertTrue(not dbl.isMonotonic(True, -1.1));
1653 self.assertTrue(dbl.isMonotonic(False, .99));
1654 self.assertTrue(not dbl.isMonotonic(False, 1.1));
1655 self.assertTrue(not dbl.isMonotonic(False, -1.1));
1657 dc=DataArrayInt.New();
1660 dd=DataArrayDouble.New();
1661 self.assertRaises(InterpKernelException, dd.checkAllocated);
1662 self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
1663 self.assertRaises(InterpKernelException, dd.iota, 1.);
1664 self.assertTrue(not ((dd.repr().find("No data"))==-1));
1666 dd.alloc(0,1); #Allocated but nbOfElements==0!
1667 self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
1668 self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
1669 dd.fillWithValue(11); #?!...ok
1670 dd.iota(10); #?!...ok
1671 self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
1672 self.assertTrue(dd.isMonotonic(False, 1.));
1674 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
1675 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
1677 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
1680 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
1682 info=["infoOfOneComponent"]*2;
1683 self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
1684 self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
1685 db.setInfoOnComponents(info);
1687 self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
1688 self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
1689 self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
1690 self.assertRaises(InterpKernelException, db.getVarOnComponent, -1);
1691 self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
1692 self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
1693 self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
1695 self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
1696 self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
1697 self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
1698 self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
1700 self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
1701 self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
1702 self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
1703 self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
1705 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
1706 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
1707 self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
1709 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
1710 da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
1712 self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
1713 db.checkNbOfElems(7*2,"theMessageInThrow");
1715 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
1716 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
1717 self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
1718 self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
1719 self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
1721 self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
1722 self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
1723 self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
1725 self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
1726 self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
1727 self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
1729 self.assertRaises(InterpKernelException, dbl.selectByTupleIdSafeSlice, 0, 1, -1);
1730 self.assertRaises(InterpKernelException, dbl.subArray, -1, 1);
1731 self.assertRaises(InterpKernelException, dbl.subArray, 8, 1);
1732 self.assertRaises(InterpKernelException, dbl.subArray, 0, 8);
1733 self.assertRaises(InterpKernelException, dbl.meldWith, dd);
1735 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
1736 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
1738 dbl3=DataArrayDouble.New();
1740 dbl3.fillWithValue(11.);
1741 #bad number of components
1742 self.assertRaises(InterpKernelException, dbl3.getMaxValue);
1743 self.assertRaises(InterpKernelException, dd.getMaxValue);
1744 self.assertRaises(InterpKernelException, dbl3.getMinValue);
1745 self.assertRaises(InterpKernelException, dd.getMinValue);
1746 self.assertRaises(InterpKernelException, dbl3.getAverageValue);
1747 self.assertRaises(InterpKernelException, dd.getAverageValue);
1748 self.assertRaises(InterpKernelException, dd.accumulate, 100);
1749 self.assertRaises(InterpKernelException, dbl.fromPolarToCart);
1750 self.assertRaises(InterpKernelException, dbl3.fromCylToCart);
1751 self.assertRaises(InterpKernelException, dbl3.fromSpherToCart);
1752 self.assertRaises(InterpKernelException, dbl3.doublyContractedProduct);
1753 self.assertRaises(InterpKernelException, dbl3.determinant);
1754 self.assertRaises(InterpKernelException, dbl3.eigenValues);
1755 self.assertRaises(InterpKernelException, dbl3.eigenVectors);
1756 self.assertRaises(InterpKernelException, dbl3.inverse);
1757 self.assertRaises(InterpKernelException, dbl3.trace);
1758 self.assertRaises(InterpKernelException, dbl3.deviator);
1760 dbl3.setIJ(5,1,12.);
1761 self.assertTrue(dbl3.getMaxValueInArray()==12.);
1762 self.assertTrue(dbl3.getMinValueInArray()==11.);
1764 db.fillWithValue(100); #bad Ids
1765 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
1766 db.fillWithValue(-1); #bad Ids
1767 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
1768 db.fillWithValue(6); #bad Ids for dbl3
1769 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
1771 dbl3.checkNoNullValues();
1773 self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
1774 self.assertRaises(InterpKernelException, dbl3.applyInv, 1.); #div by zero
1775 self.assertRaises(InterpKernelException, dbl2.findIdsInRange, 1., 2.);
1777 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
1778 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
1780 a=[dbl2,dbl]; #Nb of components mismatch
1781 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
1783 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
1785 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
1786 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
1787 dbl4=DataArrayDouble.New();
1789 dbl5=DataArrayDouble.New();
1791 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
1793 a[0]=dbl4; #Nb of tuple mismatch
1794 a[1]=dbl5; #Nb of tuple mismatch
1795 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
1796 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl4, dbl5);
1799 def testDAIGetIdsEqual1(self):
1800 tab1=[5,-2,-4,-2,3,2,-2];
1801 da=DataArrayInt.New();
1802 da.setValues(tab1,7,1);
1803 da2=da.findIdsEqual(-2);
1804 self.assertEqual(3,da2.getNumberOfTuples());
1805 self.assertEqual(1,da2.getNumberOfComponents());
1807 self.assertEqual(expected1,da2.getValues());
1810 def testDAIGetIdsEqualList1(self):
1811 tab1=[5,-2,-4,-2,3,2,-2];
1812 da=DataArrayInt.New();
1813 da.setValues(tab1,7,1);
1814 da2=da.findIdsEqualList([3,-2,0]);
1815 self.assertEqual(4,da2.getNumberOfTuples());
1816 self.assertEqual(1,da2.getNumberOfComponents());
1817 expected1=[1,3,4,6];
1818 self.assertEqual(expected1,da2.getValues());
1821 def testDAFromNoInterlace1(self):
1822 tab1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
1823 da=DataArrayInt.New();
1824 da.setValues(tab1,5,3);
1825 da2=da.fromNoInterlace();
1826 expected1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
1827 self.assertEqual(5,da2.getNumberOfTuples());
1828 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1829 self.assertEqual(expected1,da2.getValues());
1830 da3=da.convertToDblArr();
1831 da4=da3.fromNoInterlace();
1832 self.assertEqual(5,da4.getNumberOfTuples());
1833 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1834 for i in xrange(15):
1835 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
1839 def testDAToNoInterlace1(self):
1840 tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
1841 da=DataArrayInt.New();
1842 da.setValues(tab1,5,3);
1843 da2=da.toNoInterlace();
1844 expected1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
1845 self.assertEqual(5,da2.getNumberOfTuples());
1846 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1847 self.assertEqual(expected1,da2.getValues());
1848 da3=da.convertToDblArr();
1849 da4=da3.toNoInterlace();
1850 self.assertEqual(5,da4.getNumberOfTuples());
1851 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1852 for i in xrange(15):
1853 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
1857 def testDAIsUniform1(self):
1859 da=DataArrayInt.New();
1860 da.setValues(tab1,5,1);
1861 self.assertTrue(da.isUniform(1));
1863 self.assertTrue(not da.isUniform(1));
1865 self.assertTrue(da.isUniform(1));
1866 da2=da.convertToDblArr();
1867 self.assertTrue(da2.isUniform(1.,1.e-12));
1868 da2.setIJ(1,0,1.+1.e-13);
1869 self.assertTrue(da2.isUniform(1.,1.e-12));
1870 da2.setIJ(1,0,1.+1.e-11);
1871 self.assertTrue(not da2.isUniform(1.,1.e-12));
1874 def testDADFromPolarToCart1(self):
1875 tab1=[2.,0.2,2.5,0.7]
1876 da=DataArrayDouble.New();
1877 da.setValues(tab1,2,2);
1878 da2=da.fromPolarToCart();
1879 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
1881 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1885 def testDADFromCylToCart1(self):
1886 tab1=[2.,0.2,4.,2.5,0.7,9.]
1887 da=DataArrayDouble.New();
1888 da.setValues(tab1,2,3);
1889 da2=da.fromCylToCart();
1890 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
1892 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1896 def testDADFromSpherToCart1(self):
1897 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
1898 da=DataArrayDouble.New();
1899 da.setValues(tab1,2,3);
1900 da2=da.fromSpherToCart();
1901 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
1903 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1907 def testUnPolyze1(self):
1908 elts=[0,1,2,3,4,5,6,7]
1910 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1911 mesh.convertToPolyTypes(eltsV);
1913 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
1914 mesh.checkConsistencyLight();
1915 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1916 mesh.convertToPolyTypes(eltsV);
1917 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1918 mesh.getNodalConnectivity().setIJ(0,6,10);
1919 mesh.getNodalConnectivity().setIJ(0,7,9);
1920 mesh.getNodalConnectivity().setIJ(0,8,12);
1921 mesh.getNodalConnectivity().setIJ(0,9,13);
1923 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1924 mesh.convertToPolyTypes(eltsV);
1925 mesh.getNodalConnectivity().setIJ(0,6,12);
1926 mesh.getNodalConnectivity().setIJ(0,7,13);
1927 mesh.getNodalConnectivity().setIJ(0,8,10);
1928 mesh.getNodalConnectivity().setIJ(0,9,9);
1930 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1931 mesh.convertToPolyTypes(eltsV);
1932 mesh.getNodalConnectivity().setIJ(0,6,12);
1933 mesh.getNodalConnectivity().setIJ(0,7,10);
1934 mesh.getNodalConnectivity().setIJ(0,8,13);
1935 mesh.getNodalConnectivity().setIJ(0,9,9);
1937 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1939 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1940 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
1942 mesh.convertToPolyTypes(eltsV);
1943 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1945 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1948 def testConvertDegeneratedCells1(self):
1949 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1950 conn=[0,1,3,3,9,10,12,12, 0,1,3,4,9,9,9,9, 1,1,1,1,10,12,9,10, 10,11,12,9,1,1,1,1]
1951 mesh.allocateCells(4);
1952 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
1953 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
1954 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
1955 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
1956 mesh.finishInsertingCells();
1957 mesh.checkConsistencyLight();
1958 self.assertEqual(4,mesh.getNumberOfCells());
1959 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
1960 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
1961 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
1962 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
1963 f1=mesh.getMeasureField(True);
1964 mesh.convertDegeneratedCells();
1965 mesh.checkConsistencyLight();
1966 f2=mesh.getMeasureField(True);
1967 self.assertEqual(4,mesh.getNumberOfCells());
1968 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
1969 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
1970 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
1971 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
1973 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
1977 def testGetNodeIdsNearPoints1(self):
1978 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1979 coords=mesh.getCoords();
1980 tmp=DataArrayDouble.New();
1981 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
1982 tmp.setValues(vals,3,2);
1983 tmp2=DataArrayDouble.Aggregate(coords,tmp);
1984 mesh.setCoords(tmp2);
1985 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
1986 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
1987 self.assertEqual([4,9,11],c.getValues());
1988 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
1989 self.assertEqual([0,3,3,4],cI.getValues());
1990 self.assertEqual([4,9,11,6],c.getValues());
1991 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
1992 self.assertEqual([0,3,3,4],cI.getValues());
1993 self.assertEqual([4,9,11,6],c.getValues());
1994 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
1995 self.assertEqual([0,3,3,4],cI.getValues());
1996 self.assertEqual([4,9,11,6],c.getValues());
1997 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
2000 def testFieldCopyTinyAttrFrom1(self):
2001 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2003 f1.setTimeTolerance(1.e-5);
2004 f1.setDescription("f1Desc");
2005 f1.setTime(1.23,4,5);
2006 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2008 f2.setDescription("f2Desc");
2009 f2.setTime(6.78,9,10);
2010 f2.setTimeTolerance(4.556e-12);
2012 f1.copyTinyAttrFrom(f2);
2013 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2014 t,dt,it=f1.getTime()
2015 self.assertAlmostEqual(6.78,t,12);
2016 self.assertEqual(9,dt);
2017 self.assertEqual(10,it);
2018 self.assertTrue(f1.getName()=="f1");#name unchanged
2019 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2021 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2023 f1.setTimeTolerance(1.e-5);
2024 f1.setDescription("f1Desc");
2025 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2027 f2.setDescription("f2Desc");
2028 f2.setTimeTolerance(4.556e-12);
2030 f1.copyTinyAttrFrom(f2);
2031 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2032 self.assertTrue(f1.getName()=="f1");#name unchanged
2033 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2035 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
2037 f1.setTimeTolerance(1.e-5);
2038 f1.setDescription("f1Desc");
2039 f1.setTime(1.23,4,5);
2040 f1.setEndTime(5.43,2,1);
2041 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
2043 f2.setDescription("f2Desc");
2044 f2.setTimeTolerance(4.556e-12);
2045 f2.setTime(6.78,9,10);
2046 f2.setEndTime(10.98,7,6);
2048 f1.copyTinyAttrFrom(f2);
2049 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2050 self.assertTrue(f1.getName()=="f1");#name unchanged
2051 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2052 t,dt,it=f1.getTime()
2053 self.assertAlmostEqual(6.78,t,12);
2054 self.assertEqual(9,dt);
2055 self.assertEqual(10,it);
2056 t,dt,it=f1.getEndTime()
2057 self.assertAlmostEqual(10.98,t,12);
2058 self.assertEqual(7,dt);
2059 self.assertEqual(6,it);
2061 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2063 f1.setTimeTolerance(1.e-5);
2064 f1.setDescription("f1Desc");
2065 f1.setTime(1.23,4,5);
2066 f1.setEndTime(5.43,2,1);
2067 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2069 f2.setDescription("f2Desc");
2070 f2.setTimeTolerance(4.556e-12);
2071 f2.setTime(6.78,9,10);
2072 f2.setEndTime(10.98,7,6);
2074 f1.copyTinyAttrFrom(f2);
2075 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2076 self.assertTrue(f1.getName()=="f1");#name unchanged
2077 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2078 t,dt,it=f1.getTime()
2079 self.assertAlmostEqual(6.78,t,12);
2080 self.assertEqual(9,dt);
2081 self.assertEqual(10,it);
2082 t,dt,it=f1.getEndTime()
2083 self.assertAlmostEqual(10.98,t,12);
2084 self.assertEqual(7,dt);
2085 self.assertEqual(6,it);
2088 def testExtrudedMesh5(self):
2090 a=DataArrayDouble.New();
2091 a.setValues(coo1,4,1);
2092 b=MEDCouplingCMesh.New();
2094 c=b.buildUnstructured();
2095 self.assertEqual(1,c.getSpaceDimension());
2096 c.changeSpaceDimension(2);
2098 d=DataArrayDouble.New();
2101 e=MEDCouplingCMesh.New();
2103 f=e.buildUnstructured();
2104 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
2105 self.assertRaises(InterpKernelException,f.getCoords().applyFunc,2,"3.5*IVec+x/6*3.14159265359*KVec"); # KVec refers to component #2 and there is only 2 components !
2106 h=g.fromPolarToCart();
2108 i=c.buildExtrudedMesh(f,1);
2109 self.assertEqual(52,i.getNumberOfNodes());
2110 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2111 self.assertTrue(tmp2);
2112 self.assertEqual(37,tmp3);
2113 i.convertDegeneratedCells();
2114 i.checkConsistencyLight();
2115 self.assertEqual(36,i.getNumberOfCells());
2116 self.assertEqual(37,i.getNumberOfNodes());
2117 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
2118 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
2119 expected1=[0.25,0.75,2.0625]
2120 j=i.getMeasureField(True);
2121 for ii in xrange(12):
2123 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
2126 expected2=[0.62200846792814113, 0.16666666666681595, 1.4513530918323276, 0.38888888888923495, 2.6293994326053212, 0.7045454545460802, 0.45534180126145435, 0.45534180126150181, 1.0624642029433926, 1.0624642029435025, 1.9248539780597826, 1.9248539780599816, 0.16666666666661334, 0.62200846792815856, 0.38888888888876294, 1.4513530918323678, 0.70454545454522521, 2.629399432605394, -0.16666666666674007, 0.62200846792812436, -0.38888888888906142, 1.4513530918322881, -0.70454545454576778, 2.6293994326052488, -0.45534180126154766, 0.45534180126140844, -1.0624642029436118, 1.0624642029432834, -1.9248539780601803, 1.9248539780595841, -0.62200846792817499, 0.1666666666665495, -1.451353091832408, 0.388888888888613, -2.6293994326054668, 0.70454545454495332, -0.62200846792810593, -0.16666666666680507, -1.451353091832247, -0.38888888888921297, -2.6293994326051746, -0.70454545454604123, -0.45534180126135926, -0.45534180126159562, -1.0624642029431723, -1.0624642029437235, -1.9248539780593836, -1.9248539780603811, -0.1666666666664828, -0.62200846792819242, -0.38888888888846079, -1.4513530918324489, -0.70454545454467987, -2.6293994326055397, 0.16666666666687083, -0.62200846792808862, 0.38888888888936374, -1.4513530918322073, 0.70454545454631357, -2.6293994326051022, 0.45534180126164348, -0.45534180126131207, 1.0624642029438327, -1.0624642029430627, 1.9248539780605791, -1.9248539780591853, 0.62200846792821063, -0.16666666666641802, 1.4513530918324888, -0.38888888888831086, 2.6293994326056125, -0.70454545454440853]
2127 m=i.computeCellCenterOfMass();
2128 for i in xrange(72):
2129 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
2134 def testExtrudedMesh6(self):
2136 a=DataArrayDouble.New();
2137 a.setValues(coo1,4,1);
2138 b=MEDCouplingCMesh.New();
2140 c=b.buildUnstructured();
2141 self.assertEqual(1,c.getSpaceDimension());
2142 c.changeSpaceDimension(2);
2144 d=DataArrayDouble.New();
2147 e=MEDCouplingCMesh.New();
2149 f=e.buildUnstructured();
2150 d2=f.getCoords().applyFunc("x*x/2");
2152 f.changeSpaceDimension(2);
2155 f.rotate(center,None,pi/3);
2156 g=c.buildExtrudedMesh(f,0);
2157 g.checkConsistencyLight();
2158 expected1=[ 0.4330127018922193, 0.4330127018922193, 0.649519052838329, 1.2990381056766578, 1.299038105676658, 1.948557158514987, 2.1650635094610955, 2.1650635094610964, 3.2475952641916446, 3.031088913245533, 3.0310889132455352, 4.546633369868303 ]
2159 f1=g.getMeasureField(True);
2160 for i in xrange(12):
2161 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
2163 expected2=[0.625, 0.21650635094610962, 1.625, 0.21650635094610959, 2.8750000000000004, 0.21650635094610965, 1.1250000000000002, 1.0825317547305482, 2.125, 1.0825317547305482, 3.3750000000000004, 1.0825317547305484, 2.125, 2.8145825622994254, 3.125, 2.8145825622994254, 4.375, 2.8145825622994254, 3.6250000000000009, 5.4126587736527414, 4.625, 5.4126587736527414, 5.875, 5.4126587736527414]
2164 f2=g.computeCellCenterOfMass();
2165 for i in xrange(24):
2166 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
2170 def testExtrudedMesh7(self):
2172 a=DataArrayDouble.New();
2173 a.setValues(coo1,4,1);
2174 b=MEDCouplingCMesh.New();
2176 c=b.buildUnstructured();
2177 self.assertEqual(1,c.getSpaceDimension());
2178 c.changeSpaceDimension(2);
2180 d=DataArrayDouble.New();
2183 e=MEDCouplingCMesh.New();
2185 f=e.buildUnstructured();
2186 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
2187 h=g.fromPolarToCart();
2189 i=c.buildExtrudedMesh(f,1);
2190 self.assertEqual(52,i.getNumberOfNodes());
2191 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2192 self.assertTrue(tmp2);
2193 self.assertEqual(37,tmp3);
2194 i.convertDegeneratedCells();
2197 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
2199 i.changeSpaceDimension(3);
2200 i3=i.buildExtrudedMesh(f,1);
2201 f2=i3.getMeasureField(True);
2202 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2203 self.assertTrue(tmp2);
2204 self.assertEqual(444,tmp3);
2205 expected1=[1.327751058489274, 4.2942574094314701, 13.024068164857139, 1.3069177251569044, 4.1484240761012954, 12.297505664866796, 1.270833333332571, 3.8958333333309674, 11.039062499993179, 1.2291666666659207, 3.6041666666644425, 9.585937499993932, 1.1930822748415895, 3.3515759238941376, 8.3274943351204556, 1.1722489415082769, 3.2057425905609289, 7.6009318351210622, 1.1722489415082862, 3.2057425905609884, 7.6009318351213713, 1.1930822748416161, 3.3515759238943001, 8.3274943351212727, 1.2291666666659564, 3.6041666666646734, 9.5859374999950777, 1.2708333333326081, 3.8958333333311868, 11.039062499994293, 1.3069177251569224, 4.1484240761014384, 12.297505664867627, 1.3277510584902354, 4.2942574094346071, 13.024068164866796]
2206 for ii in xrange(12):
2207 for jj in xrange(36):
2208 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
2213 def testSimplexize1(self):
2214 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2215 m.convertToPolyTypes([3]);
2217 self.assertEqual(7,da.getNumberOfTuples());
2218 self.assertEqual(1,da.getNumberOfComponents());
2219 expected2=[0,0,1,2,3,4,4]
2221 self.assertEqual(expected2[i],da.getIJ(i,0));
2223 m.checkConsistencyLight();
2224 self.assertEqual(7,m.getNumberOfCells());
2225 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
2226 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
2227 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
2228 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
2229 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
2230 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
2231 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
2232 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
2233 f=m.getMeasureField(False);
2235 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
2237 types=m.getAllGeoTypes();
2238 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
2240 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2241 m.convertToPolyTypes([3]);
2243 self.assertEqual(7,da.getNumberOfTuples());
2244 self.assertEqual(1,da.getNumberOfComponents());
2246 self.assertEqual(expected2[i],da.getIJ(i,0));
2248 m.checkConsistencyLight();
2249 types=m.getAllGeoTypes();
2250 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
2251 self.assertEqual(7,m.getNumberOfCells());
2252 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
2253 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
2254 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
2255 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
2256 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
2257 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
2258 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
2259 f=m.getMeasureField(False);
2261 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
2265 def testSimplexize2(self):
2266 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2267 m.convertToPolyTypes([3]);
2268 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2270 arr=DataArrayDouble.New();
2271 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
2272 arr.setValues(arr1,5,2);
2275 f1.checkConsistencyLight();
2276 self.assertTrue(f1.simplexize(0));
2277 f1.checkConsistencyLight();
2278 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
2279 for i in xrange(14):
2280 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
2282 self.assertTrue(not f1.simplexize(0));
2283 for i in xrange(14):
2284 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
2289 def testDAMeld1(self):
2290 da1=DataArrayDouble.New();
2292 da2=DataArrayDouble.New();
2295 da1.fillWithValue(7.);
2297 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
2299 da1.setInfoOnComponent(0,"c0da1");
2300 da1.setInfoOnComponent(1,"c1da1");
2301 da3.setInfoOnComponent(0,"c0da3");
2302 da3.setInfoOnComponent(1,"c1da3");
2303 da3.setInfoOnComponent(2,"c2da3");
2305 da1C=da1.deepCopy();
2307 self.assertEqual(5,da1.getNumberOfComponents());
2308 self.assertEqual(7,da1.getNumberOfTuples());
2309 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
2310 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
2311 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
2312 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
2313 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
2315 expected1=[7.,7.,0.,0.,0., 7.,7.,10.,100.,1000., 7.,7.,20.,200.,2000., 7.,7.,30.,300.,3000., 7.,7.,40.,400.,4000.,7.,7.,50.,500.,5000.,7.,7.,60.,600.,6000.]
2316 for i in xrange(35):
2317 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
2320 dai1=da1C.convertToIntArr();
2321 dai3=da3.convertToIntArr();
2322 dai1.meldWith(dai3);
2323 self.assertEqual(5,dai1.getNumberOfComponents());
2324 self.assertEqual(7,dai1.getNumberOfTuples());
2325 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
2326 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
2327 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
2328 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
2329 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
2330 for i in xrange(35):
2331 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
2333 # test of static method DataArrayDouble::meld
2334 da4=DataArrayDouble.Meld(da1C,da3);
2335 tmp=DataArrayDouble.Meld([da1C,da3]);
2336 self.assertTrue(da4.isEqual(tmp,1e-10))
2337 self.assertEqual(5,da4.getNumberOfComponents());
2338 self.assertEqual(7,da4.getNumberOfTuples());
2339 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
2340 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
2341 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
2342 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
2343 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
2344 for i in xrange(35):
2345 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
2347 # test of static method DataArrayInt::meld
2348 dai1=da1C.convertToIntArr();
2349 dai4=DataArrayInt.Meld(dai1,dai3);
2350 tmp=DataArrayInt.Meld([dai1,dai3]);
2351 self.assertTrue(dai4.isEqual(tmp))
2352 self.assertEqual(5,dai4.getNumberOfComponents());
2353 self.assertEqual(7,dai4.getNumberOfTuples());
2354 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
2355 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
2356 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
2357 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
2358 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
2359 for i in xrange(35):
2360 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
2364 def testFieldMeld1(self):
2365 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2366 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2368 da1=DataArrayDouble.New();
2369 arr1=[12.,23.,34.,45.,56.]
2370 da1.setValues(arr1,5,1);
2371 da1.setInfoOnComponent(0,"aaa");
2373 f1.setTime(3.4,2,1);
2374 f1.checkConsistencyLight();
2377 f2.setMesh(f1.getMesh());
2378 f2.checkConsistencyLight();
2379 f2.changeNbOfComponents(2,5.);
2381 f2.getArray().setInfoOnComponent(0,"bbb");
2382 f2.getArray().setInfoOnComponent(1,"ccc");
2383 f2.checkConsistencyLight();
2385 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
2386 f3.checkConsistencyLight();
2387 self.assertEqual(5,f3.getNumberOfTuples());
2388 self.assertEqual(3,f3.getNumberOfComponents());
2389 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
2390 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
2391 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
2392 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
2393 for i in xrange(15):
2394 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
2396 time,dt,it=f3.getTime();
2397 self.assertAlmostEqual(3.4,time,14);
2398 self.assertEqual(2,dt);
2399 self.assertEqual(1,it);
2401 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
2402 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
2403 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
2404 f6.checkConsistencyLight();
2405 self.assertEqual(5,f6.getNumberOfTuples());
2406 self.assertEqual(3,f6.getNumberOfComponents());
2407 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
2408 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
2409 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
2410 for i in xrange(15):
2411 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
2416 def testMergeNodes2(self):
2417 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2418 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2422 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
2423 da,b,newNbOfNodes=m3.mergeNodesCenter(0.01);
2424 self.assertEqual(9,m3.getNumberOfNodes());
2425 expected1=[-0.299,-0.3, 0.201,-0.3, 0.701,-0.3, -0.299,0.2, 0.201,0.2, 0.701,0.2, -0.299,0.7, 0.201,0.7, 0.701,0.7]
2426 for i in xrange(18):
2427 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
2432 def testMergeField2(self):
2433 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2434 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2436 arr=DataArrayDouble.New();
2438 arr.fillWithValue(2.);
2440 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2442 arr=DataArrayDouble.New();
2444 arr.fillWithValue(5.);
2446 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2448 arr=DataArrayDouble.New();
2450 arr.fillWithValue(7.);
2453 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
2454 self.assertEqual(15,f4.getMesh().getNumberOfCells());
2455 expected1=[2.,2.,2.,2.,2.,2.,2.,2.,2.,2., 5.,5.,5.,5.,5.,5.,5.,5.,5.,5., 7.,7.,7.,7.,7.,7.,7.,7.,7.,7.]
2456 for i in xrange(30):
2457 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
2462 def testDAIBuildComplement1(self):
2463 a=DataArrayInt.New();
2465 a.setValues(tab,4,1);
2466 b=a.buildComplement(12);
2467 self.assertEqual(8,b.getNumberOfTuples());
2468 self.assertEqual(1,b.getNumberOfComponents());
2469 expected1=[0,2,4,5,6,9,10,11]
2471 self.assertEqual(expected1[i],b.getIJ(0,i));
2475 def testDAIBuildUnion1(self):
2476 a=DataArrayInt.New();
2478 a.setValues(tab1,4,1);
2479 c=DataArrayInt.New();
2481 c.setValues(tab2,5,1);
2483 self.assertEqual(7,b.getNumberOfTuples());
2484 self.assertEqual(1,b.getNumberOfComponents());
2485 expected1=[0,1,3,5,7,8,18]
2487 self.assertEqual(expected1[i],b.getIJ(0,i));
2489 b=DataArrayInt.BuildUnion([a,c]);
2490 self.assertEqual(7,b.getNumberOfTuples());
2491 self.assertEqual(1,b.getNumberOfComponents());
2492 expected1=[0,1,3,5,7,8,18]
2494 self.assertEqual(expected1[i],b.getIJ(0,i));
2498 def testDAIBuildIntersection1(self):
2499 a=DataArrayInt.New();
2501 a.setValues(tab1,4,1);
2502 c=DataArrayInt.New();
2504 c.setValues(tab2,5,1);
2505 b=a.buildIntersection(c);
2506 self.assertEqual(2,b.getNumberOfTuples());
2507 self.assertEqual(1,b.getNumberOfComponents());
2510 self.assertEqual(expected1[i],b.getIJ(0,i));
2512 b=DataArrayInt.BuildIntersection([a,c]);
2513 self.assertEqual(2,b.getNumberOfTuples());
2514 self.assertEqual(1,b.getNumberOfComponents());
2517 self.assertEqual(expected1[i],b.getIJ(0,i));
2521 def testDAIDeltaShiftIndex1(self):
2522 a=DataArrayInt.New();
2523 tab=[1,3,6,7,7,9,15]
2524 a.setValues(tab,7,1);
2525 b=a.deltaShiftIndex();
2526 self.assertEqual(6,b.getNumberOfTuples());
2527 self.assertEqual(1,b.getNumberOfComponents());
2528 expected1=[2,3,1,0,2,6]
2530 self.assertEqual(expected1[i],b.getIJ(0,i));
2534 def testDaDoubleSelectByTupleIdSafe1(self):
2535 a=DataArrayDouble.New();
2536 arr1=[1.1,11.1,2.1,12.1,3.1,13.1,4.1,14.1,5.1,15.1,6.1,16.1,7.1,17.1]
2537 a.setValues(arr1,7,2);
2538 a.setInfoOnComponent(0,"toto");
2539 a.setInfoOnComponent(1,"tata");
2542 b=a.selectByTupleIdSafe(arr2);
2543 self.assertEqual(5,b.getNumberOfTuples());
2544 self.assertEqual(2,b.getNumberOfComponents());
2545 self.assertTrue(b.getInfoOnComponent(0)=="toto");
2546 self.assertTrue(b.getInfoOnComponent(1)=="tata");
2547 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
2548 for i in xrange(10):
2549 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2552 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
2554 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
2556 c=DataArrayInt.New();
2557 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
2558 c.setValues(arr3,7,2);
2559 c.setInfoOnComponent(0,"toto");
2560 c.setInfoOnComponent(1,"tata");
2561 d=c.selectByTupleIdSafe(arr2);
2562 self.assertEqual(5,d.getNumberOfTuples());
2563 self.assertEqual(2,d.getNumberOfComponents());
2564 self.assertTrue(d.getInfoOnComponent(0)=="toto");
2565 self.assertTrue(d.getInfoOnComponent(1)=="tata");
2566 expected2=[5,15,3,13,1,11,7,17,6,16]
2567 for i in xrange(10):
2568 self.assertEqual(expected2[i],d.getIJ(0,i));
2570 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
2571 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
2574 def testAreCellsIncludedIn1(self):
2575 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2577 m2=m.buildPartOfMySelf(pt,True);
2578 ret,tmp=m.areCellsIncludedIn(m2,0)
2579 self.assertTrue(ret);
2580 self.assertEqual(2,tmp.getNumberOfTuples());
2581 self.assertEqual(1,tmp.getNumberOfComponents());
2582 self.assertEqual(pt[0],tmp.getIJ(0,0));
2583 self.assertEqual(pt[1],tmp.getIJ(0,1));
2584 ret,tmp=m2.areCellsIncludedIn(m,0)
2585 self.assertTrue(not ret);
2586 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
2587 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
2588 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
2589 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
2592 def testSwigErrorProtection1(self):
2593 m=MEDCouplingDataForTest.build3DTargetMesh_1();
2594 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
2595 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
2596 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
2597 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
2598 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
2599 m2=m.buildPartOfMySelf([2,5],True)
2600 m3=m.buildPartOfMySelf((2,5),True)
2601 self.assertTrue(m2.isEqual(m3,1e-12))
2602 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
2603 da1=m.getCoords().keepSelectedComponents([1])
2604 da2=m.getCoords().keepSelectedComponents((1,))
2605 self.assertTrue(da1.isEqual(da2,1e-12))
2606 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
2609 def testDAIBuildSubstraction1(self):
2610 a=DataArrayInt.New()
2613 b=DataArrayInt.New()
2616 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
2619 def testBuildOrthogonalField2(self):
2620 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2621 d1=DataArrayInt.New();
2622 d2=DataArrayInt.New();
2623 d3=DataArrayInt.New();
2624 d4=DataArrayInt.New();
2625 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
2627 f1=m1.buildOrthogonalField();
2629 self.assertEqual(2,da1.getNumberOfComponents());
2630 self.assertEqual(13,da1.getNumberOfTuples());
2632 expected1=[-1.,0.,0.,1.,1.,0.,0.,-1.,0.707106781186548,0.707106781186548,0.,-1.,0.,1.,1.,0.,0.,1.,1.,0.,-1.,0.,0.,1.,1.,0.];
2633 for i in xrange(26):
2634 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
2638 def testSwigErrorProtection2(self):
2639 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2641 c=m.getNodalConnectivity()
2642 ci=m.getNodalConnectivityIndex()
2644 self.assertEqual(2,coo.getNumberOfComponents());
2645 self.assertEqual(6,ci.getNumberOfTuples());
2646 self.assertEqual(23,c.getNumberOfTuples());
2647 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2648 f=m.getMeasureField(True)
2651 self.assertEqual(1,c.getNumberOfComponents());
2652 m=MEDCouplingCMesh.New()
2653 x=DataArrayDouble.New()
2654 x.setValues([1.,2.,4.],3,1)
2659 self.assertEqual(3,xx.getNumberOfTuples());
2661 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2662 f=m.getMeasureField(True)
2666 self.assertEqual(5,m2.getNumberOfCells());
2669 def testUMInsertNextCell1(self):
2670 targetCoords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]
2671 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
2672 targetMesh=MEDCouplingUMesh.New();
2673 targetMesh.allocateCells(5);
2674 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
2675 targetMesh.setMeshDimension(2);
2676 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
2677 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
2678 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
2679 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
2680 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
2681 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
2682 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
2683 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
2684 targetMesh.finishInsertingCells();
2685 myCoords=DataArrayDouble.New();
2686 myCoords.setValues(targetCoords,9,2);
2687 targetMesh.setCoords(myCoords);
2688 targetMesh.checkConsistencyLight();
2691 def testFieldOperatorDivDiffComp1(self):
2692 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2693 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
2695 f1=m1.buildOrthogonalField();
2696 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
2697 arr=DataArrayDouble.New();
2698 arr.setValues(arr1,13,1);
2699 f2=MEDCouplingFieldDouble.New(ON_CELLS);
2702 f2.checkConsistencyLight();
2705 self.assertRaises(InterpKernelException,f2.__div__,f1)
2706 f3.checkConsistencyLight();
2708 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
2709 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
2710 expected1=[-0.5, 0.0, 0.0, 0.33333333333333331, 0.25, 0.0, 0.0, -0.20000000000000001, 0.117851130197758, 0.117851130197758, 0.0, -0.14285714285714285, 0.0, 0.125, 0.1111111111111111, 0.0, 0.0, 0.10000000000000001, 0.090909090909090912, 0.0, -0.083333333333333329, 0.0, 0.0, 0.076923076923076927, 0.071428571428571425, 0.0]
2711 for i in xrange(26):
2712 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
2716 def testDARearrange1(self):
2717 da1=DataArrayInt.New();
2721 self.assertEqual(12,da1.getNbOfElems());
2722 self.assertEqual(1,da1.getNumberOfComponents());
2723 self.assertEqual(12,da1.getNumberOfTuples());
2725 self.assertEqual(12,da1.getNbOfElems());
2726 self.assertEqual(4,da1.getNumberOfComponents());
2727 self.assertEqual(3,da1.getNumberOfTuples());
2728 for i in xrange(12):
2729 self.assertEqual(i,da1.getIJ(0,i));
2732 self.assertEqual(12,da1.getNbOfElems());
2733 self.assertEqual(6,da1.getNumberOfComponents());
2734 self.assertEqual(2,da1.getNumberOfTuples());
2735 for i in xrange(12):
2736 self.assertEqual(i,da1.getIJ(0,i));
2738 self.assertRaises(InterpKernelException,da1.rearrange,7);
2741 self.assertEqual(12,da1.getNbOfElems());
2742 self.assertEqual(12,da1.getNumberOfComponents());
2743 self.assertEqual(1,da1.getNumberOfTuples());
2744 for i in xrange(12):
2745 self.assertEqual(i,da1.getIJ(0,i));
2748 self.assertEqual(12,da1.getNbOfElems());
2749 self.assertEqual(3,da1.getNumberOfComponents());
2750 self.assertEqual(4,da1.getNumberOfTuples());
2751 for i in xrange(12):
2752 self.assertEqual(i,da1.getIJ(0,i));
2754 da2=da1.convertToDblArr();
2755 st=da2.getHiddenCppPointer()
2757 self.assertEqual(12,da2.getNbOfElems());
2758 self.assertEqual(3,da2.getNumberOfComponents());
2759 self.assertEqual(4,da2.getNumberOfTuples());
2761 self.assertEqual(12,da2.getNbOfElems());
2762 self.assertEqual(4,da2.getNumberOfComponents());
2763 self.assertEqual(3,da2.getNumberOfTuples());
2764 for i in xrange(12):
2765 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2768 self.assertEqual(12,da2.getNbOfElems());
2769 self.assertEqual(6,da2.getNumberOfComponents());
2770 self.assertEqual(2,da2.getNumberOfTuples());
2771 for i in xrange(12):
2772 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2774 self.assertRaises(InterpKernelException,da2.rearrange,7);
2777 self.assertEqual(st,da2.getHiddenCppPointer())
2778 self.assertEqual(12,da2.getNbOfElems());
2779 self.assertEqual(1,da2.getNumberOfComponents());
2780 self.assertEqual(12,da2.getNumberOfTuples());
2781 for i in xrange(12):
2782 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2785 self.assertEqual(12,da2.getNbOfElems());
2786 self.assertEqual(3,da2.getNumberOfComponents());
2787 self.assertEqual(4,da2.getNumberOfTuples());
2788 for i in xrange(12):
2789 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2792 def testDARearrange2(self):
2793 da1=DataArrayInt.New();
2794 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
2795 da1.setValues(arr,4,3);
2796 s=da1.getDifferentValues();
2797 expected1=DataArrayInt([1,2,3,5])
2798 self.assertTrue(expected1.isEqual(s));
2801 def testSwigErrorProtection3(self):
2802 da=DataArrayInt.New()
2803 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
2804 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
2805 self.assertEqual(3,da.getNumberOfComponents());
2806 self.assertEqual(4,da.getNumberOfTuples());
2807 da=DataArrayInt.New()
2808 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
2809 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
2810 self.assertEqual(3,da.getNumberOfComponents());
2811 self.assertEqual(4,da.getNumberOfTuples());
2812 da.setValues((10*[1]+290*[2])[:12],4,3)
2813 self.assertEqual(10*[1]+[2,2],da.getValues())
2814 self.assertEqual(3,da.getNumberOfComponents());
2815 self.assertEqual(4,da.getNumberOfTuples());
2817 da=DataArrayDouble.New()
2818 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
2819 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
2820 self.assertEqual(3,da.getNumberOfComponents());
2821 self.assertEqual(4,da.getNumberOfTuples());
2822 da=DataArrayDouble.New()
2823 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
2824 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
2825 self.assertEqual(3,da.getNumberOfComponents());
2826 self.assertEqual(4,da.getNumberOfTuples());
2827 da.setValues((10*[1]+290*[2])[:12],4,3)
2828 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
2829 self.assertEqual(3,da.getNumberOfComponents());
2830 self.assertEqual(4,da.getNumberOfTuples());
2833 def testDAIBuildPermutationArr1(self):
2834 a=DataArrayInt.New()
2835 a.setValues([4,5,6,7,8],5,1)
2836 b=DataArrayInt.New()
2837 b.setValues([5,4,8,6,7],5,1)
2838 c=a.buildPermutationArr(b)
2839 self.assertEqual([1,0,4,2,3],c.getValues())
2840 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
2842 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
2843 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
2846 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
2847 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
2848 c=a.buildPermutationArr(b)
2849 self.assertEqual([1,3,4,2,3],c.getValues())
2850 d=b.convertToDblArr()
2853 self.assertEqual(expect3,b.getValues())
2855 self.assertEqual(5,d.getNumberOfTuples());
2856 self.assertEqual(1,d.getNumberOfComponents());
2858 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
2862 def testAreCellsIncludedIn2(self):
2864 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2865 m2=m.buildPartOfMySelf([],True);
2866 self.assertEqual(0,m2.getNumberOfCells());
2867 self.assertEqual(3,m2.getSpaceDimension());
2868 self.assertEqual(2,m2.getMeshDimension());
2870 test,tmp=m.areCellsIncludedIn(m2,0)
2871 self.assertTrue(test);
2872 self.assertEqual(myName,tmp.getName());
2873 self.assertEqual(0,tmp.getNumberOfTuples())
2874 self.assertEqual(1,tmp.getNumberOfComponents())
2877 def testUMeshGetPartBarycenterAndOwner1(self):
2878 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2880 part=DataArrayInt.New();
2881 part.setValues(part1,3,1);
2882 b=m1.getPartBarycenterAndOwner(part);
2883 self.assertEqual(2,b.getNumberOfComponents());
2884 self.assertEqual(3,b.getNumberOfTuples());
2885 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
2887 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2891 def testUMeshGetPartMeasureField1(self):
2892 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2894 part=DataArrayInt.New();
2895 part.setValues(part1,3,1);
2896 b=m1.getPartMeasureField(True,part);
2897 self.assertEqual(1,b.getNumberOfComponents());
2898 self.assertEqual(3,b.getNumberOfTuples());
2899 expected1=[0.125,0.25,0.25];
2901 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2905 def testUMeshBuildPartOrthogonalField1(self):
2906 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2907 m1.changeSpaceDimension(3);
2909 part=DataArrayInt.New();
2910 part.setValues(part1,3,1);
2911 b=m1.buildPartOrthogonalField(part);
2912 self.assertEqual(3,b.getArray().getNumberOfComponents());
2913 self.assertEqual(3,b.getArray().getNumberOfTuples());
2914 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
2916 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
2920 def testUMeshGetTypesOfPart1(self):
2921 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2923 p1=DataArrayInt.New()
2924 p1.setValues(part1,3,1)
2925 s=m1.getTypesOfPart(p1);
2926 self.assertEqual([NORM_QUAD4],s);
2928 p2=DataArrayInt.New()
2929 p2.setValues(part2,4,1)
2930 s=m1.getTypesOfPart(p2);
2931 self.assertEqual([NORM_TRI3],s);
2933 p3=DataArrayInt.New()
2934 p3.setValues(part3,3,1)
2935 s=m1.getTypesOfPart(p3);
2936 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
2939 def testUMeshKeepCellIdsByType1(self):
2940 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2942 p1=DataArrayInt.New()
2943 p1.setValues(part1,3,1)
2945 a=m1.keepCellIdsByType(NORM_TRI3,p1);
2946 self.assertEqual("p1",a.getName())
2947 self.assertEqual(1,a.getNumberOfComponents());
2948 self.assertEqual(0,a.getNumberOfTuples());
2951 p2=DataArrayInt.New()
2952 p2.setValues(part2,5,1)
2954 a=m1.keepCellIdsByType(NORM_TRI3,p2);
2955 self.assertEqual("p2",a.getName())
2956 self.assertEqual(1,a.getNumberOfComponents());
2957 self.assertEqual(2,a.getNumberOfTuples());
2958 self.assertEqual(2,a.getIJ(0,0));
2959 self.assertEqual(2,a.getIJ(1,0));
2961 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
2962 self.assertEqual("p2",a.getName())
2963 self.assertEqual(1,a.getNumberOfComponents());
2964 self.assertEqual(3,a.getNumberOfTuples());
2965 self.assertEqual(3,a.getIJ(0,0));
2966 self.assertEqual(0,a.getIJ(1,0));
2967 self.assertEqual(4,a.getIJ(2,0));
2970 def testSwigErrorDaIntSelectByTupleId1(self):
2971 a=DataArrayInt.New();
2972 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
2973 a.setValues(arr1,7,2);
2974 a.setInfoOnComponent(0,"toto");
2975 a.setInfoOnComponent(1,"tata");
2978 b=a.selectByTupleId(arr2);
2979 self.assertEqual(5,b.getNumberOfTuples());
2980 self.assertEqual(2,b.getNumberOfComponents());
2981 self.assertTrue(b.getInfoOnComponent(0)=="toto");
2982 self.assertTrue(b.getInfoOnComponent(1)=="tata");
2983 expected1=[5,15,3,13,1,11,7,17,6,16]
2984 self.assertEqual(expected1,b.getValues())
2986 a2=DataArrayInt.New()
2987 a2.setValues(arr2,5,1)
2988 b=a.selectByTupleId(a2);
2989 self.assertEqual(5,b.getNumberOfTuples());
2990 self.assertEqual(2,b.getNumberOfComponents());
2991 self.assertTrue(b.getInfoOnComponent(0)=="toto");
2992 self.assertTrue(b.getInfoOnComponent(1)=="tata");
2993 expected1=[5,15,3,13,1,11,7,17,6,16]
2994 self.assertEqual(expected1,b.getValues())
2997 def testSwigErrorRenum(self):
2998 da=DataArrayDouble.New()
2999 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
3000 d=DataArrayInt.New()
3001 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
3002 da.renumberInPlace(d)
3008 if __name__ == '__main__':