1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2016 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.assertEqual(5,da.getNbOfElems());
106 expected1=[2,3,5,7,9]
107 self.assertEqual(expected1,list(da.getValues()));
108 da=f1.findIdsInRange(8.,12.);
109 self.assertEqual(4,da.getNbOfElems());
111 self.assertEqual(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.assertEqual(3,f2.getNumberOfTuples());
129 self.assertEqual(2,f2.getNumberOfComponents());
130 expected1=[5.,105.,4.,104.,7.,107.]
132 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
134 self.assertEqual(3,f2.getMesh().getNumberOfCells());
135 self.assertEqual(6,f2.getMesh().getNumberOfNodes());
136 self.assertEqual(2,f2.getMesh().getSpaceDimension());
137 self.assertEqual(2,f2.getMesh().getMeshDimension());
139 self.assertEqual(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.assertEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
147 self.assertEqual(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.assertEqual(4,f2.getNumberOfTuples());
159 self.assertEqual(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.assertEqual(2,f2.getMesh().getNumberOfCells());
165 self.assertEqual(4,f2.getMesh().getNumberOfNodes());
166 self.assertEqual(2,f2.getMesh().getSpaceDimension());
167 self.assertEqual(2,f2.getMesh().getMeshDimension());
169 self.assertEqual(8,m2C.getNodalConnectivityArrayLen());
170 for i in range(8): # 8 is not an error
171 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
173 self.assertEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
174 self.assertEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
175 self.assertEqual(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.assertEqual(4,f2.getNumberOfTuples());
182 self.assertEqual(2,f2.getNumberOfComponents());
184 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
186 self.assertEqual(2,f2.getMesh().getNumberOfCells());
187 self.assertEqual(4,f2.getMesh().getNumberOfNodes());
188 self.assertEqual(2,f2.getMesh().getSpaceDimension());
189 self.assertEqual(2,f2.getMesh().getMeshDimension());
191 self.assertEqual(8,m2C.getNodalConnectivityArrayLen());
192 for i in range(8): # 8 is not an error
193 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
195 self.assertEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
196 self.assertEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
197 self.assertEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
200 f2=f1.buildSubPart(part4);
201 self.assertEqual(6,f2.getNumberOfTuples());
202 self.assertEqual(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.assertEqual(3,f2.getMesh().getNumberOfCells());
208 self.assertEqual(6,f2.getMesh().getNumberOfNodes());
209 self.assertEqual(2,f2.getMesh().getSpaceDimension());
210 self.assertEqual(2,f2.getMesh().getMeshDimension());
212 self.assertEqual(13,m2C.getNodalConnectivityArrayLen());
214 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
216 self.assertEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
217 self.assertEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
218 self.assertEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
219 self.assertEqual(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 range(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 range(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 range(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 range(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 range(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]
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 range(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];
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]
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]
1044 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1046 self.assertTrue(not f.zipCoords());
1047 f.checkConsistencyLight();
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];
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());
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());
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());
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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]
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());
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);
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.]
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");
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.]
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");
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.]
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.]
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 !
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 !
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 testDAHasUniqueValues1(self):
1875 da=DataArrayInt([1,2,3,4,5])
1876 self.assertTrue(da.hasUniqueValues())
1878 self.assertFalse(da.hasUniqueValues())
1880 self.assertTrue(da.hasUniqueValues())
1881 da=DataArrayInt([(1,2), (2,3)]) # wrong num of compo
1882 self.assertRaises(InterpKernelException, da.hasUniqueValues)
1883 da=DataArrayInt() # non allocated array
1884 self.assertRaises(InterpKernelException, da.hasUniqueValues)
1887 def testDADFromPolarToCart1(self):
1888 tab1=[2.,0.2,2.5,0.7]
1889 da=DataArrayDouble.New();
1890 da.setValues(tab1,2,2);
1891 da2=da.fromPolarToCart();
1892 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
1894 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1898 def testDADFromCylToCart1(self):
1899 tab1=[2.,0.2,4.,2.5,0.7,9.]
1900 da=DataArrayDouble.New();
1901 da.setValues(tab1,2,3);
1902 da2=da.fromCylToCart();
1903 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
1905 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1909 def testDADFromSpherToCart1(self):
1910 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
1911 da=DataArrayDouble.New();
1912 da.setValues(tab1,2,3);
1913 da2=da.fromSpherToCart();
1914 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
1916 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1920 def testUnPolyze1(self):
1921 elts=[0,1,2,3,4,5,6,7]
1923 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1924 mesh.convertToPolyTypes(eltsV);
1926 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
1927 mesh.checkConsistencyLight();
1928 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1929 mesh.convertToPolyTypes(eltsV);
1930 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1931 mesh.getNodalConnectivity().setIJ(0,6,10);
1932 mesh.getNodalConnectivity().setIJ(0,7,9);
1933 mesh.getNodalConnectivity().setIJ(0,8,12);
1934 mesh.getNodalConnectivity().setIJ(0,9,13);
1936 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1937 mesh.convertToPolyTypes(eltsV);
1938 mesh.getNodalConnectivity().setIJ(0,6,12);
1939 mesh.getNodalConnectivity().setIJ(0,7,13);
1940 mesh.getNodalConnectivity().setIJ(0,8,10);
1941 mesh.getNodalConnectivity().setIJ(0,9,9);
1943 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1944 mesh.convertToPolyTypes(eltsV);
1945 mesh.getNodalConnectivity().setIJ(0,6,12);
1946 mesh.getNodalConnectivity().setIJ(0,7,10);
1947 mesh.getNodalConnectivity().setIJ(0,8,13);
1948 mesh.getNodalConnectivity().setIJ(0,9,9);
1950 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1952 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1953 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
1955 mesh.convertToPolyTypes(eltsV);
1956 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1958 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1961 def testConvertDegeneratedCells1(self):
1962 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1963 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]
1964 mesh.allocateCells(4);
1965 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
1966 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
1967 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
1968 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
1969 mesh.finishInsertingCells();
1970 mesh.checkConsistencyLight();
1971 self.assertEqual(4,mesh.getNumberOfCells());
1972 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
1973 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
1974 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
1975 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
1976 f1=mesh.getMeasureField(True);
1977 mesh.convertDegeneratedCells();
1978 mesh.checkConsistencyLight();
1979 f2=mesh.getMeasureField(True);
1980 self.assertEqual(4,mesh.getNumberOfCells());
1981 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
1982 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
1983 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
1984 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
1986 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
1990 def testGetNodeIdsNearPoints1(self):
1991 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1992 coords=mesh.getCoords();
1993 tmp=DataArrayDouble.New();
1994 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
1995 tmp.setValues(vals,3,2);
1996 tmp2=DataArrayDouble.Aggregate(coords,tmp);
1997 mesh.setCoords(tmp2);
1998 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
1999 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
2000 self.assertEqual([4,9,11],c.getValues());
2001 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
2002 self.assertEqual([0,3,3,4],cI.getValues());
2003 self.assertEqual([4,9,11,6],c.getValues());
2004 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
2005 self.assertEqual([0,3,3,4],cI.getValues());
2006 self.assertEqual([4,9,11,6],c.getValues());
2007 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
2008 self.assertEqual([0,3,3,4],cI.getValues());
2009 self.assertEqual([4,9,11,6],c.getValues());
2010 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
2013 def testFieldCopyTinyAttrFrom1(self):
2014 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2016 f1.setTimeTolerance(1.e-5);
2017 f1.setDescription("f1Desc");
2018 f1.setTime(1.23,4,5);
2019 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2021 f2.setDescription("f2Desc");
2022 f2.setTime(6.78,9,10);
2023 f2.setTimeTolerance(4.556e-12);
2025 f1.copyTinyAttrFrom(f2);
2026 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2027 t,dt,it=f1.getTime()
2028 self.assertAlmostEqual(6.78,t,12);
2029 self.assertEqual(9,dt);
2030 self.assertEqual(10,it);
2031 self.assertTrue(f1.getName()=="f1");#name unchanged
2032 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2034 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2036 f1.setTimeTolerance(1.e-5);
2037 f1.setDescription("f1Desc");
2038 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2040 f2.setDescription("f2Desc");
2041 f2.setTimeTolerance(4.556e-12);
2043 f1.copyTinyAttrFrom(f2);
2044 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2045 self.assertTrue(f1.getName()=="f1");#name unchanged
2046 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2048 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
2050 f1.setTimeTolerance(1.e-5);
2051 f1.setDescription("f1Desc");
2052 f1.setTime(1.23,4,5);
2053 f1.setEndTime(5.43,2,1);
2054 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
2056 f2.setDescription("f2Desc");
2057 f2.setTimeTolerance(4.556e-12);
2058 f2.setTime(6.78,9,10);
2059 f2.setEndTime(10.98,7,6);
2061 f1.copyTinyAttrFrom(f2);
2062 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2063 self.assertTrue(f1.getName()=="f1");#name unchanged
2064 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2065 t,dt,it=f1.getTime()
2066 self.assertAlmostEqual(6.78,t,12);
2067 self.assertEqual(9,dt);
2068 self.assertEqual(10,it);
2069 t,dt,it=f1.getEndTime()
2070 self.assertAlmostEqual(10.98,t,12);
2071 self.assertEqual(7,dt);
2072 self.assertEqual(6,it);
2074 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2076 f1.setTimeTolerance(1.e-5);
2077 f1.setDescription("f1Desc");
2078 f1.setTime(1.23,4,5);
2079 f1.setEndTime(5.43,2,1);
2080 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2082 f2.setDescription("f2Desc");
2083 f2.setTimeTolerance(4.556e-12);
2084 f2.setTime(6.78,9,10);
2085 f2.setEndTime(10.98,7,6);
2087 f1.copyTinyAttrFrom(f2);
2088 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2089 self.assertTrue(f1.getName()=="f1");#name unchanged
2090 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2091 t,dt,it=f1.getTime()
2092 self.assertAlmostEqual(6.78,t,12);
2093 self.assertEqual(9,dt);
2094 self.assertEqual(10,it);
2095 t,dt,it=f1.getEndTime()
2096 self.assertAlmostEqual(10.98,t,12);
2097 self.assertEqual(7,dt);
2098 self.assertEqual(6,it);
2101 def testExtrudedMesh5(self):
2103 a=DataArrayDouble.New();
2104 a.setValues(coo1,4,1);
2105 b=MEDCouplingCMesh.New();
2107 c=b.buildUnstructured();
2108 self.assertEqual(1,c.getSpaceDimension());
2109 c.changeSpaceDimension(2);
2111 d=DataArrayDouble.New();
2114 e=MEDCouplingCMesh.New();
2116 f=e.buildUnstructured();
2117 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
2118 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 !
2119 h=g.fromPolarToCart();
2121 i=c.buildExtrudedMesh(f,1);
2122 self.assertEqual(52,i.getNumberOfNodes());
2123 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2124 self.assertTrue(tmp2);
2125 self.assertEqual(37,tmp3);
2126 i.convertDegeneratedCells();
2127 i.checkConsistencyLight();
2128 self.assertEqual(36,i.getNumberOfCells());
2129 self.assertEqual(37,i.getNumberOfNodes());
2130 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
2131 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
2132 expected1=[0.25,0.75,2.0625]
2133 j=i.getMeasureField(True);
2134 for ii in range(12):
2136 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
2139 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]
2140 m=i.computeCellCenterOfMass();
2142 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
2147 def testExtrudedMesh6(self):
2149 a=DataArrayDouble.New();
2150 a.setValues(coo1,4,1);
2151 b=MEDCouplingCMesh.New();
2153 c=b.buildUnstructured();
2154 self.assertEqual(1,c.getSpaceDimension());
2155 c.changeSpaceDimension(2);
2157 d=DataArrayDouble.New();
2160 e=MEDCouplingCMesh.New();
2162 f=e.buildUnstructured();
2163 d2=f.getCoords().applyFunc("x*x/2");
2165 f.changeSpaceDimension(2);
2168 f.rotate(center,None,pi/3);
2169 g=c.buildExtrudedMesh(f,0);
2170 g.checkConsistencyLight();
2171 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 ]
2172 f1=g.getMeasureField(True);
2174 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
2176 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]
2177 f2=g.computeCellCenterOfMass();
2179 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
2183 def testExtrudedMesh7(self):
2185 a=DataArrayDouble.New();
2186 a.setValues(coo1,4,1);
2187 b=MEDCouplingCMesh.New();
2189 c=b.buildUnstructured();
2190 self.assertEqual(1,c.getSpaceDimension());
2191 c.changeSpaceDimension(2);
2193 d=DataArrayDouble.New();
2196 e=MEDCouplingCMesh.New();
2198 f=e.buildUnstructured();
2199 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
2200 h=g.fromPolarToCart();
2202 i=c.buildExtrudedMesh(f,1);
2203 self.assertEqual(52,i.getNumberOfNodes());
2204 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2205 self.assertTrue(tmp2);
2206 self.assertEqual(37,tmp3);
2207 i.convertDegeneratedCells();
2210 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
2212 i.changeSpaceDimension(3);
2213 i3=i.buildExtrudedMesh(f,1);
2214 f2=i3.getMeasureField(True);
2215 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2216 self.assertTrue(tmp2);
2217 self.assertEqual(444,tmp3);
2218 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]
2219 for ii in range(12):
2220 for jj in range(36):
2221 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
2226 def testSimplexize1(self):
2227 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2228 m.convertToPolyTypes([3]);
2230 self.assertEqual(7,da.getNumberOfTuples());
2231 self.assertEqual(1,da.getNumberOfComponents());
2232 expected2=[0,0,1,2,3,4,4]
2234 self.assertEqual(expected2[i],da.getIJ(i,0));
2236 m.checkConsistencyLight();
2237 self.assertEqual(7,m.getNumberOfCells());
2238 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
2239 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
2240 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
2241 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
2242 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
2243 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
2244 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
2245 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
2246 f=m.getMeasureField(False);
2248 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
2250 types=m.getAllGeoTypes();
2251 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
2253 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2254 m.convertToPolyTypes([3]);
2256 self.assertEqual(7,da.getNumberOfTuples());
2257 self.assertEqual(1,da.getNumberOfComponents());
2259 self.assertEqual(expected2[i],da.getIJ(i,0));
2261 m.checkConsistencyLight();
2262 types=m.getAllGeoTypes();
2263 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
2264 self.assertEqual(7,m.getNumberOfCells());
2265 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
2266 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
2267 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
2268 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
2269 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
2270 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
2271 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
2272 f=m.getMeasureField(False);
2274 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
2278 def testSimplexize2(self):
2279 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2280 m.convertToPolyTypes([3]);
2281 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2283 arr=DataArrayDouble.New();
2284 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
2285 arr.setValues(arr1,5,2);
2288 f1.checkConsistencyLight();
2289 self.assertTrue(f1.simplexize(0));
2290 f1.checkConsistencyLight();
2291 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
2293 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
2295 self.assertTrue(not f1.simplexize(0));
2297 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
2302 def testDAMeld1(self):
2303 da1=DataArrayDouble.New();
2305 da2=DataArrayDouble.New();
2308 da1.fillWithValue(7.);
2310 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
2312 da1.setInfoOnComponent(0,"c0da1");
2313 da1.setInfoOnComponent(1,"c1da1");
2314 da3.setInfoOnComponent(0,"c0da3");
2315 da3.setInfoOnComponent(1,"c1da3");
2316 da3.setInfoOnComponent(2,"c2da3");
2318 da1C=da1.deepCopy();
2320 self.assertEqual(5,da1.getNumberOfComponents());
2321 self.assertEqual(7,da1.getNumberOfTuples());
2322 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
2323 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
2324 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
2325 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
2326 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
2328 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.]
2330 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
2333 dai1=da1C.convertToIntArr();
2334 dai3=da3.convertToIntArr();
2335 dai1.meldWith(dai3);
2336 self.assertEqual(5,dai1.getNumberOfComponents());
2337 self.assertEqual(7,dai1.getNumberOfTuples());
2338 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
2339 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
2340 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
2341 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
2342 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
2344 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
2346 # test of static method DataArrayDouble::meld
2347 da4=DataArrayDouble.Meld(da1C,da3);
2348 tmp=DataArrayDouble.Meld([da1C,da3]);
2349 self.assertTrue(da4.isEqual(tmp,1e-10))
2350 self.assertEqual(5,da4.getNumberOfComponents());
2351 self.assertEqual(7,da4.getNumberOfTuples());
2352 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
2353 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
2354 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
2355 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
2356 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
2358 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
2360 # test of static method DataArrayInt::meld
2361 dai1=da1C.convertToIntArr();
2362 dai4=DataArrayInt.Meld(dai1,dai3);
2363 tmp=DataArrayInt.Meld([dai1,dai3]);
2364 self.assertTrue(dai4.isEqual(tmp))
2365 self.assertEqual(5,dai4.getNumberOfComponents());
2366 self.assertEqual(7,dai4.getNumberOfTuples());
2367 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
2368 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
2369 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
2370 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
2371 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
2373 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
2377 def testFieldMeld1(self):
2378 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2379 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2381 da1=DataArrayDouble.New();
2382 arr1=[12.,23.,34.,45.,56.]
2383 da1.setValues(arr1,5,1);
2384 da1.setInfoOnComponent(0,"aaa");
2386 f1.setTime(3.4,2,1);
2387 f1.checkConsistencyLight();
2390 f2.setMesh(f1.getMesh());
2391 f2.checkConsistencyLight();
2392 f2.changeNbOfComponents(2,5.);
2394 f2.getArray().setInfoOnComponent(0,"bbb");
2395 f2.getArray().setInfoOnComponent(1,"ccc");
2396 f2.checkConsistencyLight();
2398 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
2399 f3.checkConsistencyLight();
2400 self.assertEqual(5,f3.getNumberOfTuples());
2401 self.assertEqual(3,f3.getNumberOfComponents());
2402 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
2403 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
2404 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
2405 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
2407 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
2409 time,dt,it=f3.getTime();
2410 self.assertAlmostEqual(3.4,time,14);
2411 self.assertEqual(2,dt);
2412 self.assertEqual(1,it);
2414 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
2415 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
2416 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
2417 f6.checkConsistencyLight();
2418 self.assertEqual(5,f6.getNumberOfTuples());
2419 self.assertEqual(3,f6.getNumberOfComponents());
2420 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
2421 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
2422 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
2424 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
2429 def testMergeNodes2(self):
2430 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2431 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2435 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
2436 da,b,newNbOfNodes=m3.mergeNodesCenter(0.01);
2437 self.assertEqual(9,m3.getNumberOfNodes());
2438 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]
2440 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
2445 def testMergeField2(self):
2446 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2447 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2449 arr=DataArrayDouble.New();
2451 arr.fillWithValue(2.);
2453 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2455 arr=DataArrayDouble.New();
2457 arr.fillWithValue(5.);
2459 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2461 arr=DataArrayDouble.New();
2463 arr.fillWithValue(7.);
2466 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
2467 self.assertEqual(15,f4.getMesh().getNumberOfCells());
2468 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.]
2470 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
2475 def testDAIBuildComplement1(self):
2476 a=DataArrayInt.New();
2478 a.setValues(tab,4,1);
2479 b=a.buildComplement(12);
2480 self.assertEqual(8,b.getNumberOfTuples());
2481 self.assertEqual(1,b.getNumberOfComponents());
2482 expected1=[0,2,4,5,6,9,10,11]
2484 self.assertEqual(expected1[i],b.getIJ(0,i));
2488 def testDAIBuildUnion1(self):
2489 a=DataArrayInt.New();
2491 a.setValues(tab1,4,1);
2492 c=DataArrayInt.New();
2494 c.setValues(tab2,5,1);
2496 self.assertEqual(7,b.getNumberOfTuples());
2497 self.assertEqual(1,b.getNumberOfComponents());
2498 expected1=[0,1,3,5,7,8,18]
2500 self.assertEqual(expected1[i],b.getIJ(0,i));
2502 b=DataArrayInt.BuildUnion([a,c]);
2503 self.assertEqual(7,b.getNumberOfTuples());
2504 self.assertEqual(1,b.getNumberOfComponents());
2505 expected1=[0,1,3,5,7,8,18]
2507 self.assertEqual(expected1[i],b.getIJ(0,i));
2511 def testDAIBuildIntersection1(self):
2512 a=DataArrayInt.New();
2514 a.setValues(tab1,4,1);
2515 c=DataArrayInt.New();
2517 c.setValues(tab2,5,1);
2518 b=a.buildIntersection(c);
2519 self.assertEqual(2,b.getNumberOfTuples());
2520 self.assertEqual(1,b.getNumberOfComponents());
2523 self.assertEqual(expected1[i],b.getIJ(0,i));
2525 b=DataArrayInt.BuildIntersection([a,c]);
2526 self.assertEqual(2,b.getNumberOfTuples());
2527 self.assertEqual(1,b.getNumberOfComponents());
2530 self.assertEqual(expected1[i],b.getIJ(0,i));
2534 def testDAIDeltaShiftIndex1(self):
2535 a=DataArrayInt.New();
2536 tab=[1,3,6,7,7,9,15]
2537 a.setValues(tab,7,1);
2538 b=a.deltaShiftIndex();
2539 self.assertEqual(6,b.getNumberOfTuples());
2540 self.assertEqual(1,b.getNumberOfComponents());
2541 expected1=[2,3,1,0,2,6]
2543 self.assertEqual(expected1[i],b.getIJ(0,i));
2547 def testDaDoubleSelectByTupleIdSafe1(self):
2548 a=DataArrayDouble.New();
2549 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]
2550 a.setValues(arr1,7,2);
2551 a.setInfoOnComponent(0,"toto");
2552 a.setInfoOnComponent(1,"tata");
2555 b=a.selectByTupleIdSafe(arr2);
2556 self.assertEqual(5,b.getNumberOfTuples());
2557 self.assertEqual(2,b.getNumberOfComponents());
2558 self.assertTrue(b.getInfoOnComponent(0)=="toto");
2559 self.assertTrue(b.getInfoOnComponent(1)=="tata");
2560 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
2562 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2565 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
2567 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
2569 c=DataArrayInt.New();
2570 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
2571 c.setValues(arr3,7,2);
2572 c.setInfoOnComponent(0,"toto");
2573 c.setInfoOnComponent(1,"tata");
2574 d=c.selectByTupleIdSafe(arr2);
2575 self.assertEqual(5,d.getNumberOfTuples());
2576 self.assertEqual(2,d.getNumberOfComponents());
2577 self.assertTrue(d.getInfoOnComponent(0)=="toto");
2578 self.assertTrue(d.getInfoOnComponent(1)=="tata");
2579 expected2=[5,15,3,13,1,11,7,17,6,16]
2581 self.assertEqual(expected2[i],d.getIJ(0,i));
2583 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
2584 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
2587 def testAreCellsIncludedIn1(self):
2588 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2590 m2=m.buildPartOfMySelf(pt,True);
2591 ret,tmp=m.areCellsIncludedIn(m2,0)
2592 self.assertTrue(ret);
2593 self.assertEqual(2,tmp.getNumberOfTuples());
2594 self.assertEqual(1,tmp.getNumberOfComponents());
2595 self.assertEqual(pt[0],tmp.getIJ(0,0));
2596 self.assertEqual(pt[1],tmp.getIJ(0,1));
2597 ret,tmp=m2.areCellsIncludedIn(m,0)
2598 self.assertTrue(not ret);
2599 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
2600 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
2601 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
2602 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
2605 def testSwigErrorProtection1(self):
2606 m=MEDCouplingDataForTest.build3DTargetMesh_1();
2607 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
2608 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
2609 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
2610 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
2611 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
2612 m2=m.buildPartOfMySelf([2,5],True)
2613 m3=m.buildPartOfMySelf((2,5),True)
2614 self.assertTrue(m2.isEqual(m3,1e-12))
2615 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
2616 da1=m.getCoords().keepSelectedComponents([1])
2617 da2=m.getCoords().keepSelectedComponents((1,))
2618 self.assertTrue(da1.isEqual(da2,1e-12))
2619 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
2622 def testDAIBuildSubstraction1(self):
2623 a=DataArrayInt.New()
2626 b=DataArrayInt.New()
2629 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
2632 def testBuildOrthogonalField2(self):
2633 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2634 d1=DataArrayInt.New();
2635 d2=DataArrayInt.New();
2636 d3=DataArrayInt.New();
2637 d4=DataArrayInt.New();
2638 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
2640 f1=m1.buildOrthogonalField();
2642 self.assertEqual(2,da1.getNumberOfComponents());
2643 self.assertEqual(13,da1.getNumberOfTuples());
2645 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.];
2647 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
2651 def testSwigErrorProtection2(self):
2652 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2654 c=m.getNodalConnectivity()
2655 ci=m.getNodalConnectivityIndex()
2657 self.assertEqual(2,coo.getNumberOfComponents());
2658 self.assertEqual(6,ci.getNumberOfTuples());
2659 self.assertEqual(23,c.getNumberOfTuples());
2660 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2661 f=m.getMeasureField(True)
2664 self.assertEqual(1,c.getNumberOfComponents());
2665 m=MEDCouplingCMesh.New()
2666 x=DataArrayDouble.New()
2667 x.setValues([1.,2.,4.],3,1)
2672 self.assertEqual(3,xx.getNumberOfTuples());
2674 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2675 f=m.getMeasureField(True)
2679 self.assertEqual(5,m2.getNumberOfCells());
2682 def testUMInsertNextCell1(self):
2683 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 ]
2684 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
2685 targetMesh=MEDCouplingUMesh.New();
2686 targetMesh.allocateCells(5);
2687 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
2688 targetMesh.setMeshDimension(2);
2689 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
2690 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
2691 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
2692 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
2693 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
2694 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
2695 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
2696 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
2697 targetMesh.finishInsertingCells();
2698 myCoords=DataArrayDouble.New();
2699 myCoords.setValues(targetCoords,9,2);
2700 targetMesh.setCoords(myCoords);
2701 targetMesh.checkConsistencyLight();
2704 def testFieldOperatorDivDiffComp1(self):
2705 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2706 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
2708 f1=m1.buildOrthogonalField();
2709 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
2710 arr=DataArrayDouble.New();
2711 arr.setValues(arr1,13,1);
2712 f2=MEDCouplingFieldDouble.New(ON_CELLS);
2715 f2.checkConsistencyLight();
2718 self.assertRaises(InterpKernelException,f2.__div__,f1)
2719 f3.checkConsistencyLight();
2721 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
2722 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
2723 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]
2725 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
2729 def testDARearrange1(self):
2730 da1=DataArrayInt.New();
2734 self.assertEqual(12,da1.getNbOfElems());
2735 self.assertEqual(1,da1.getNumberOfComponents());
2736 self.assertEqual(12,da1.getNumberOfTuples());
2738 self.assertEqual(12,da1.getNbOfElems());
2739 self.assertEqual(4,da1.getNumberOfComponents());
2740 self.assertEqual(3,da1.getNumberOfTuples());
2742 self.assertEqual(i,da1.getIJ(0,i));
2745 self.assertEqual(12,da1.getNbOfElems());
2746 self.assertEqual(6,da1.getNumberOfComponents());
2747 self.assertEqual(2,da1.getNumberOfTuples());
2749 self.assertEqual(i,da1.getIJ(0,i));
2751 self.assertRaises(InterpKernelException,da1.rearrange,7);
2754 self.assertEqual(12,da1.getNbOfElems());
2755 self.assertEqual(12,da1.getNumberOfComponents());
2756 self.assertEqual(1,da1.getNumberOfTuples());
2758 self.assertEqual(i,da1.getIJ(0,i));
2761 self.assertEqual(12,da1.getNbOfElems());
2762 self.assertEqual(3,da1.getNumberOfComponents());
2763 self.assertEqual(4,da1.getNumberOfTuples());
2765 self.assertEqual(i,da1.getIJ(0,i));
2767 da2=da1.convertToDblArr();
2768 st=da2.getHiddenCppPointer()
2770 self.assertEqual(12,da2.getNbOfElems());
2771 self.assertEqual(3,da2.getNumberOfComponents());
2772 self.assertEqual(4,da2.getNumberOfTuples());
2774 self.assertEqual(12,da2.getNbOfElems());
2775 self.assertEqual(4,da2.getNumberOfComponents());
2776 self.assertEqual(3,da2.getNumberOfTuples());
2778 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2781 self.assertEqual(12,da2.getNbOfElems());
2782 self.assertEqual(6,da2.getNumberOfComponents());
2783 self.assertEqual(2,da2.getNumberOfTuples());
2785 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2787 self.assertRaises(InterpKernelException,da2.rearrange,7);
2790 self.assertEqual(st,da2.getHiddenCppPointer())
2791 self.assertEqual(12,da2.getNbOfElems());
2792 self.assertEqual(1,da2.getNumberOfComponents());
2793 self.assertEqual(12,da2.getNumberOfTuples());
2795 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2798 self.assertEqual(12,da2.getNbOfElems());
2799 self.assertEqual(3,da2.getNumberOfComponents());
2800 self.assertEqual(4,da2.getNumberOfTuples());
2802 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2805 def testDARearrange2(self):
2806 da1=DataArrayInt.New();
2807 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
2808 da1.setValues(arr,4,3);
2809 s=da1.getDifferentValues();
2810 expected1=DataArrayInt([1,2,3,5])
2811 self.assertTrue(expected1.isEqual(s));
2814 def testSwigErrorProtection3(self):
2815 da=DataArrayInt.New()
2816 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
2817 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
2818 self.assertEqual(3,da.getNumberOfComponents());
2819 self.assertEqual(4,da.getNumberOfTuples());
2820 da=DataArrayInt.New()
2821 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
2822 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
2823 self.assertEqual(3,da.getNumberOfComponents());
2824 self.assertEqual(4,da.getNumberOfTuples());
2825 da.setValues((10*[1]+290*[2])[:12],4,3)
2826 self.assertEqual(10*[1]+[2,2],da.getValues())
2827 self.assertEqual(3,da.getNumberOfComponents());
2828 self.assertEqual(4,da.getNumberOfTuples());
2830 da=DataArrayDouble.New()
2831 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
2832 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
2833 self.assertEqual(3,da.getNumberOfComponents());
2834 self.assertEqual(4,da.getNumberOfTuples());
2835 da=DataArrayDouble.New()
2836 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
2837 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
2838 self.assertEqual(3,da.getNumberOfComponents());
2839 self.assertEqual(4,da.getNumberOfTuples());
2840 da.setValues((10*[1]+290*[2])[:12],4,3)
2841 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
2842 self.assertEqual(3,da.getNumberOfComponents());
2843 self.assertEqual(4,da.getNumberOfTuples());
2846 def testDAIBuildPermutationArr1(self):
2847 a=DataArrayInt.New()
2848 a.setValues([4,5,6,7,8],5,1)
2849 b=DataArrayInt.New()
2850 b.setValues([5,4,8,6,7],5,1)
2851 c=a.buildPermutationArr(b)
2852 self.assertEqual([1,0,4,2,3],c.getValues())
2853 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
2855 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
2856 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
2859 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
2860 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
2861 c=a.buildPermutationArr(b)
2862 self.assertEqual([1,3,4,2,3],c.getValues())
2863 d=b.convertToDblArr()
2866 self.assertEqual(expect3,b.getValues())
2868 self.assertEqual(5,d.getNumberOfTuples());
2869 self.assertEqual(1,d.getNumberOfComponents());
2871 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
2875 def testAreCellsIncludedIn2(self):
2877 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2878 m2=m.buildPartOfMySelf([],True);
2879 self.assertEqual(0,m2.getNumberOfCells());
2880 self.assertEqual(3,m2.getSpaceDimension());
2881 self.assertEqual(2,m2.getMeshDimension());
2883 test,tmp=m.areCellsIncludedIn(m2,0)
2884 self.assertTrue(test);
2885 self.assertEqual(myName,tmp.getName());
2886 self.assertEqual(0,tmp.getNumberOfTuples())
2887 self.assertEqual(1,tmp.getNumberOfComponents())
2890 def testUMeshGetPartBarycenterAndOwner1(self):
2891 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2893 part=DataArrayInt.New();
2894 part.setValues(part1,3,1);
2895 b=m1.getPartBarycenterAndOwner(part);
2896 self.assertEqual(2,b.getNumberOfComponents());
2897 self.assertEqual(3,b.getNumberOfTuples());
2898 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
2900 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2904 def testUMeshGetPartMeasureField1(self):
2905 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2907 part=DataArrayInt.New();
2908 part.setValues(part1,3,1);
2909 b=m1.getPartMeasureField(True,part);
2910 self.assertEqual(1,b.getNumberOfComponents());
2911 self.assertEqual(3,b.getNumberOfTuples());
2912 expected1=[0.125,0.25,0.25];
2914 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2918 def testUMeshBuildPartOrthogonalField1(self):
2919 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2920 m1.changeSpaceDimension(3);
2922 part=DataArrayInt.New();
2923 part.setValues(part1,3,1);
2924 b=m1.buildPartOrthogonalField(part);
2925 self.assertEqual(3,b.getArray().getNumberOfComponents());
2926 self.assertEqual(3,b.getArray().getNumberOfTuples());
2927 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
2929 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
2933 def testUMeshGetTypesOfPart1(self):
2934 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2936 p1=DataArrayInt.New()
2937 p1.setValues(part1,3,1)
2938 s=m1.getTypesOfPart(p1);
2939 self.assertEqual([NORM_QUAD4],s);
2941 p2=DataArrayInt.New()
2942 p2.setValues(part2,4,1)
2943 s=m1.getTypesOfPart(p2);
2944 self.assertEqual([NORM_TRI3],s);
2946 p3=DataArrayInt.New()
2947 p3.setValues(part3,3,1)
2948 s=m1.getTypesOfPart(p3);
2949 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
2952 def testUMeshKeepCellIdsByType1(self):
2953 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2955 p1=DataArrayInt.New()
2956 p1.setValues(part1,3,1)
2958 a=m1.keepCellIdsByType(NORM_TRI3,p1);
2959 self.assertEqual("p1",a.getName())
2960 self.assertEqual(1,a.getNumberOfComponents());
2961 self.assertEqual(0,a.getNumberOfTuples());
2964 p2=DataArrayInt.New()
2965 p2.setValues(part2,5,1)
2967 a=m1.keepCellIdsByType(NORM_TRI3,p2);
2968 self.assertEqual("p2",a.getName())
2969 self.assertEqual(1,a.getNumberOfComponents());
2970 self.assertEqual(2,a.getNumberOfTuples());
2971 self.assertEqual(2,a.getIJ(0,0));
2972 self.assertEqual(2,a.getIJ(1,0));
2974 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
2975 self.assertEqual("p2",a.getName())
2976 self.assertEqual(1,a.getNumberOfComponents());
2977 self.assertEqual(3,a.getNumberOfTuples());
2978 self.assertEqual(3,a.getIJ(0,0));
2979 self.assertEqual(0,a.getIJ(1,0));
2980 self.assertEqual(4,a.getIJ(2,0));
2983 def testSwigErrorDaIntSelectByTupleId1(self):
2984 a=DataArrayInt.New();
2985 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
2986 a.setValues(arr1,7,2);
2987 a.setInfoOnComponent(0,"toto");
2988 a.setInfoOnComponent(1,"tata");
2991 b=a.selectByTupleId(arr2);
2992 self.assertEqual(5,b.getNumberOfTuples());
2993 self.assertEqual(2,b.getNumberOfComponents());
2994 self.assertTrue(b.getInfoOnComponent(0)=="toto");
2995 self.assertTrue(b.getInfoOnComponent(1)=="tata");
2996 expected1=[5,15,3,13,1,11,7,17,6,16]
2997 self.assertEqual(expected1,b.getValues())
2999 a2=DataArrayInt.New()
3000 a2.setValues(arr2,5,1)
3001 b=a.selectByTupleId(a2);
3002 self.assertEqual(5,b.getNumberOfTuples());
3003 self.assertEqual(2,b.getNumberOfComponents());
3004 self.assertTrue(b.getInfoOnComponent(0)=="toto");
3005 self.assertTrue(b.getInfoOnComponent(1)=="tata");
3006 expected1=[5,15,3,13,1,11,7,17,6,16]
3007 self.assertEqual(expected1,b.getValues())
3010 def testSwigErrorRenum(self):
3011 da=DataArrayDouble.New()
3012 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
3013 d=DataArrayInt.New()
3014 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
3015 da.renumberInPlace(d)
3021 if __name__ == '__main__':