1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2024 CEA, EDF
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
23 from medcoupling import *
25 from math import pi,e,sqrt,cos,sin
26 from datetime import datetime
27 from MEDCouplingDataForTest import MEDCouplingDataForTest
28 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
30 class MEDCouplingBasicsTest2(unittest.TestCase):
31 def testMinMaxFields1(self):
32 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
33 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
36 array=DataArrayDouble.New();
37 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.]
38 array.setValues(arr1,mesh1.getNumberOfCells(),3);
40 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
43 array=DataArrayDouble.New();
44 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.]
45 array.setValues(arr2,mesh1.getNumberOfCells(),3);
49 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.]
51 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),9);
55 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.]
57 self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9);
62 def testApplyLin1(self):
63 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
64 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
66 array=DataArrayDouble.New();
67 arr=[7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.]
68 array.setValues(arr,mesh1.getNumberOfCells(),2);
72 expected1=[17.,107.,19.,108.,21.,109.,23.,110.,25.,111.,27.,112.,29.,113.,31.,114.,33.,115.,35.,116.]
74 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),9);
77 arr2=[2.,102.,3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
78 array=DataArrayDouble.New();
79 array.setValues(arr2,mesh1.getNumberOfCells(),2);
80 f1.setEndArray(array);
84 expected2=[17.,433.,19.,437.,21.,441.,23.,445.,25.,449.,27.,453.,29.,457.,31.,461.,33.,465.,35.,469.]
86 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),9);
88 expected3=[2.,413.,3.,417.,4.,421.,5.,425.,6.,429.,7.,433.,8.,437.,9.,441.,10.,445.,11.,449.]
90 self.assertAlmostEqual(expected3[i],f1.getEndArray().getIJ(0,i),9);
95 def testGetIdsInRange1(self):
96 mesh1=MEDCouplingDataForTest.build2DTargetMesh_3();
97 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
100 array=DataArrayDouble.New();
101 arr1=[2.,8.,6.,5.,11.,7.,9.,3.,10.,4.]
102 array.setValues(arr1,mesh1.getNumberOfCells(),1);
105 f1.checkConsistencyLight();
106 da=f1.findIdsInRange(2.9,7.1);
107 self.assertEqual(5,da.getNbOfElems());
108 expected1=[2,3,5,7,9]
109 self.assertEqual(expected1,list(da.getValues()));
110 da=f1.findIdsInRange(8.,12.);
111 self.assertEqual(4,da.getNbOfElems());
113 self.assertEqual(expected2,list(da.getValues()));
117 def testBuildSubPart1(self):
118 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
119 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
122 array=DataArrayDouble.New();
123 arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.]
124 array.setValues(arr1,mesh1.getNumberOfCells(),2);
130 self.assertEqual(3,f2.getNumberOfTuples());
131 self.assertEqual(2,f2.getNumberOfComponents());
132 expected1=[5.,105.,4.,104.,7.,107.]
134 self.assertAlmostEqual(f2.getIJ(0,i),expected1[i],12);
136 self.assertEqual(3,f2.getMesh().getNumberOfCells());
137 self.assertEqual(6,f2.getMesh().getNumberOfNodes());
138 self.assertEqual(2,f2.getMesh().getSpaceDimension());
139 self.assertEqual(2,f2.getMesh().getMeshDimension());
141 self.assertEqual(13,m2C.getNodalConnectivityArrayLen());
142 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]
144 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
146 expected3=[3,2,3,1,3,0,2,1,4,4,5,3,2]
147 self.assertEqual(expected3,list(m2C.getNodalConnectivity().getValues()));
149 self.assertEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
150 # Test with field on nodes.
151 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
154 array=DataArrayDouble.New();
155 arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.]
156 array.setValues(arr2,mesh1.getNumberOfNodes(),2);
159 f2=f1.buildSubPart(part2);
160 self.assertEqual(4,f2.getNumberOfTuples());
161 self.assertEqual(2,f2.getNumberOfComponents());
162 expected5=[4.,104.,5.,105.,7.,107.,8.,108.]
164 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
166 self.assertEqual(2,f2.getMesh().getNumberOfCells());
167 self.assertEqual(4,f2.getMesh().getNumberOfNodes());
168 self.assertEqual(2,f2.getMesh().getSpaceDimension());
169 self.assertEqual(2,f2.getMesh().getMeshDimension());
171 self.assertEqual(8,m2C.getNodalConnectivityArrayLen());
172 for i in range(8): # 8 is not an error
173 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
175 self.assertEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:]);
176 self.assertEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
177 self.assertEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
178 #idem previous because nodes of cell#4 are not fully present in part3
180 arrr=DataArrayInt.New();
181 arrr.setValues(part3,2,1);
182 f2=f1.buildSubPart(arrr);
183 self.assertEqual(4,f2.getNumberOfTuples());
184 self.assertEqual(2,f2.getNumberOfComponents());
186 self.assertAlmostEqual(f2.getIJ(0,i),expected5[i],12);
188 self.assertEqual(2,f2.getMesh().getNumberOfCells());
189 self.assertEqual(4,f2.getMesh().getNumberOfNodes());
190 self.assertEqual(2,f2.getMesh().getSpaceDimension());
191 self.assertEqual(2,f2.getMesh().getMeshDimension());
193 self.assertEqual(8,m2C.getNodalConnectivityArrayLen());
194 for i in range(8): # 8 is not an error
195 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
197 self.assertEqual(expected3[:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
198 self.assertEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[:4]);
199 self.assertEqual(expected4[:3],list(m2C.getNodalConnectivityIndex().getValues()));
202 f2=f1.buildSubPart(part4);
203 self.assertEqual(6,f2.getNumberOfTuples());
204 self.assertEqual(2,f2.getNumberOfComponents());
205 expected6=[4.,104.,5.,105.,7.,107.,8.,108.,10.,110.,11.,111.]
207 self.assertAlmostEqual(f2.getIJ(0,i),expected6[i],12);
209 self.assertEqual(3,f2.getMesh().getNumberOfCells());
210 self.assertEqual(6,f2.getMesh().getNumberOfNodes());
211 self.assertEqual(2,f2.getMesh().getSpaceDimension());
212 self.assertEqual(2,f2.getMesh().getMeshDimension());
214 self.assertEqual(13,m2C.getNodalConnectivityArrayLen());
216 self.assertAlmostEqual(expected2[i],m2C.getCoords().getIJ(0,i),12);
218 self.assertEqual(expected3[0:4],list(m2C.getNodalConnectivity().getValues())[4:8]);
219 self.assertEqual(expected3[4:8],list(m2C.getNodalConnectivity().getValues())[0:4]);
220 self.assertEqual(expected3[8:13],list(m2C.getNodalConnectivity().getValues())[8:13]);
221 self.assertEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues()));
224 def testDoublyContractedProduct1(self):
225 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
226 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
228 array=DataArrayDouble.New();
229 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]
230 array.setValues(arr1,mesh1.getNumberOfCells(),6);
232 f1.checkConsistencyLight();
234 f2=f1.doublyContractedProduct();
235 f2.checkConsistencyLight();
236 self.assertEqual(1,f2.getNumberOfComponents());
237 self.assertEqual(5,f2.getNumberOfTuples());
239 self.assertAlmostEqual(3906.56,f2.getIJ(i,0),9);
244 def testDeterminant1(self):
245 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
246 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
248 f1.setEndTime(3.8,7,3);
250 array=DataArrayDouble.New();
251 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]
252 array.setValues(arr1,mesh1.getNumberOfCells(),4);
255 f1.checkConsistencyLight();
257 f2.checkConsistencyLight();
258 self.assertEqual(CONST_ON_TIME_INTERVAL,f2.getTimeDiscretization());
259 self.assertEqual(1,f2.getNumberOfComponents());
260 self.assertEqual(5,f2.getNumberOfValues());
262 self.assertAlmostEqual(-2.42,f2.getIJ(i,0),13);
264 #6 components multi arrays with end array not defined
265 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
267 f1.setEndTime(3.8,7,3);
269 array=DataArrayDouble.New();
270 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,
271 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]
272 array.setValues(arr2,mesh1.getNumberOfNodes(),6);
274 self.assertRaises(InterpKernelException,f1.checkConsistencyLight);#no end array specified !
277 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
278 self.assertEqual(1,f2.getArray().getNumberOfComponents());
279 self.assertEqual(9,f2.getNumberOfTuples());
281 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
283 #6 components multi arrays with end array defined
284 array=DataArrayDouble.New();
285 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,
286 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]
287 array.setValues(arr3,mesh1.getNumberOfNodes(),6);
288 f1.setEndArray(array);
289 f1.checkConsistencyLight();
291 f2.checkConsistencyLight();
292 self.assertEqual(LINEAR_TIME,f2.getTimeDiscretization());
293 self.assertEqual(1,f2.getNumberOfComponents());
294 self.assertEqual(9,f2.getNumberOfTuples());
295 time2,it,order=f2.getTime()
296 self.assertAlmostEqual(2.3,time2,12);
297 self.assertEqual(5,it);
298 self.assertEqual(6,order);
299 time2,it,order=f2.getEndTime()
300 self.assertAlmostEqual(3.8,time2,12);
301 self.assertEqual(7,it);
302 self.assertEqual(3,order);
304 self.assertAlmostEqual(137.335,f2.getIJ(i,0),10);
305 self.assertAlmostEqual(1289.685,f2.getEndArray().getIJ(i,0),9);
308 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
309 f1.setTime(7.8,10,2);
311 array=DataArrayDouble.New();
312 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]
313 array.setValues(arr4,mesh1.getNumberOfCells(),9);
316 f1.checkConsistencyLight();
318 f2.checkConsistencyLight();
319 self.assertEqual(ONE_TIME,f2.getTimeDiscretization());
320 self.assertEqual(1,f2.getNumberOfComponents());
321 self.assertEqual(5,f2.getNumberOfTuples());
322 time2,it,order=f2.getTime()
323 self.assertAlmostEqual(7.8,time2,12);
324 self.assertEqual(10,it);
325 self.assertEqual(2,order);
327 self.assertAlmostEqual(3.267,f2.getIJ(i,0),13);
331 def testEigenValues1(self):
332 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
333 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
335 array=DataArrayDouble.New();
336 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]
337 array.setValues(arr1,mesh1.getNumberOfCells(),6);
339 f1.checkConsistencyLight();
342 f2.checkConsistencyLight();
343 self.assertEqual(3,f2.getNumberOfComponents());
344 self.assertEqual(5,f2.getNumberOfTuples());
345 expected1=[13.638813677891717,-4.502313844635971,-2.2364998332557486]
347 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
348 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
349 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
353 def testEigenVectors1(self):
354 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
355 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
357 array=DataArrayDouble.New();
358 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]
359 array.setValues(arr1,mesh1.getNumberOfCells(),6);
361 f1.checkConsistencyLight();
363 f2=f1.eigenVectors();
364 f2.checkConsistencyLight();
365 self.assertEqual(9,f2.getNumberOfComponents());
366 self.assertEqual(5,f2.getNumberOfTuples());
367 expected1=[0.5424262364180696, 0.5351201064614425, 0.6476266283176001,#eigenvect 0
368 0.7381111277307373, 0.06458838384003074, -0.6715804522117897,#eigenvect 1
369 -0.4012053603397987, 0.8423032781211455, -0.3599436712889738#eigenvect 2
372 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
373 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
374 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
375 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
376 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
377 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
378 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
379 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
380 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
385 def testInverse1(self):
386 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
387 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
389 array=DataArrayDouble.New();
390 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]
391 array.setValues(arr1,mesh1.getNumberOfCells(),9);
393 f1.checkConsistencyLight();
396 f2.checkConsistencyLight();
397 self.assertEqual(9,f2.getNumberOfComponents());
398 self.assertEqual(5,f2.getNumberOfTuples());
399 expected1=[-2.6538108356290113, 2.855831037649208, -1.1111111111111067, 3.461891643709813, -4.775022956841121, 2.2222222222222143, -1.1111111111111054, 2.222222222222214, -1.1111111111111072]
401 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
402 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
403 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
404 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
405 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
406 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
407 self.assertAlmostEqual(expected1[6],f2.getIJ(i,6),13);
408 self.assertAlmostEqual(expected1[7],f2.getIJ(i,7),13);
409 self.assertAlmostEqual(expected1[8],f2.getIJ(i,8),13);
412 array=DataArrayDouble.New();
413 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]
414 array.setValues(arr3,mesh1.getNumberOfCells(),6);
416 f1.checkConsistencyLight();
419 f2.checkConsistencyLight();
420 self.assertEqual(6,f2.getNumberOfComponents());
421 self.assertEqual(5,f2.getNumberOfTuples());
422 expected3=[-0.3617705098531818, -0.8678630828458127, -0.026843764174972983, 0.5539957431465833, 0.13133439560823013, -0.05301294502145887]
424 self.assertAlmostEqual(expected3[0],f2.getIJ(i,0),13);
425 self.assertAlmostEqual(expected3[1],f2.getIJ(i,1),13);
426 self.assertAlmostEqual(expected3[2],f2.getIJ(i,2),13);
427 self.assertAlmostEqual(expected3[3],f2.getIJ(i,3),13);
428 self.assertAlmostEqual(expected3[4],f2.getIJ(i,4),13);
429 self.assertAlmostEqual(expected3[5],f2.getIJ(i,5),13);
432 array=DataArrayDouble.New();
433 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]
434 array.setValues(arr2,mesh1.getNumberOfCells(),4);
436 f1.checkConsistencyLight();
439 f2.checkConsistencyLight();
440 self.assertEqual(4,f2.getNumberOfComponents());
441 self.assertEqual(5,f2.getNumberOfTuples());
442 expected2=[-1.8595041322314059, 0.9504132231404963, 1.404958677685951, -0.49586776859504156]
444 self.assertAlmostEqual(expected2[0],f2.getIJ(i,0),13);
445 self.assertAlmostEqual(expected2[1],f2.getIJ(i,1),13);
446 self.assertAlmostEqual(expected2[2],f2.getIJ(i,2),13);
447 self.assertAlmostEqual(expected2[3],f2.getIJ(i,3),13);
452 def testTrace1(self):
453 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
454 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
456 array=DataArrayDouble.New();
457 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]
458 array.setValues(arr1,mesh1.getNumberOfCells(),9);
460 f1.checkConsistencyLight();
463 f2.checkConsistencyLight();
464 self.assertEqual(1,f2.getNumberOfComponents());
465 self.assertEqual(5,f2.getNumberOfTuples());
467 self.assertAlmostEqual(15.9,f2.getIJ(i,0),13);
470 array=DataArrayDouble.New();
471 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]
472 array.setValues(arr3,mesh1.getNumberOfCells(),6);
474 f1.checkConsistencyLight();
477 f2.checkConsistencyLight();
478 self.assertEqual(1,f2.getNumberOfComponents());
479 self.assertEqual(5,f2.getNumberOfTuples());
481 self.assertAlmostEqual(25.8,f2.getIJ(i,0),13);
484 array=DataArrayDouble.New();
485 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]
486 array.setValues(arr2,mesh1.getNumberOfCells(),4);
488 f1.checkConsistencyLight();
491 f2.checkConsistencyLight();
492 self.assertEqual(1,f2.getNumberOfComponents());
493 self.assertEqual(5,f2.getNumberOfTuples());
495 self.assertAlmostEqual(5.7,f2.getIJ(i,0),13);
500 def testDeviator1(self):
501 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
502 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
504 array=DataArrayDouble.New();
505 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]
506 array.setValues(arr1,mesh1.getNumberOfCells(),6);
508 f1.checkConsistencyLight();
511 f2.checkConsistencyLight();
512 self.assertEqual(6,f2.getNumberOfComponents());
513 self.assertEqual(5,f2.getNumberOfTuples());
514 expected1=[-1.1,0.,1.1,4.5,5.6,6.7]
516 self.assertAlmostEqual(expected1[0],f2.getIJ(i,0),13);
517 self.assertAlmostEqual(expected1[1],f2.getIJ(i,1),13);
518 self.assertAlmostEqual(expected1[2],f2.getIJ(i,2),13);
519 self.assertAlmostEqual(expected1[3],f2.getIJ(i,3),13);
520 self.assertAlmostEqual(expected1[4],f2.getIJ(i,4),13);
521 self.assertAlmostEqual(expected1[5],f2.getIJ(i,5),13);
526 def testMagnitude1(self):
527 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
528 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
530 array=DataArrayDouble.New();
531 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]
532 array.setValues(arr1,mesh1.getNumberOfCells(),5);
534 f1.checkConsistencyLight();
537 f2.checkConsistencyLight();
538 self.assertEqual(1,f2.getNumberOfComponents());
539 self.assertEqual(5,f2.getNumberOfTuples());
541 self.assertAlmostEqual(8.3606219864313918,f2.getIJ(i,0),13);
546 def testMaxPerTuple1(self):
547 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
548 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
550 array=DataArrayDouble.New();
551 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]
552 array.setValues(arr1,mesh1.getNumberOfCells(),5);
554 f1.checkConsistencyLight();
557 f2.checkConsistencyLight();
558 self.assertEqual(1,f2.getNumberOfComponents());
559 self.assertEqual(5,f2.getNumberOfTuples());
561 self.assertAlmostEqual(5.6,f2.getIJ(i,0),13);
564 d2,d2I=array.maxPerTupleWithCompoId()
565 self.assertEqual(1,d2.getNumberOfComponents());
566 self.assertEqual(5,d2.getNumberOfTuples());
568 self.assertAlmostEqual(5.6,d2.getIJ(i,0),13);
570 self.assertTrue(d2I.isEqual(DataArrayInt([4,3,2,0,1])))
573 def testChangeNbOfComponents(self):
574 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
575 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
577 array=DataArrayDouble.New();
578 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]
579 array.setValues(arr1,mesh1.getNumberOfCells(),5);
581 f1.checkConsistencyLight();
583 f1.changeNbOfComponents(3,7.77);
584 f1.checkConsistencyLight();
585 self.assertEqual(3,f1.getNumberOfComponents());
586 self.assertEqual(5,f1.getNumberOfTuples());
587 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]
589 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),13);
591 f1.changeNbOfComponents(4,7.77);
592 f1.checkConsistencyLight();
593 self.assertEqual(4,f1.getNumberOfComponents());
594 self.assertEqual(5,f1.getNumberOfTuples());
595 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]
597 self.assertAlmostEqual(expected2[i],f1.getIJ(0,i),13);
602 def testSortPerTuple1(self):
603 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
604 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
606 array=DataArrayDouble.New();
607 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]
608 array.setValues(arr1,mesh1.getNumberOfCells(),5);
610 f1.checkConsistencyLight();
612 f1.sortPerTuple(True);
613 f1.checkConsistencyLight();
614 self.assertEqual(5,f1.getNumberOfComponents());
615 self.assertEqual(5,f1.getNumberOfTuples());
617 self.assertAlmostEqual(arr1[0],f1.getIJ(i,0),13);
618 self.assertAlmostEqual(arr1[1],f1.getIJ(i,1),13);
619 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
620 self.assertAlmostEqual(arr1[3],f1.getIJ(i,3),13);
621 self.assertAlmostEqual(arr1[4],f1.getIJ(i,4),13);
624 f1.sortPerTuple(False);
625 f1.checkConsistencyLight();
626 self.assertEqual(5,f1.getNumberOfComponents());
627 self.assertEqual(5,f1.getNumberOfTuples());
629 self.assertAlmostEqual(arr1[4],f1.getIJ(i,0),13);
630 self.assertAlmostEqual(arr1[3],f1.getIJ(i,1),13);
631 self.assertAlmostEqual(arr1[2],f1.getIJ(i,2),13);
632 self.assertAlmostEqual(arr1[1],f1.getIJ(i,3),13);
633 self.assertAlmostEqual(arr1[0],f1.getIJ(i,4),13);
638 def testIsEqualWithoutConsideringStr1(self):
639 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
640 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
642 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
643 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
645 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
646 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
647 da1,da2=mesh1.checkGeoEquivalWith(mesh2,2,1e-12);
648 self.assertRaises(InterpKernelException,mesh1.checkGeoEquivalWith,mesh2,0,1e-12);
650 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
651 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
652 mesh2.getCoords().setInfoOnComponent(0,"tty");
653 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
654 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
655 mesh2.getCoords().setInfoOnComponent(0,"");
656 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
657 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
658 mesh2.getCoords().setInfoOnComponent(1,"tty");
659 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
660 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
661 mesh2.getCoords().setInfoOnComponent(1,"");
662 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
663 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
664 tmp=mesh2.getCoords().getIJ(0,3);
665 mesh2.getCoords().setIJ(0,3,9999.);
666 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
667 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
668 mesh2.getCoords().setIJ(0,3,tmp);
669 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
670 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
671 tmp2=mesh2.getNodalConnectivity().getIJ(0,4);
672 mesh2.getNodalConnectivity().setIJ(0,4,0);
673 self.assertTrue(not mesh1.isEqual(mesh2,1e-12));
674 self.assertTrue(not mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
675 mesh2.getNodalConnectivity().setIJ(0,4,tmp2);
676 self.assertTrue(mesh1.isEqual(mesh2,1e-12));
677 self.assertTrue(mesh1.isEqualWithoutConsideringStr(mesh2,1e-12));
679 f1=mesh1.getMeasureField(True);
680 f2=mesh2.getMeasureField(True);
681 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
682 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
684 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
685 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
687 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
688 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
690 f2.getArray().setInfoOnComponent(0,"eee");
691 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
692 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
693 f2.getArray().setInfoOnComponent(0,"");
694 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
695 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
697 f2.getArray().setIJ(1,0,0.123);
698 self.assertTrue(not f1.isEqual(f2,1e-12,1e-12));
699 self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
700 f2.getArray().setIJ(1,0,0.125);
701 self.assertTrue(f1.isEqual(f2,1e-12,1e-12));
702 self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
706 def testGetNodeIdsOfCell1(self):
707 mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
708 li=mesh1.getNodeIdsOfCell(1)
710 self.assertEqual(expected1,list(li))
711 li=mesh1.getCoordinatesOfNode(4)
712 self.assertEqual(2,len(li))
713 self.assertAlmostEqual(0.2,li[0],13);
714 self.assertAlmostEqual(0.2,li[1],13);
715 li=mesh1.getCoords().getValuesAsTuple()
716 self.assertEqual(9,len(li))
717 li2=mesh1.getNodalConnectivityIndex().getValuesAsTuple()
718 self.assertEqual(6,len(li2))
721 def testGetEdgeRatioField1(self):
722 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
723 m1.setTime(3.4,5,6); m1.setTimeUnit("us");
724 f1=m1.getEdgeRatioField();
725 self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2])
726 self.assertEqual("us",f1.getTimeUnit())
727 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
728 self.assertEqual(5,f1.getNumberOfTuples());
729 self.assertEqual(1,f1.getNumberOfComponents());
730 expected1=[1.,1.4142135623730951, 1.4142135623730951,1.,1.]
732 self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),14);
735 m1=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
736 f1=m1.getEdgeRatioField();
737 self.assertEqual(m1.getNumberOfCells(),f1.getNumberOfTuples());
738 self.assertEqual(5,f1.getNumberOfTuples());
739 self.assertEqual(1,f1.getNumberOfComponents());
740 expected2=[1.4142135623730951, 1.7320508075688772, 1.7320508075688772, 1.4142135623730951, 1.4142135623730951]
742 self.assertAlmostEqual(expected2[i],f1.getIJ(i,0),14);
746 def testFillFromAnalytic3(self):
747 m=MEDCouplingDataForTest.build2DTargetMesh_1()
748 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME)
749 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"y+x");
751 f1.setName("myField");
752 f1.fillFromAnalytic(1,"y+x");
753 f1.checkConsistencyLight();
754 self.assertEqual(f1.getName(),"myField");
755 self.assertEqual(f1.getTypeOfField(),ON_CELLS);
756 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
757 self.assertEqual(1,f1.getNumberOfComponents());
758 self.assertEqual(5,f1.getNumberOfTuples());
759 values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9]
760 tmp=f1.getArray().getValues();
761 self.assertEqual(len(values1),len(tmp))
762 for i in range(len(values1)):
763 self.assertTrue(abs(values1[i]-tmp[i])<1.e-12);
766 f1=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL)
768 f1.fillFromAnalytic(1,"y+2*x");
769 f1.setEndTime(1.2,3,4);
770 f1.checkConsistencyLight();
771 self.assertEqual(f1.getTypeOfField(),ON_NODES);
772 self.assertEqual(f1.getTimeDiscretization(),CONST_ON_TIME_INTERVAL);
773 self.assertEqual(1,f1.getNumberOfComponents());
774 self.assertEqual(9,f1.getNumberOfTuples());
775 values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
776 tmp=f1.getArray().getValues();
777 self.assertEqual(len(values2),len(tmp))
778 for i in range(len(values2)):
779 self.assertTrue(abs(values2[i]-tmp[i])<1.e-12);
781 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
783 f1.fillFromAnalytic(1,"2.*x+y");
784 f1.setEndTime(1.2,3,4);
785 f1.checkConsistencyLight();
786 self.assertEqual(f1.getTypeOfField(),ON_NODES);
787 self.assertEqual(f1.getTimeDiscretization(),LINEAR_TIME);
788 self.assertEqual(1,f1.getNumberOfComponents());
789 self.assertEqual(9,f1.getNumberOfTuples());
790 tmp=f1.getArray().getValues();
791 values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1]
792 self.assertEqual(len(values2Bis),len(tmp))
793 for i in range(len(values2Bis)):
794 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
796 tmp=f1.getEndArray().getValues();
797 self.assertEqual(len(values2Bis),len(tmp))
798 for i in range(len(values2Bis)):
799 self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12);
802 f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME);
804 f1.fillFromAnalytic(2,"(x+y)*IVec+2*(x+y)*JVec");
805 f1.checkConsistencyLight();
806 self.assertEqual(f1.getTypeOfField(),ON_NODES);
807 self.assertEqual(f1.getTimeDiscretization(),ONE_TIME);
808 self.assertEqual(2,f1.getNumberOfComponents());
809 self.assertEqual(9,f1.getNumberOfTuples());
810 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]
811 tmp=f1.getArray().getValues();
812 self.assertEqual(len(values3),len(tmp))
813 for i in range(len(values3)):
814 self.assertTrue(abs(values3[i]-tmp[i])<1.e-12);
816 values4=f1.accumulate();
817 self.assertTrue(abs(3.6-values4[0])<1.e-12);
818 self.assertTrue(abs(7.2-values4[1])<1.e-12);
819 values4=f1.integral(True);
820 self.assertTrue(abs(0.4-values4[0])<1.e-12);
821 self.assertTrue(abs(0.8-values4[1])<1.e-12);
823 f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
825 self.assertRaises(InterpKernelException,f1.fillFromAnalytic,1,"1./(x-0.2)");
828 def testFieldDoubleOpEqual1(self):
829 m=MEDCouplingDataForTest.build2DTargetMesh_1();
830 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
831 self.assertRaises(InterpKernelException,f1.assign,0.07);
834 f1.checkConsistencyLight();
835 self.assertEqual(1,f1.getNumberOfComponents());
836 self.assertEqual(5,f1.getNumberOfTuples());
838 self.assertAlmostEqual(0.07,f1.getIJ(i,0),16);
841 f1.checkConsistencyLight();
842 self.assertEqual(1,f1.getNumberOfComponents());
843 self.assertEqual(5,f1.getNumberOfTuples());
845 self.assertAlmostEqual(0.09,f1.getIJ(i,0),16);
848 f1=MEDCouplingFieldDouble.New(ON_NODES,LINEAR_TIME);
849 f1.setEndTime(4.5,2,3);
852 f1.checkConsistencyLight();
853 self.assertEqual(1,f1.getNumberOfComponents());
854 self.assertEqual(9,f1.getNumberOfTuples());
856 self.assertAlmostEqual(0.08,f1.getIJ(i,0),16);
858 self.assertEqual(1,f1.getEndArray().getNumberOfComponents());
859 self.assertEqual(9,f1.getEndArray().getNumberOfTuples());
861 self.assertAlmostEqual(0.08,f1.getEndArray().getIJ(i,0),16);
865 def testAreaBary3D2(self):
866 coordsForHexa8=[-75.45749305371, 180.95495078401, 39.515472018008,
867 -9.755591679144, 23.394927935279, 5.108794294848,
868 14.337630157832, 61.705351002702, 160.42422501908,
869 -27.273893776752, 167.567731083961, 192.830034145464,
870 99.857193154796,264.499264735586,-8.287335493412,
871 144.939882761126,156.38626563134,-31.896173894226,
872 161.34096835726,182.4654895809,73.832387065572,
873 132.680430393685,255.37973247196,96.15235602819];
874 volHexa8=3258520.29637466;
875 baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
877 coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
878 8.461744647847,76.653979804423,165.00018874933,
879 -27.273893776752,167.567731083961,192.830034145464,
880 106.586501038965,262.629609408327,13.124533008813,
881 155.465082847275,197.414118382622,78.408350795821,
882 132.680430393685,255.37973247196,96.15235602819];
883 volPenta6=944849.868507338;
884 baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
886 coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
887 -27.273893776752,167.567731083961,192.830034145464,
888 8.461744647847,76.653979804423,165.00018874933,
889 155.465082847275,197.414118382622,78.408350795821,
890 -68.199829618726,178.938498373416,62.608505919588];
891 volPyra5=756943.92980254;
892 baryPyra5=[29.204294116618,172.540129749156,118.01035951483]
893 mesh=MEDCouplingUMesh.New("Bary3D2",3);
894 coo=DataArrayDouble.New();
895 tmp=coordsForHexa8+coordsForPenta6+coordsForPyra5
896 coo.setValues(tmp,19,3);
899 tmpConn=[0,1,2,3,4,5,6,7]
900 mesh.allocateCells(3);
901 self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8])
902 mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8])
903 mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn])
904 mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn])
905 mesh.finishInsertingCells();
906 mesh.checkConsistencyLight();
907 mesh.mergeNodes(1e-7)
908 self.assertEqual(12,mesh.getNumberOfNodes());
909 vols=mesh.getMeasureField(True);
910 self.assertEqual(3,vols.getNumberOfTuples());
911 self.assertEqual(1,vols.getNumberOfComponents());
912 self.assertAlmostEqual(volHexa8,vols.getIJ(0,0),6);
913 self.assertAlmostEqual(volPenta6,vols.getIJ(1,0),7);
914 self.assertAlmostEqual(volPyra5,vols.getIJ(2,0),7);
915 bary=mesh.computeCellCenterOfMass();
916 self.assertEqual(3,bary.getNumberOfTuples());
917 self.assertEqual(3,bary.getNumberOfComponents());
918 self.assertAlmostEqual(baryHexa8[0],bary.getIJ(0,0),11);
919 self.assertAlmostEqual(baryHexa8[1],bary.getIJ(0,1),11);
920 self.assertAlmostEqual(baryHexa8[2],bary.getIJ(0,2),11);
921 self.assertAlmostEqual(baryPenta6[0],bary.getIJ(1,0),11);
922 self.assertAlmostEqual(baryPenta6[1],bary.getIJ(1,1),11);
923 self.assertAlmostEqual(baryPenta6[2],bary.getIJ(1,2),11);
924 self.assertAlmostEqual(baryPyra5[0],bary.getIJ(2,0),11);
925 self.assertAlmostEqual(baryPyra5[1],bary.getIJ(2,1),11);
926 self.assertAlmostEqual(baryPyra5[2],bary.getIJ(2,2),11);
929 def testGetMeasureFieldCMesh1(self):
930 m=MEDCouplingCMesh.New();
931 da=DataArrayDouble.New();
932 discX=[2.3,3.4,5.8,10.2]
933 discY=[12.3,23.4,45.8]
934 discZ=[-0.7,1.2,1.25,2.13,2.67]
935 da.setValues(discX,4,1);
937 m.checkConsistencyLight();
938 self.assertEqual(4,m.getNumberOfNodes());
939 self.assertEqual(3,m.getNumberOfCells());
940 self.assertEqual(1,m.getSpaceDimension());
941 f=m.getMeasureField(True);
942 self.assertEqual(3,f.getNumberOfTuples());
943 self.assertEqual(1,f.getNumberOfComponents());
944 expected1=[1.1,2.4,4.4]
946 self.assertAlmostEqual(expected1[i],f.getIJ(i,0),12);
948 coords=m.getCoordinatesAndOwner();
949 self.assertEqual(4,coords.getNumberOfTuples());
950 self.assertEqual(1,coords.getNumberOfComponents());
952 self.assertAlmostEqual(discX[i],coords.getIJ(i,0),12);
954 coords=m.computeCellCenterOfMass();
955 self.assertEqual(3,coords.getNumberOfTuples());
956 self.assertEqual(1,coords.getNumberOfComponents());
957 expected1_3=[2.85,4.6,8.]
959 self.assertAlmostEqual(expected1_3[i],coords.getIJ(i,0),12);
962 da=DataArrayDouble.New();
963 da.setValues(discY,3,1);
965 m.checkConsistencyLight();
966 self.assertEqual(12,m.getNumberOfNodes());
967 self.assertEqual(6,m.getNumberOfCells());
968 self.assertEqual(2,m.getSpaceDimension());
969 f=m.getMeasureField(True);
970 self.assertEqual(6,f.getNumberOfTuples());
971 self.assertEqual(1,f.getNumberOfComponents());
972 expected2=[12.21,26.64,48.84,24.64,53.76,98.56]
974 self.assertAlmostEqual(expected2[i],f.getIJ(i,0),12);
976 coords=m.getCoordinatesAndOwner();
977 self.assertEqual(12,coords.getNumberOfTuples());
978 self.assertEqual(2,coords.getNumberOfComponents());
979 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]
981 self.assertAlmostEqual(expected2_2[i],coords.getIJ(0,i),12);
983 coords=m.computeCellCenterOfMass();
984 self.assertEqual(6,coords.getNumberOfTuples());
985 self.assertEqual(2,coords.getNumberOfComponents());
986 expected2_3=[2.85,17.85,4.6,17.85,8.,17.85, 2.85,34.6,4.6,34.6,8.,34.6]
988 self.assertAlmostEqual(expected2_3[i],coords.getIJ(0,i),12);
991 da=DataArrayDouble.New();
992 da.setValues(discZ,5,1);
994 m.checkConsistencyLight();
995 self.assertEqual(60,m.getNumberOfNodes());
996 self.assertEqual(24,m.getNumberOfCells());
997 self.assertEqual(3,m.getSpaceDimension());
998 f=m.getMeasureField(True);
999 self.assertEqual(24,f.getNumberOfTuples());
1000 self.assertEqual(1,f.getNumberOfComponents());
1001 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]
1003 self.assertAlmostEqual(expected3[i],f.getIJ(i,0),12);
1005 coords=m.getCoordinatesAndOwner();
1006 self.assertEqual(60,coords.getNumberOfTuples());
1007 self.assertEqual(3,coords.getNumberOfComponents());
1009 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,
1010 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,
1011 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,
1012 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,
1013 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];
1014 for i in range(180):
1015 self.assertAlmostEqual(expected3_2[i],coords.getIJ(0,i),12);
1017 coords=m.computeCellCenterOfMass();
1018 self.assertEqual(24,coords.getNumberOfTuples());
1019 self.assertEqual(3,coords.getNumberOfComponents());
1021 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,
1022 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,
1023 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,
1024 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];
1026 self.assertAlmostEqual(expected3_3[i],coords.getIJ(0,i),12);
1030 def testFieldDoubleZipCoords1(self):
1031 m=MEDCouplingDataForTest.build2DTargetMeshMergeNode_1();
1032 f=m.fillFromAnalytic(ON_NODES,2,"x*2.");
1033 f.getArray().setInfoOnComponent(0,"titi");
1034 f.getArray().setInfoOnComponent(1,"tutu");
1035 f.checkConsistencyLight();
1036 self.assertEqual(18,f.getNumberOfTuples());
1037 self.assertEqual(2,f.getNumberOfComponents());
1038 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]
1040 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
1042 self.assertTrue(f.zipCoords());
1043 f.checkConsistencyLight();
1044 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]
1046 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1048 self.assertTrue(not f.zipCoords());
1049 f.checkConsistencyLight();
1051 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1053 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
1054 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
1057 def testFieldDoubleZipConnectivity1(self):
1058 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1059 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
1061 m3_1=m2.buildPartOfMySelf(cells1,True);
1063 m4=MEDCouplingDataForTest.build2DSourceMesh_1();
1064 m5=MEDCouplingUMesh.MergeUMeshes(m1,m3);
1065 m6=MEDCouplingUMesh.MergeUMeshes(m5,m4);
1067 self.assertEqual(10,m6.getNumberOfCells());
1068 self.assertEqual(22,m6.getNumberOfNodes());
1069 arr,areNodesMerged,newNbOfNodes=m6.mergeNodes(1e-13);
1070 self.assertEqual(9,m6.getNumberOfNodes());
1071 f=m6.fillFromAnalytic(ON_CELLS,2,"x");
1072 f2=m6.fillFromAnalytic(ON_NODES,2,"x");
1073 self.assertEqual(10,f.getNumberOfTuples());
1074 self.assertEqual(2,f.getNumberOfComponents());
1075 expected1=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
1076 -0.05, -0.05, 0.45, 0.45, 0.53333333333333321, 0.53333333333333321, -0.05, -0.05, 0.45, 0.45,
1077 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
1079 self.assertAlmostEqual(expected1[i],f.getIJ(0,i),12);
1081 f.getArray().setInfoOnComponent(0,"titi");
1082 f.getArray().setInfoOnComponent(1,"tutu");
1083 f.checkConsistencyLight();
1084 self.assertTrue(f.zipConnectivity(0));
1085 expected2=[-0.05, -0.05, 0.3666666666666667, 0.3666666666666667, 0.53333333333333321, 0.53333333333333321,
1086 -0.05, -0.05, 0.45, 0.45, 0.36666666666666659, 0.36666666666666659, 0.033333333333333326, 0.033333333333333326];
1087 self.assertEqual(7,f.getNumberOfTuples());
1088 self.assertEqual(2,f.getNumberOfComponents());
1090 self.assertAlmostEqual(expected2[i],f.getIJ(0,i),12);
1092 self.assertTrue(f.getArray().getInfoOnComponent(0)=="titi");
1093 self.assertTrue(f.getArray().getInfoOnComponent(1)=="tutu");
1094 self.assertTrue(not f.zipConnectivity(0));
1096 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,
1097 -0.3, -0.3, 0.2, 0.2, 0.7, 0.7];
1098 self.assertEqual(9,f2.getNumberOfTuples());
1099 self.assertEqual(2,f2.getNumberOfComponents());
1101 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
1103 self.assertTrue(f2.zipConnectivity(0));
1104 self.assertEqual(9,f2.getNumberOfTuples());
1105 self.assertEqual(2,f2.getNumberOfComponents());
1107 self.assertAlmostEqual(expected3[i],f2.getIJ(0,i),12);
1111 def testDaDoubleRenumber1(self):
1112 a=DataArrayDouble.New();
1113 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]
1114 a.setValues(arr1,7,2);
1115 a.setInfoOnComponent(0,"toto");
1116 a.setInfoOnComponent(1,"tata");
1118 arr2=[3,1,0,6,5,4,2]
1120 self.assertEqual(7,b.getNumberOfTuples());
1121 self.assertEqual(2,b.getNumberOfComponents());
1122 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1123 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1124 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]
1126 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1129 c=DataArrayInt.New();
1130 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1131 c.setValues(arr3,7,2);
1132 c.setInfoOnComponent(0,"toto");
1133 c.setInfoOnComponent(1,"tata");
1135 self.assertEqual(7,d.getNumberOfTuples());
1136 self.assertEqual(2,d.getNumberOfComponents());
1137 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1138 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1139 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
1141 self.assertEqual(expected2[i],d.getIJ(0,i));
1145 def testDaDoubleRenumberAndReduce1(self):
1146 a=DataArrayDouble.New();
1147 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]
1148 a.setValues(arr1,7,2);
1149 a.setInfoOnComponent(0,"toto");
1150 a.setInfoOnComponent(1,"tata");
1152 arr2=[2,-1,1,-1,0,4,3]
1153 b=a.renumberAndReduce(arr2,5);
1154 self.assertEqual(5,b.getNumberOfTuples());
1155 self.assertEqual(2,b.getNumberOfComponents());
1156 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1157 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1158 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
1160 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1163 c=DataArrayInt.New();
1164 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1165 c.setValues(arr3,7,2);
1166 c.setInfoOnComponent(0,"toto");
1167 c.setInfoOnComponent(1,"tata");
1168 d=c.renumberAndReduce(arr2,5);
1169 self.assertEqual(5,d.getNumberOfTuples());
1170 self.assertEqual(2,d.getNumberOfComponents());
1171 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1172 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1173 expected2=[5,15,3,13,1,11,7,17,6,16]
1175 self.assertEqual(expected2[i],d.getIJ(0,i));
1179 def testDaDoubleRenumberInPlace1(self):
1180 a=DataArrayDouble.New();
1181 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]
1182 a.setValues(arr1,7,2);
1184 arr2=[3,1,0,6,5,4,2]
1185 a.renumberInPlace(arr2);
1186 self.assertEqual(7,a.getNumberOfTuples());
1187 self.assertEqual(2,a.getNumberOfComponents());
1188 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]
1190 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
1193 c=DataArrayInt.New();
1194 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1195 c.setValues(arr3,7,2);
1196 c.renumberInPlace(arr2);
1197 self.assertEqual(7,c.getNumberOfTuples());
1198 self.assertEqual(2,c.getNumberOfComponents());
1199 expected2=[3, 13, 2, 12, 7, 17, 1, 11, 6, 16, 5, 15, 4, 14]
1201 self.assertEqual(expected2[i],c.getIJ(0,i));
1205 def testDaDoubleRenumberR1(self):
1206 a=DataArrayDouble.New();
1207 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]
1208 a.setValues(arr1,7,2);
1209 a.setInfoOnComponent(0,"toto");
1210 a.setInfoOnComponent(1,"tata");
1212 arr2=[3,1,0,6,5,4,2]
1213 b=a.renumberR(arr2);
1214 self.assertEqual(7,b.getNumberOfTuples());
1215 self.assertEqual(2,b.getNumberOfComponents());
1216 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1217 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1218 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]
1220 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1223 c=DataArrayInt.New();
1224 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1225 c.setValues(arr3,7,2);
1226 c.setInfoOnComponent(0,"toto");
1227 c.setInfoOnComponent(1,"tata");
1228 d=c.renumberR(arr2);
1229 self.assertEqual(7,d.getNumberOfTuples());
1230 self.assertEqual(2,d.getNumberOfComponents());
1231 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1232 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1233 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
1235 self.assertEqual(expected2[i],d.getIJ(0,i));
1239 def testDaDoubleRenumberInPlaceR1(self):
1240 a=DataArrayDouble.New();
1241 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]
1242 a.setValues(arr1,7,2);
1244 arr2=[3,1,0,6,5,4,2]
1245 a.renumberInPlaceR(arr2);
1246 self.assertEqual(7,a.getNumberOfTuples());
1247 self.assertEqual(2,a.getNumberOfComponents());
1248 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]
1250 self.assertAlmostEqual(expected1[i],a.getIJ(0,i),14);
1253 c=DataArrayInt.New();
1254 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1255 c.setValues(arr3,7,2);
1256 c.renumberInPlaceR(arr2);
1257 self.assertEqual(7,c.getNumberOfTuples());
1258 self.assertEqual(2,c.getNumberOfComponents());
1259 expected2=[4, 14, 2, 12, 1, 11, 7, 17, 6, 16, 5, 15, 3, 13]
1261 self.assertEqual(expected2[i],c.getIJ(0,i));
1265 def testDaDoubleSelectByTupleId1(self):
1266 a=DataArrayDouble.New();
1267 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]
1268 a.setValues(arr1,7,2);
1269 a.setInfoOnComponent(0,"toto");
1270 a.setInfoOnComponent(1,"tata");
1273 b=a.selectByTupleId(arr2);
1274 self.assertEqual(5,b.getNumberOfTuples());
1275 self.assertEqual(2,b.getNumberOfComponents());
1276 self.assertTrue(b.getInfoOnComponent(0)=="toto");
1277 self.assertTrue(b.getInfoOnComponent(1)=="tata");
1278 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
1280 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
1283 c=DataArrayInt.New();
1284 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
1285 c.setValues(arr3,7,2);
1286 c.setInfoOnComponent(0,"toto");
1287 c.setInfoOnComponent(1,"tata");
1288 d=c.selectByTupleId(arr2);
1289 self.assertEqual(5,d.getNumberOfTuples());
1290 self.assertEqual(2,d.getNumberOfComponents());
1291 self.assertTrue(d.getInfoOnComponent(0)=="toto");
1292 self.assertTrue(d.getInfoOnComponent(1)=="tata");
1293 expected2=[5,15,3,13,1,11,7,17,6,16]
1295 self.assertEqual(expected2[i],d.getIJ(0,i));
1299 def testDaDoubleGetMinMaxValues1(self):
1300 a=DataArrayDouble.New();
1301 arr1=[2.34,4.56,-6.77,4.55,4.56,2.24,2.34,1.02,4.56]
1302 a.setValues(arr1,9,1);
1303 m,where=a.getMaxValue();
1304 self.assertEqual(1,where);
1305 self.assertAlmostEqual(4.56,m,12);
1306 m,ws=a.getMaxValue2();
1307 self.assertAlmostEqual(4.56,m,12);
1308 self.assertEqual(3,ws.getNumberOfTuples());
1309 self.assertEqual(1,ws.getNumberOfComponents());
1312 self.assertEqual(expected1[i],ws.getIJ(i,0));
1314 a=DataArrayDouble.New();
1315 arr2=[-2.34,-4.56,6.77,-4.55,-4.56,-2.24,-2.34,-1.02,-4.56]
1316 a.setValues(arr2,9,1);
1317 m,where=a.getMinValue();
1318 self.assertEqual(1,where);
1319 self.assertAlmostEqual(-4.56,m,12);
1320 m,ws=a.getMinValue2();
1321 self.assertAlmostEqual(-4.56,m,12);
1322 self.assertEqual(3,ws.getNumberOfTuples());
1323 self.assertEqual(1,ws.getNumberOfComponents());
1325 self.assertEqual(expected1[i],ws.getIJ(i,0));
1329 def testFieldDoubleGetMinMaxValues2(self):
1330 m2,m1=MEDCouplingDataForTest.build3DExtrudedUMesh_1();
1331 self.assertEqual(18,m2.getNumberOfCells());
1332 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]
1333 f=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
1334 a=DataArrayDouble.New();
1335 a.setValues(arr1,18,1);
1339 f.checkConsistencyLight();
1341 self.assertAlmostEqual(8.71,m,12);
1342 m,ws=f.getMaxValue2();
1343 self.assertAlmostEqual(8.71,m,12);
1344 self.assertEqual(4,ws.getNumberOfTuples());
1345 self.assertEqual(1,ws.getNumberOfComponents());
1346 expected1=[0,3,7,17]
1348 self.assertEqual(expected1[i],ws.getIJ(i,0));
1351 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]
1352 a.setValues(arr2,18,1);
1353 f.checkConsistencyLight();
1355 self.assertAlmostEqual(-8.71,m,12);
1356 m,ws=f.getMinValue2();
1357 self.assertAlmostEqual(-8.71,m,12);
1358 self.assertEqual(4,ws.getNumberOfTuples());
1359 self.assertEqual(1,ws.getNumberOfComponents());
1361 self.assertEqual(expected1[i],ws.getIJ(i,0));
1365 def testBuildUnstructuredCMesh1(self):
1366 m=MEDCouplingCMesh.New();
1367 da=DataArrayDouble.New();
1368 discX=[2.3,3.4,5.8,10.2]
1369 discY=[12.3,23.4,45.8]
1370 discZ=[-0.7,1.2,1.25,2.13,2.67]
1371 da.setValues(discX,4,1);
1372 m.setCoordsAt(0,da);
1373 m.checkConsistencyLight();
1374 self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12));
1375 self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12));
1376 self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12));
1377 self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12));
1378 self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12));
1380 m2=m.buildUnstructured();
1381 m2.checkConsistencyLight();
1382 f1=m.getMeasureField(False);
1383 f2=m2.getMeasureField(False);
1384 self.assertTrue(isinstance(f1.getMesh(),MEDCouplingCMesh))
1385 self.assertEqual(f1.getNumberOfTuples(),3);
1386 self.assertEqual(f2.getNumberOfTuples(),3);
1387 self.assertEqual(1,m2.getMeshDimension());
1388 self.assertEqual(1,m2.getSpaceDimension());
1390 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
1392 da=DataArrayDouble.New();
1393 da.setValues(discY,3,1);
1394 m.setCoordsAt(1,da);
1396 m2=m.buildUnstructured();
1397 m2.checkConsistencyLight();
1398 f1=m.getMeasureField(False);
1399 f2=m2.getMeasureField(False);
1400 self.assertEqual(f1.getNumberOfTuples(),6);
1401 self.assertEqual(f2.getNumberOfTuples(),6);
1402 self.assertEqual(2,m2.getMeshDimension());
1403 self.assertEqual(2,m2.getSpaceDimension());
1405 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
1408 da=DataArrayDouble.New();
1409 da.setValues(discZ,5,1);
1410 m.setCoordsAt(2,da);
1411 m2=m.buildUnstructured();
1412 m2.checkConsistencyLight();
1413 f1=m.getMeasureField(False);
1414 f2=m2.getMeasureField(False);
1415 self.assertEqual(f1.getNumberOfTuples(),24);
1416 self.assertEqual(f2.getNumberOfTuples(),24);
1417 self.assertEqual(3,m2.getMeshDimension());
1418 self.assertEqual(3,m2.getSpaceDimension());
1420 self.assertAlmostEqual(f1.getIJ(i,0),f2.getIJ(i,0),10);
1424 self.assertEqual(16,m.getCellContainingPoint(pos1,1e-12));
1426 elems=m2.getCellsInBoundingBox([3.5,6.,12.2,25.,0.,1.5],1e-7)
1427 self.assertEqual([1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17],elems.getValues())
1431 m3=m.buildUnstructured();
1433 self.assertTrue(m3.isEqual(m2,1e-12));
1436 def testDataArrayIntInvertO2NNO21(self):
1438 da=DataArrayInt.New();
1439 da.setValues(arr1,6,1);
1440 da2=da.invertArrayO2N2N2O(6);
1441 self.assertEqual(6,da2.getNumberOfTuples());
1442 self.assertEqual(1,da2.getNumberOfComponents());
1443 expected1=[1,3,0,5,2,4]
1445 self.assertEqual(expected1[i],da2.getIJ(i,0));
1447 da3=da2.invertArrayN2O2O2N(6);
1449 self.assertEqual(arr1[i],da3.getIJ(i,0));
1452 arr2=[3,-1,5,4,-1,0,-1,1,2,-1]
1453 da=DataArrayInt.New();
1454 da.setValues(arr2,10,1);
1455 da2=da.invertArrayO2N2N2O(6);
1456 self.assertEqual(6,da2.getNumberOfTuples());
1457 self.assertEqual(1,da2.getNumberOfComponents());
1458 expected2=[5,7,8,0,3,2]
1460 self.assertEqual(expected2[i],da2.getIJ(i,0));
1462 da3=da2.invertArrayN2O2O2N(10);
1464 self.assertEqual(arr2[i],da3.getIJ(i,0));
1468 def testKeepSetSelectedComponent1(self):
1469 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
1470 a1=DataArrayDouble.New();
1471 a1.setValues(arr1,5,4);
1472 expp=[21.,22.,23.,24.]
1473 self.assertEqual(4,len(a1.getTuple(2)));
1475 self.assertAlmostEqual(expp[i],a1.getTuple(2)[i],12)
1477 a1.setInfoOnComponent(0,"aaaa");
1478 a1.setInfoOnComponent(1,"bbbb");
1479 a1.setInfoOnComponent(2,"cccc");
1480 a1.setInfoOnComponent(3,"dddd");
1482 a2=a1.keepSelectedComponents(arr2V);
1483 self.assertEqual(6,a2.getNumberOfComponents());
1484 self.assertEqual(5,a2.getNumberOfTuples());
1485 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
1486 self.assertTrue(a2.getInfoOnComponent(1)=="cccc");
1487 self.assertTrue(a2.getInfoOnComponent(2)=="bbbb");
1488 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
1489 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
1490 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
1491 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.]
1493 self.assertAlmostEqual(expected1[i],a2.getIJ(0,i),14);
1495 a3=a1.convertToIntArr();
1496 self.assertEqual([21,22,23,24],a3.getTuple(2))
1497 a4=a3.keepSelectedComponents(arr2V);
1498 self.assertEqual(6,a4.getNumberOfComponents());
1499 self.assertEqual(5,a4.getNumberOfTuples());
1500 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
1501 self.assertTrue(a4.getInfoOnComponent(1)=="cccc");
1502 self.assertTrue(a4.getInfoOnComponent(2)=="bbbb");
1503 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
1504 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
1505 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
1507 self.assertEqual(int(expected1[i]),a4.getIJ(0,i));
1509 # setSelectedComponents
1511 a5=a1.keepSelectedComponents(arr3V);
1512 a5.setInfoOnComponent(0,"eeee");
1513 a5.setInfoOnComponent(1,"ffff");
1515 a2.setSelectedComponents(a5,arr4V);
1516 self.assertEqual(6,a2.getNumberOfComponents());
1517 self.assertEqual(5,a2.getNumberOfTuples());
1518 self.assertTrue(a2.getInfoOnComponent(0)=="bbbb");
1519 self.assertTrue(a2.getInfoOnComponent(1)=="eeee");
1520 self.assertTrue(a2.getInfoOnComponent(2)=="ffff");
1521 self.assertTrue(a2.getInfoOnComponent(3)=="cccc");
1522 self.assertTrue(a2.getInfoOnComponent(4)=="aaaa");
1523 self.assertTrue(a2.getInfoOnComponent(5)=="aaaa");
1524 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.]
1526 self.assertAlmostEqual(expected2[i],a2.getIJ(0,i),14);
1528 a6=a5.convertToIntArr();
1529 a6.setInfoOnComponent(0,"eeee");
1530 a6.setInfoOnComponent(1,"ffff");
1531 a4.setSelectedComponents(a6,arr4V);
1532 self.assertEqual(6,a4.getNumberOfComponents());
1533 self.assertEqual(5,a4.getNumberOfTuples());
1534 self.assertTrue(a4.getInfoOnComponent(0)=="bbbb");
1535 self.assertTrue(a4.getInfoOnComponent(1)=="eeee");
1536 self.assertTrue(a4.getInfoOnComponent(2)=="ffff");
1537 self.assertTrue(a4.getInfoOnComponent(3)=="cccc");
1538 self.assertTrue(a4.getInfoOnComponent(4)=="aaaa");
1539 self.assertTrue(a4.getInfoOnComponent(5)=="aaaa");
1541 self.assertEqual(int(expected2[i]),a4.getIJ(0,i));
1547 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr5V);
1548 self.assertRaises(InterpKernelException,a2.keepSelectedComponents,arr6V);
1549 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
1551 self.assertRaises(InterpKernelException,a2.setSelectedComponents,a1,arr7V);
1555 def testKeepSetSelectedComponent2(self):
1556 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
1557 arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
1558 a1=DataArrayDouble.New();
1559 a1.setValues(arr1,5,4);
1560 a1.setInfoOnComponent(0,"aaaa");
1561 a1.setInfoOnComponent(1,"bbbb");
1562 a1.setInfoOnComponent(2,"cccc");
1563 a1.setInfoOnComponent(3,"dddd");
1564 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
1565 f1.setTime(2.3,4,5);
1569 f1.checkConsistencyLight();
1572 f2=f1.keepSelectedComponents(arr2V);
1573 self.assertTrue(f2.getTimeDiscretization()==ONE_TIME);
1574 t,dt,it=f2.getTime()
1575 self.assertAlmostEqual(2.3,t,13);
1576 self.assertEqual(4,dt);
1577 self.assertEqual(5,it);
1578 f2.checkConsistencyLight();
1579 self.assertEqual(6,f2.getNumberOfComponents());
1580 self.assertEqual(5,f2.getNumberOfTuples());
1581 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
1582 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="cccc");
1583 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="bbbb");
1584 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
1585 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
1586 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
1587 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.]
1589 self.assertAlmostEqual(expected1[i],f2.getIJ(0,i),14);
1591 #setSelectedComponents
1593 f5=f1.keepSelectedComponents(arr3V);
1594 f5.setTime(6.7,8,9);
1595 f5.getArray().setInfoOnComponent(0,"eeee");
1596 f5.getArray().setInfoOnComponent(1,"ffff");
1597 f5.checkConsistencyLight();
1599 f2.setSelectedComponents(f5,arr4V);
1600 self.assertEqual(6,f2.getNumberOfComponents());
1601 self.assertEqual(5,f2.getNumberOfTuples());
1602 f2.checkConsistencyLight();
1603 t,dt,it=f2.getTime()
1604 self.assertAlmostEqual(2.3,t,13);
1605 self.assertEqual(4,dt);
1606 self.assertEqual(5,it);
1607 self.assertTrue(f2.getArray().getInfoOnComponent(0)=="bbbb");
1608 self.assertTrue(f2.getArray().getInfoOnComponent(1)=="eeee");
1609 self.assertTrue(f2.getArray().getInfoOnComponent(2)=="ffff");
1610 self.assertTrue(f2.getArray().getInfoOnComponent(3)=="cccc");
1611 self.assertTrue(f2.getArray().getInfoOnComponent(4)=="aaaa");
1612 self.assertTrue(f2.getArray().getInfoOnComponent(5)=="aaaa");
1613 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.]
1615 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),14);
1620 def testElementaryDAThrowAndSpecialCases(self):
1621 da=DataArrayInt.New();
1622 self.assertRaises(InterpKernelException, da.checkAllocated);
1623 self.assertRaises(InterpKernelException, da.fillWithValue, 1);
1624 self.assertRaises(InterpKernelException, da.iota, 1);
1626 da.fillWithValue(11); #11,11,11,11...
1627 da.iota(10); #10,11,12,13...
1629 db=DataArrayInt.New();
1632 dbl2=DataArrayDouble.New();
1634 self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
1635 self.assertRaises(InterpKernelException, dbl2.sort);
1636 self.assertRaises(InterpKernelException, dbl2.iota, 10.);
1638 dbl=DataArrayDouble.New();
1639 #DataArrayDouble not allocated yet
1640 self.assertRaises(InterpKernelException, dbl.iota, 10.);
1641 self.assertRaises(InterpKernelException, dbl.isUniform, 10., 1e-15);
1642 self.assertRaises(InterpKernelException, dbl.sort);
1643 self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
1644 self.assertRaises(InterpKernelException, dbl.toNoInterlace);
1648 self.assertTrue(not dbl.isUniform(10.,1e-15));
1650 self.assertTrue(dbl.isMonotonic(True, .99));
1651 self.assertTrue(dbl.isMonotonic(True, -.99));
1652 self.assertTrue(not dbl.isMonotonic(True, 1.1));
1653 self.assertTrue(not dbl.isMonotonic(True, -1.1));
1655 self.assertTrue(dbl.isMonotonic(False, .99));
1656 self.assertTrue(not dbl.isMonotonic(False, 1.1));
1657 self.assertTrue(not dbl.isMonotonic(False, -1.1));
1659 dc=DataArrayInt.New();
1662 dd=DataArrayDouble.New();
1663 self.assertRaises(InterpKernelException, dd.checkAllocated);
1664 self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
1665 self.assertRaises(InterpKernelException, dd.iota, 1.);
1666 self.assertTrue(not ((dd.repr().find("No data"))==-1));
1668 dd.alloc(0,1); #Allocated but nbOfElements==0!
1669 self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
1670 self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
1671 dd.fillWithValue(11); #?!...ok
1672 dd.iota(10); #?!...ok
1673 self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
1674 self.assertTrue(dd.isMonotonic(False, 1.));
1676 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
1677 self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
1679 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
1682 self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
1684 info=["infoOfOneComponent"]*2;
1685 self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
1686 self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
1687 db.setInfoOnComponents(info);
1689 self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
1690 self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
1691 self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
1692 self.assertRaises(InterpKernelException, db.getVarOnComponent, -1);
1693 self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
1694 self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
1695 self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
1697 self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
1698 self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
1699 self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
1700 self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
1702 self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
1703 self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
1704 self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
1705 self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
1707 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
1708 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
1709 self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
1711 self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
1712 da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
1714 self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
1715 db.checkNbOfElems(7*2,"theMessageInThrow");
1717 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
1718 self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
1719 self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
1720 self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
1721 self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
1723 self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
1724 self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
1725 self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
1727 self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
1728 self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
1729 self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
1731 self.assertRaises(InterpKernelException, dbl.selectByTupleIdSafeSlice, 0, 1, -1);
1732 self.assertRaises(InterpKernelException, dbl.subArray, -1, 1);
1733 self.assertRaises(InterpKernelException, dbl.subArray, 8, 1);
1734 self.assertRaises(InterpKernelException, dbl.subArray, 0, 8);
1735 self.assertRaises(InterpKernelException, dbl.meldWith, dd);
1737 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
1738 self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
1740 dbl3=DataArrayDouble.New();
1742 dbl3.fillWithValue(11.);
1743 #bad number of components
1744 self.assertRaises(InterpKernelException, dbl3.getMaxValue);
1745 self.assertRaises(InterpKernelException, dd.getMaxValue);
1746 self.assertRaises(InterpKernelException, dbl3.getMinValue);
1747 self.assertRaises(InterpKernelException, dd.getMinValue);
1748 self.assertRaises(InterpKernelException, dbl3.getAverageValue);
1749 self.assertRaises(InterpKernelException, dd.getAverageValue);
1750 self.assertRaises(InterpKernelException, dd.accumulate, 100);
1751 self.assertRaises(InterpKernelException, dbl.fromPolarToCart);
1752 self.assertRaises(InterpKernelException, dbl3.fromCylToCart);
1753 self.assertRaises(InterpKernelException, dbl3.fromSpherToCart);
1754 self.assertRaises(InterpKernelException, dbl3.doublyContractedProduct);
1755 self.assertRaises(InterpKernelException, dbl3.determinant);
1756 self.assertRaises(InterpKernelException, dbl3.eigenValues);
1757 self.assertRaises(InterpKernelException, dbl3.eigenVectors);
1758 self.assertRaises(InterpKernelException, dbl3.inverse);
1759 self.assertRaises(InterpKernelException, dbl3.trace);
1760 self.assertRaises(InterpKernelException, dbl3.deviator);
1762 dbl3.setIJ(5,1,12.);
1763 self.assertTrue(dbl3.getMaxValueInArray()==12.);
1764 self.assertTrue(dbl3.getMinValueInArray()==11.);
1766 db.fillWithValue(100); #bad Ids
1767 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
1768 db.fillWithValue(-1); #bad Ids
1769 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
1770 db.fillWithValue(6); #bad Ids for dbl3
1771 self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
1773 dbl3.checkNoNullValues();
1775 self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
1776 self.assertRaises(InterpKernelException, dbl3.applyInv, 1.); #div by zero
1777 self.assertRaises(InterpKernelException, dbl2.findIdsInRange, 1., 2.);
1779 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
1780 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
1782 a=[dbl2,dbl]; #Nb of components mismatch
1783 self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
1785 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
1787 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
1788 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
1789 dbl4=DataArrayDouble.New();
1791 dbl5=DataArrayDouble.New();
1793 self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
1795 a[0]=dbl4; #Nb of tuple mismatch
1796 a[1]=dbl5; #Nb of tuple mismatch
1797 self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
1798 self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl4, dbl5);
1801 def testDAIGetIdsEqual1(self):
1802 tab1=[5,-2,-4,-2,3,2,-2];
1803 da=DataArrayInt.New();
1804 da.setValues(tab1,7,1);
1805 da2=da.findIdsEqual(-2);
1806 self.assertEqual(3,da2.getNumberOfTuples());
1807 self.assertEqual(1,da2.getNumberOfComponents());
1809 self.assertEqual(expected1,da2.getValues());
1812 def testDAIGetIdsEqualList1(self):
1813 tab1=[5,-2,-4,-2,3,2,-2];
1814 da=DataArrayInt.New();
1815 da.setValues(tab1,7,1);
1816 da2=da.findIdsEqualList([3,-2,0]);
1817 self.assertEqual(4,da2.getNumberOfTuples());
1818 self.assertEqual(1,da2.getNumberOfComponents());
1819 expected1=[1,3,4,6];
1820 self.assertEqual(expected1,da2.getValues());
1823 def testDAFromNoInterlace1(self):
1824 tab1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
1825 da=DataArrayInt.New();
1826 da.setValues(tab1,5,3);
1827 da2=da.fromNoInterlace();
1828 expected1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
1829 self.assertEqual(5,da2.getNumberOfTuples());
1830 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1831 self.assertEqual(expected1,da2.getValues());
1832 da3=da.convertToDblArr();
1833 da4=da3.fromNoInterlace();
1834 self.assertEqual(5,da4.getNumberOfTuples());
1835 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1837 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
1841 def testDAToNoInterlace1(self):
1842 tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
1843 da=DataArrayInt.New();
1844 da.setValues(tab1,5,3);
1845 da2=da.toNoInterlace();
1846 expected1=[1,11,21,31,41,2,12,22,32,42,3,13,23,33,43]
1847 self.assertEqual(5,da2.getNumberOfTuples());
1848 self.assertEqual(3,da2.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1849 self.assertEqual(expected1,da2.getValues());
1850 da3=da.convertToDblArr();
1851 da4=da3.toNoInterlace();
1852 self.assertEqual(5,da4.getNumberOfTuples());
1853 self.assertEqual(3,da4.getNumberOfComponents());# it's not a bug. Avoid to have 1 million components !
1855 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
1859 def testDAIsUniform1(self):
1861 da=DataArrayInt.New();
1862 da.setValues(tab1,5,1);
1863 self.assertTrue(da.isUniform(1));
1865 self.assertTrue(not da.isUniform(1));
1867 self.assertTrue(da.isUniform(1));
1868 da2=da.convertToDblArr();
1869 self.assertTrue(da2.isUniform(1.,1.e-12));
1870 da2.setIJ(1,0,1.+1.e-13);
1871 self.assertTrue(da2.isUniform(1.,1.e-12));
1872 da2.setIJ(1,0,1.+1.e-11);
1873 self.assertTrue(not da2.isUniform(1.,1.e-12));
1876 def testDAHasUniqueValues1(self):
1877 da=DataArrayInt([1,2,3,4,5])
1878 self.assertTrue(da.hasUniqueValues())
1880 self.assertFalse(da.hasUniqueValues())
1882 self.assertTrue(da.hasUniqueValues())
1883 da=DataArrayInt([(1,2), (2,3)]) # wrong num of compo
1884 self.assertRaises(InterpKernelException, da.hasUniqueValues)
1885 da=DataArrayInt() # non allocated array
1886 self.assertRaises(InterpKernelException, da.hasUniqueValues)
1889 def testDADFromPolarToCart1(self):
1890 tab1=[2.,0.2,2.5,0.7]
1891 da=DataArrayDouble.New();
1892 da.setValues(tab1,2,2);
1893 da2=da.fromPolarToCart();
1894 expected1=[1.9601331556824833,0.39733866159012243, 1.9121054682112213,1.6105442180942275]
1896 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1900 def testDADFromCylToCart1(self):
1901 tab1=[2.,0.2,4.,2.5,0.7,9.]
1902 da=DataArrayDouble.New();
1903 da.setValues(tab1,2,3);
1904 da2=da.fromCylToCart();
1905 expected1=[1.9601331556824833,0.39733866159012243,4., 1.9121054682112213,1.6105442180942275,9.]
1907 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1911 def testDADFromSpherToCart1(self):
1912 tab1=[2.,0.2,0.3,2.5,0.7,0.8]
1913 da=DataArrayDouble.New();
1914 da.setValues(tab1,2,3);
1915 da2=da.fromSpherToCart();
1916 expected1=[0.37959212195737485,0.11742160338765303,1.9601331556824833, 1.1220769624465328,1.1553337045129035,1.9121054682112213]
1918 self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
1922 def testUnPolyze1(self):
1923 elts=[0,1,2,3,4,5,6,7]
1925 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1926 mesh.convertToPolyTypes(eltsV);
1928 mesh2=MEDCouplingDataForTest.build3DTargetMesh_1();
1929 mesh.checkConsistencyLight();
1930 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1931 mesh.convertToPolyTypes(eltsV);
1932 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1933 mesh.getNodalConnectivity().setIJ(0,6,10);
1934 mesh.getNodalConnectivity().setIJ(0,7,9);
1935 mesh.getNodalConnectivity().setIJ(0,8,12);
1936 mesh.getNodalConnectivity().setIJ(0,9,13);
1938 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1939 mesh.convertToPolyTypes(eltsV);
1940 mesh.getNodalConnectivity().setIJ(0,6,12);
1941 mesh.getNodalConnectivity().setIJ(0,7,13);
1942 mesh.getNodalConnectivity().setIJ(0,8,10);
1943 mesh.getNodalConnectivity().setIJ(0,9,9);
1945 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1946 mesh.convertToPolyTypes(eltsV);
1947 mesh.getNodalConnectivity().setIJ(0,6,12);
1948 mesh.getNodalConnectivity().setIJ(0,7,10);
1949 mesh.getNodalConnectivity().setIJ(0,8,13);
1950 mesh.getNodalConnectivity().setIJ(0,9,9);
1952 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1954 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
1955 mesh2=MEDCouplingDataForTest.build2DTargetMesh_1();
1957 mesh.convertToPolyTypes(eltsV);
1958 self.assertTrue(not mesh.isEqual(mesh2,1e-12));
1960 self.assertTrue(mesh.isEqual(mesh2,1e-12));
1963 def testConvertDegeneratedCells1(self):
1964 mesh=MEDCouplingDataForTest.build3DTargetMesh_1();
1965 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]
1966 mesh.allocateCells(4);
1967 mesh.insertNextCell(NORM_HEXA8,8,conn[0:8])
1968 mesh.insertNextCell(NORM_HEXA8,8,conn[8:16])
1969 mesh.insertNextCell(NORM_HEXA8,8,conn[16:24])
1970 mesh.insertNextCell(NORM_HEXA8,8,conn[24:32])
1971 mesh.finishInsertingCells();
1972 mesh.checkConsistencyLight();
1973 self.assertEqual(4,mesh.getNumberOfCells());
1974 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(0));
1975 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(1));
1976 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(2));
1977 self.assertEqual(NORM_HEXA8,mesh.getTypeOfCell(3));
1978 f1=mesh.getMeasureField(True);
1979 mesh.convertDegeneratedCells();
1980 mesh.checkConsistencyLight();
1981 f2=mesh.getMeasureField(True);
1982 self.assertEqual(4,mesh.getNumberOfCells());
1983 self.assertEqual(NORM_PENTA6,mesh.getTypeOfCell(0));
1984 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(1));
1985 self.assertEqual(NORM_TETRA4,mesh.getTypeOfCell(2));
1986 self.assertEqual(NORM_PYRA5,mesh.getTypeOfCell(3));
1988 self.assertAlmostEqual(f1.getArray().getIJ(0,i),f2.getArray().getIJ(0,i),5);
1992 def testConvertDegeneratedCellsAndRemoveFlatOnes1(self):
1993 coo = DataArrayDouble([0.0]*10) # Just to have some. Values do not matter.
1994 mesh = MEDCouplingUMesh("m", 2)
1998 c = [NORM_QUAD4, 0,1,0,2, NORM_TRI3, 0,1,1, NORM_TRI3, 0,1,2, NORM_QUAD4, 1,0,2,1, NORM_POLYGON, 1,0,1,1]
1999 cI = [0, 5, 9, 13, 18, 23]
2000 mesh.setConnectivity(DataArrayInt(c),DataArrayInt(cI))
2001 mesh2 = mesh.deepCopy(); mesh3 = mesh.deepCopy();
2002 mesh.convertDegeneratedCells()
2003 c, cI = mesh.getNodalConnectivity().getValues(), mesh.getNodalConnectivityIndex().getValues()
2004 self.assertEqual(c, [NORM_QUAD4, 0,1,0,2, NORM_POLYGON, 0,1, NORM_TRI3, 0,1,2, NORM_TRI3, 1,0,2, NORM_POLYGON, 1,0])
2005 self.assertEqual(cI, [0, 5, 8, 12, 16, 19])
2007 res = mesh2.convertDegeneratedCellsAndRemoveFlatOnes()
2008 c, cI = mesh2.getNodalConnectivity().getValues(), mesh2.getNodalConnectivityIndex().getValues()
2009 self.assertEqual(c, [NORM_QUAD4, 0,1,0,2, NORM_TRI3, 0,1,2, NORM_TRI3, 1,0,2])
2010 self.assertEqual(cI, [0, 5, 9, 13])
2011 self.assertEqual(res.getValues(), [1,4])
2014 c = [NORM_TRI6, 0,1,0, 2,3,0, NORM_QUAD8, 0,1,1,3, 4,1,6,7, NORM_QPOLYG, 0,1, NORM_QPOLYG, 0,1,2,2, NORM_TRI6, 0,1,2, 3,4,5]
2015 cI = [0, 7, 16, 19, 24, 31]
2016 mesh3.setConnectivity(DataArrayInt(c),DataArrayInt(cI))
2018 mesh3.convertDegeneratedCells()
2019 c, cI = mesh3.getNodalConnectivity().getValues(), mesh3.getNodalConnectivityIndex().getValues()
2020 self.assertEqual(c, [NORM_QPOLYG, 0,1, 2,3, NORM_TRI6, 0,1,3, 4,6,7, NORM_QPOLYG, 0,1, NORM_QPOLYG, 0,1,2,2, NORM_TRI6, 0,1,2, 3,4,5])
2021 self.assertEqual(cI, [0, 5, 12, 15, 20, 27])
2022 mesh4 = mesh3.deepCopy()
2024 res = mesh4.convertDegeneratedCellsAndRemoveFlatOnes()
2025 c, cI = mesh4.getNodalConnectivity().getValues(), mesh4.getNodalConnectivityIndex().getValues()
2026 self.assertEqual(c, [NORM_QPOLYG, 0,1, 2,3, NORM_TRI6, 0,1,3, 4,6,7, NORM_TRI6, 0,1,2, 3,4,5])
2027 self.assertEqual(cI, [0, 5, 12, 19])
2028 self.assertEqual(res.getValues(), [2,3])
2032 def testGetNodeIdsNearPoints1(self):
2033 mesh=MEDCouplingDataForTest.build2DTargetMesh_1();
2034 coords=mesh.getCoords();
2035 tmp=DataArrayDouble.New();
2036 vals=[0.2,0.2,0.1,0.2,0.2,0.2]
2037 tmp.setValues(vals,3,2);
2038 tmp2=DataArrayDouble.Aggregate(coords,tmp);
2039 mesh.setCoords(tmp2);
2040 pts=[0.2,0.2,0.1,0.3,-0.3,0.7]
2041 c=mesh.getNodeIdsNearPoint(pts[:2],1e-7);
2042 self.assertEqual([4,9,11],c.getValues());
2043 c,cI=mesh.getNodeIdsNearPoints(pts,3,1e-7);
2044 self.assertEqual([0,3,3,4],cI.getValues());
2045 self.assertEqual([4,9,11,6],c.getValues());
2046 c,cI=mesh.getNodeIdsNearPoints(pts,1e-7);
2047 self.assertEqual([0,3,3,4],cI.getValues());
2048 self.assertEqual([4,9,11,6],c.getValues());
2049 c,cI=mesh.getNodeIdsNearPoints(DataArrayDouble.New(pts,3,2),1e-7);
2050 self.assertEqual([0,3,3,4],cI.getValues());
2051 self.assertEqual([4,9,11,6],c.getValues());
2052 self.assertRaises(InterpKernelException,mesh.getNodeIdsNearPoints,DataArrayDouble.New(pts,2,3),1e-7);
2055 def testFieldCopyTinyAttrFrom1(self):
2056 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2058 f1.setTimeTolerance(1.e-5);
2059 f1.setDescription("f1Desc");
2060 f1.setTime(1.23,4,5);
2061 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2063 f2.setDescription("f2Desc");
2064 f2.setTime(6.78,9,10);
2065 f2.setTimeTolerance(4.556e-12);
2067 f1.copyTinyAttrFrom(f2);
2068 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2069 t,dt,it=f1.getTime()
2070 self.assertAlmostEqual(6.78,t,12);
2071 self.assertEqual(9,dt);
2072 self.assertEqual(10,it);
2073 self.assertTrue(f1.getName()=="f1");#name unchanged
2074 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2076 f1=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2078 f1.setTimeTolerance(1.e-5);
2079 f1.setDescription("f1Desc");
2080 f2=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME);
2082 f2.setDescription("f2Desc");
2083 f2.setTimeTolerance(4.556e-12);
2085 f1.copyTinyAttrFrom(f2);
2086 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2087 self.assertTrue(f1.getName()=="f1");#name unchanged
2088 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2090 f1=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
2092 f1.setTimeTolerance(1.e-5);
2093 f1.setDescription("f1Desc");
2094 f1.setTime(1.23,4,5);
2095 f1.setEndTime(5.43,2,1);
2096 f2=MEDCouplingFieldDouble.New(ON_CELLS,CONST_ON_TIME_INTERVAL);
2098 f2.setDescription("f2Desc");
2099 f2.setTimeTolerance(4.556e-12);
2100 f2.setTime(6.78,9,10);
2101 f2.setEndTime(10.98,7,6);
2103 f1.copyTinyAttrFrom(f2);
2104 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2105 self.assertTrue(f1.getName()=="f1");#name unchanged
2106 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2107 t,dt,it=f1.getTime()
2108 self.assertAlmostEqual(6.78,t,12);
2109 self.assertEqual(9,dt);
2110 self.assertEqual(10,it);
2111 t,dt,it=f1.getEndTime()
2112 self.assertAlmostEqual(10.98,t,12);
2113 self.assertEqual(7,dt);
2114 self.assertEqual(6,it);
2116 f1=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2118 f1.setTimeTolerance(1.e-5);
2119 f1.setDescription("f1Desc");
2120 f1.setTime(1.23,4,5);
2121 f1.setEndTime(5.43,2,1);
2122 f2=MEDCouplingFieldDouble.New(ON_CELLS,LINEAR_TIME);
2124 f2.setDescription("f2Desc");
2125 f2.setTimeTolerance(4.556e-12);
2126 f2.setTime(6.78,9,10);
2127 f2.setEndTime(10.98,7,6);
2129 f1.copyTinyAttrFrom(f2);
2130 self.assertAlmostEqual(4.556e-12,f1.getTimeTolerance(),24);
2131 self.assertTrue(f1.getName()=="f1");#name unchanged
2132 self.assertTrue(f1.getDescription()=="f1Desc");#description unchanged
2133 t,dt,it=f1.getTime()
2134 self.assertAlmostEqual(6.78,t,12);
2135 self.assertEqual(9,dt);
2136 self.assertEqual(10,it);
2137 t,dt,it=f1.getEndTime()
2138 self.assertAlmostEqual(10.98,t,12);
2139 self.assertEqual(7,dt);
2140 self.assertEqual(6,it);
2143 def testExtrudedMesh5(self):
2145 a=DataArrayDouble.New();
2146 a.setValues(coo1,4,1);
2147 b=MEDCouplingCMesh.New();
2149 c=b.buildUnstructured();
2150 self.assertEqual(1,c.getSpaceDimension());
2151 c.changeSpaceDimension(2);
2153 d=DataArrayDouble.New();
2156 e=MEDCouplingCMesh.New();
2158 f=e.buildUnstructured();
2159 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
2160 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 !
2161 h=g.fromPolarToCart();
2163 i=c.buildExtrudedMesh(f,1);
2164 self.assertEqual(52,i.getNumberOfNodes());
2165 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2166 self.assertTrue(tmp2);
2167 self.assertEqual(37,tmp3);
2168 i.convertDegeneratedCells();
2169 i.checkConsistencyLight();
2170 self.assertEqual(36,i.getNumberOfCells());
2171 self.assertEqual(37,i.getNumberOfNodes());
2172 self.assertEqual(12,i.getNumberOfCellsWithType(NORM_TRI3));
2173 self.assertEqual(24,i.getNumberOfCellsWithType(NORM_QUAD4));
2174 expected1=[0.25,0.75,2.0625]
2175 j=i.getMeasureField(True);
2176 for ii in range(12):
2178 self.assertAlmostEqual(expected1[k],j.getIJ(0,ii*3+k),10);
2181 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]
2182 m=i.computeCellCenterOfMass();
2184 self.assertAlmostEqual(expected2[i],m.getIJ(0,i),10);
2189 def testExtrudedMesh6(self):
2191 a=DataArrayDouble.New();
2192 a.setValues(coo1,4,1);
2193 b=MEDCouplingCMesh.New();
2195 c=b.buildUnstructured();
2196 self.assertEqual(1,c.getSpaceDimension());
2197 c.changeSpaceDimension(2);
2199 d=DataArrayDouble.New();
2202 e=MEDCouplingCMesh.New();
2204 f=e.buildUnstructured();
2205 d2=f.getCoords().applyFunc("x*x/2");
2207 f.changeSpaceDimension(2);
2210 f.rotate(center,None,pi/3);
2211 g=c.buildExtrudedMesh(f,0);
2212 g.checkConsistencyLight();
2213 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 ]
2214 f1=g.getMeasureField(True);
2216 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),12);
2218 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]
2219 f2=g.computeCellCenterOfMass();
2221 self.assertAlmostEqual(expected2[i],f2.getIJ(0,i),12);
2225 def testExtrudedMesh7(self):
2227 a=DataArrayDouble.New();
2228 a.setValues(coo1,4,1);
2229 b=MEDCouplingCMesh.New();
2231 c=b.buildUnstructured();
2232 self.assertEqual(1,c.getSpaceDimension());
2233 c.changeSpaceDimension(2);
2235 d=DataArrayDouble.New();
2238 e=MEDCouplingCMesh.New();
2240 f=e.buildUnstructured();
2241 g=f.getCoords().applyFunc(2,"3.5*IVec+x/6*3.14159265359*JVec");
2242 h=g.fromPolarToCart();
2244 i=c.buildExtrudedMesh(f,1);
2245 self.assertEqual(52,i.getNumberOfNodes());
2246 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2247 self.assertTrue(tmp2);
2248 self.assertEqual(37,tmp3);
2249 i.convertDegeneratedCells();
2252 g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec");
2254 i.changeSpaceDimension(3);
2255 i3=i.buildExtrudedMesh(f,1);
2256 f2=i3.getMeasureField(True);
2257 tmp,tmp2,tmp3=i.mergeNodes(1e-9);
2258 self.assertTrue(tmp2);
2259 self.assertEqual(444,tmp3);
2260 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]
2261 for ii in range(12):
2262 for jj in range(36):
2263 self.assertAlmostEqual(expected1[jj],f2.getIJ(0,ii*36+jj),9);
2268 def testSimplexize1(self):
2269 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2270 m.convertToPolyTypes([3]);
2272 self.assertEqual(7,da.getNumberOfTuples());
2273 self.assertEqual(1,da.getNumberOfComponents());
2274 expected2=[0,0,1,2,3,4,4]
2276 self.assertEqual(expected2[i],da.getIJ(i,0));
2278 m.checkConsistencyLight();
2279 self.assertEqual(7,m.getNumberOfCells());
2280 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
2281 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
2282 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
2283 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
2284 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
2285 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
2286 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
2287 expected1=[0.125,0.125,0.125,0.125,0.25,0.125,0.125]
2288 f=m.getMeasureField(False);
2290 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
2292 types=m.getAllGeoTypes();
2293 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
2295 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2296 m.convertToPolyTypes([3]);
2298 self.assertEqual(7,da.getNumberOfTuples());
2299 self.assertEqual(1,da.getNumberOfComponents());
2301 self.assertEqual(expected2[i],da.getIJ(i,0));
2303 m.checkConsistencyLight();
2304 types=m.getAllGeoTypes();
2305 self.assertEqual([NORM_TRI3,NORM_POLYGON],types);
2306 self.assertEqual(7,m.getNumberOfCells());
2307 self.assertEqual(NORM_TRI3,m.getTypeOfCell(0));
2308 self.assertEqual(NORM_TRI3,m.getTypeOfCell(1));
2309 self.assertEqual(NORM_TRI3,m.getTypeOfCell(2));
2310 self.assertEqual(NORM_TRI3,m.getTypeOfCell(3));
2311 self.assertEqual(NORM_POLYGON,m.getTypeOfCell(4));
2312 self.assertEqual(NORM_TRI3,m.getTypeOfCell(5));
2313 self.assertEqual(NORM_TRI3,m.getTypeOfCell(6));
2314 f=m.getMeasureField(False);
2316 self.assertAlmostEqual(expected1[i]*sqrt(2.),f.getIJ(i,0),10);
2320 def testSimplexize2(self):
2321 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2322 m.convertToPolyTypes([3]);
2323 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2325 arr=DataArrayDouble.New();
2326 arr1=[10.,110.,20.,120.,30.,130.,40.,140.,50.,150.]
2327 arr.setValues(arr1,5,2);
2330 f1.checkConsistencyLight();
2331 self.assertTrue(f1.simplexize(0));
2332 f1.checkConsistencyLight();
2333 expected1=[10.,110.,10.,110.,20.,120.,30.,130.,40.,140.,50.,150.,50.,150.]
2335 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
2337 self.assertTrue(not f1.simplexize(0));
2339 self.assertAlmostEqual(expected1[i],f1.getIJ(0,i),10);
2344 def testDAMeld1(self):
2345 da1=DataArrayDouble.New();
2347 da2=DataArrayDouble.New();
2350 da1.fillWithValue(7.);
2352 da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec");
2354 da1.setInfoOnComponent(0,"c0da1");
2355 da1.setInfoOnComponent(1,"c1da1");
2356 da3.setInfoOnComponent(0,"c0da3");
2357 da3.setInfoOnComponent(1,"c1da3");
2358 da3.setInfoOnComponent(2,"c2da3");
2360 da1C=da1.deepCopy();
2362 self.assertEqual(5,da1.getNumberOfComponents());
2363 self.assertEqual(7,da1.getNumberOfTuples());
2364 self.assertTrue(da1.getInfoOnComponent(0)=="c0da1");
2365 self.assertTrue(da1.getInfoOnComponent(1)=="c1da1");
2366 self.assertTrue(da1.getInfoOnComponent(2)=="c0da3");
2367 self.assertTrue(da1.getInfoOnComponent(3)=="c1da3");
2368 self.assertTrue(da1.getInfoOnComponent(4)=="c2da3");
2370 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.]
2372 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),10);
2375 dai1=da1C.convertToIntArr();
2376 dai3=da3.convertToIntArr();
2377 dai1.meldWith(dai3);
2378 self.assertEqual(5,dai1.getNumberOfComponents());
2379 self.assertEqual(7,dai1.getNumberOfTuples());
2380 self.assertTrue(dai1.getInfoOnComponent(0)=="c0da1");
2381 self.assertTrue(dai1.getInfoOnComponent(1)=="c1da1");
2382 self.assertTrue(dai1.getInfoOnComponent(2)=="c0da3");
2383 self.assertTrue(dai1.getInfoOnComponent(3)=="c1da3");
2384 self.assertTrue(dai1.getInfoOnComponent(4)=="c2da3");
2386 self.assertEqual(int(expected1[i]),dai1.getIJ(0,i));
2388 # test of static method DataArrayDouble::meld
2389 da4=DataArrayDouble.Meld(da1C,da3);
2390 tmp=DataArrayDouble.Meld([da1C,da3]);
2391 self.assertTrue(da4.isEqual(tmp,1e-10))
2392 self.assertEqual(5,da4.getNumberOfComponents());
2393 self.assertEqual(7,da4.getNumberOfTuples());
2394 self.assertTrue(da4.getInfoOnComponent(0)=="c0da1");
2395 self.assertTrue(da4.getInfoOnComponent(1)=="c1da1");
2396 self.assertTrue(da4.getInfoOnComponent(2)=="c0da3");
2397 self.assertTrue(da4.getInfoOnComponent(3)=="c1da3");
2398 self.assertTrue(da4.getInfoOnComponent(4)=="c2da3");
2400 self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),10);
2402 # test of static method DataArrayInt::meld
2403 dai1=da1C.convertToIntArr();
2404 dai4=DataArrayInt32.Meld(dai1,dai3);
2405 tmp=DataArrayInt32.Meld([dai1,dai3]);
2406 self.assertTrue(dai4.isEqual(tmp))
2407 self.assertEqual(5,dai4.getNumberOfComponents());
2408 self.assertEqual(7,dai4.getNumberOfTuples());
2409 self.assertTrue(dai4.getInfoOnComponent(0)=="c0da1");
2410 self.assertTrue(dai4.getInfoOnComponent(1)=="c1da1");
2411 self.assertTrue(dai4.getInfoOnComponent(2)=="c0da3");
2412 self.assertTrue(dai4.getInfoOnComponent(3)=="c1da3");
2413 self.assertTrue(dai4.getInfoOnComponent(4)=="c2da3");
2415 self.assertEqual(int(expected1[i]),dai4.getIJ(0,i));
2419 def testFieldMeld1(self):
2420 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2421 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2423 da1=DataArrayDouble.New();
2424 arr1=[12.,23.,34.,45.,56.]
2425 da1.setValues(arr1,5,1);
2426 da1.setInfoOnComponent(0,"aaa");
2428 f1.setTime(3.4,2,1);
2429 f1.checkConsistencyLight();
2432 f2.setMesh(f1.getMesh());
2433 f2.checkConsistencyLight();
2434 f2.changeNbOfComponents(2,5.);
2436 f2.getArray().setInfoOnComponent(0,"bbb");
2437 f2.getArray().setInfoOnComponent(1,"ccc");
2438 f2.checkConsistencyLight();
2440 f3=MEDCouplingFieldDouble.MeldFields(f2,f1);
2441 f3.checkConsistencyLight();
2442 self.assertEqual(5,f3.getNumberOfTuples());
2443 self.assertEqual(3,f3.getNumberOfComponents());
2444 self.assertTrue(f3.getArray().getInfoOnComponent(0)=="bbb");
2445 self.assertTrue(f3.getArray().getInfoOnComponent(1)=="ccc");
2446 self.assertTrue(f3.getArray().getInfoOnComponent(2)=="aaa");
2447 expected1=[5.,5.,12.,5.,5.,23.,5.,5.,34.,5.,5.,45.,5.,5.,56.]
2449 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),12);
2451 time,dt,it=f3.getTime();
2452 self.assertAlmostEqual(3.4,time,14);
2453 self.assertEqual(2,dt);
2454 self.assertEqual(1,it);
2456 f4=f2.buildNewTimeReprFromThis(NO_TIME,False);
2457 f5=f1.buildNewTimeReprFromThis(NO_TIME,False);
2458 f6=MEDCouplingFieldDouble.MeldFields(f4,f5);
2459 f6.checkConsistencyLight();
2460 self.assertEqual(5,f6.getNumberOfTuples());
2461 self.assertEqual(3,f6.getNumberOfComponents());
2462 self.assertTrue(f6.getArray().getInfoOnComponent(0)=="bbb");
2463 self.assertTrue(f6.getArray().getInfoOnComponent(1)=="ccc");
2464 self.assertTrue(f6.getArray().getInfoOnComponent(2)=="aaa");
2466 self.assertAlmostEqual(expected1[i],f6.getIJ(0,i),12);
2471 def testMergeNodes2(self):
2472 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2473 m2=MEDCouplingDataForTest.build2DTargetMesh_1();
2477 m3=MEDCouplingUMesh.MergeUMeshes([m1,m2]);
2478 da,b,newNbOfNodes=m3.mergeNodesCenter(0.01);
2479 self.assertEqual(9,m3.getNumberOfNodes());
2480 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]
2482 self.assertAlmostEqual(expected1[i],m3.getCoords().getIJ(0,i),13);
2487 def testMergeField2(self):
2488 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2489 f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2491 arr=DataArrayDouble.New();
2493 arr.fillWithValue(2.);
2495 f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2497 arr=DataArrayDouble.New();
2499 arr.fillWithValue(5.);
2501 f3=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME);
2503 arr=DataArrayDouble.New();
2505 arr.fillWithValue(7.);
2508 f4=MEDCouplingFieldDouble.MergeFields([f1,f2,f3]);
2509 self.assertEqual(15,f4.getMesh().getNumberOfCells());
2510 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.]
2512 self.assertAlmostEqual(expected1[i],f4.getIJ(0,i),13);
2517 def testDAIBuildComplement1(self):
2518 a=DataArrayInt.New();
2520 a.setValues(tab,4,1);
2521 b=a.buildComplement(12);
2522 self.assertEqual(8,b.getNumberOfTuples());
2523 self.assertEqual(1,b.getNumberOfComponents());
2524 expected1=[0,2,4,5,6,9,10,11]
2526 self.assertEqual(expected1[i],b.getIJ(0,i));
2530 def testDAIBuildUnion1(self):
2531 a=DataArrayInt.New();
2533 a.setValues(tab1,4,1);
2534 c=DataArrayInt.New();
2536 c.setValues(tab2,5,1);
2538 self.assertEqual(7,b.getNumberOfTuples());
2539 self.assertEqual(1,b.getNumberOfComponents());
2540 expected1=[0,1,3,5,7,8,18]
2542 self.assertEqual(expected1[i],b.getIJ(0,i));
2544 b=DataArrayInt.BuildUnion([a,c]);
2545 self.assertEqual(7,b.getNumberOfTuples());
2546 self.assertEqual(1,b.getNumberOfComponents());
2547 expected1=[0,1,3,5,7,8,18]
2549 self.assertEqual(expected1[i],b.getIJ(0,i));
2553 def testDAIBuildIntersection1(self):
2554 a=DataArrayInt.New();
2556 a.setValues(tab1,4,1);
2557 c=DataArrayInt.New();
2559 c.setValues(tab2,5,1);
2560 b=a.buildIntersection(c);
2561 self.assertEqual(2,b.getNumberOfTuples());
2562 self.assertEqual(1,b.getNumberOfComponents());
2565 self.assertEqual(expected1[i],b.getIJ(0,i));
2567 b=DataArrayInt.BuildIntersection([a,c]);
2568 self.assertEqual(2,b.getNumberOfTuples());
2569 self.assertEqual(1,b.getNumberOfComponents());
2572 self.assertEqual(expected1[i],b.getIJ(0,i));
2576 def testDAIDeltaShiftIndex1(self):
2577 a=DataArrayInt.New();
2578 tab=[1,3,6,7,7,9,15]
2579 a.setValues(tab,7,1);
2580 b=a.deltaShiftIndex();
2581 self.assertEqual(6,b.getNumberOfTuples());
2582 self.assertEqual(1,b.getNumberOfComponents());
2583 expected1=[2,3,1,0,2,6]
2585 self.assertEqual(expected1[i],b.getIJ(0,i));
2589 def testDaDoubleSelectByTupleIdSafe1(self):
2590 a=DataArrayDouble.New();
2591 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]
2592 a.setValues(arr1,7,2);
2593 a.setInfoOnComponent(0,"toto");
2594 a.setInfoOnComponent(1,"tata");
2597 b=a.selectByTupleIdSafe(arr2);
2598 self.assertEqual(5,b.getNumberOfTuples());
2599 self.assertEqual(2,b.getNumberOfComponents());
2600 self.assertTrue(b.getInfoOnComponent(0)=="toto");
2601 self.assertTrue(b.getInfoOnComponent(1)=="tata");
2602 expected1=[5.1,15.1,3.1,13.1,1.1,11.1,7.1,17.1,6.1,16.1]
2604 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2607 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr4);
2609 self.assertRaises(InterpKernelException,a.selectByTupleIdSafe,arr5);
2611 c=DataArrayInt.New();
2612 arr3=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
2613 c.setValues(arr3,7,2);
2614 c.setInfoOnComponent(0,"toto");
2615 c.setInfoOnComponent(1,"tata");
2616 d=c.selectByTupleIdSafe(arr2);
2617 self.assertEqual(5,d.getNumberOfTuples());
2618 self.assertEqual(2,d.getNumberOfComponents());
2619 self.assertTrue(d.getInfoOnComponent(0)=="toto");
2620 self.assertTrue(d.getInfoOnComponent(1)=="tata");
2621 expected2=[5,15,3,13,1,11,7,17,6,16]
2623 self.assertEqual(expected2[i],d.getIJ(0,i));
2625 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr4);
2626 self.assertRaises(InterpKernelException,c.selectByTupleIdSafe,arr5);
2629 def testAreCellsIncludedIn1(self):
2630 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2632 m2=m.buildPartOfMySelf(pt,True);
2633 ret,tmp=m.areCellsIncludedIn(m2,0)
2634 self.assertTrue(ret);
2635 self.assertEqual(2,tmp.getNumberOfTuples());
2636 self.assertEqual(1,tmp.getNumberOfComponents());
2637 self.assertEqual(pt[0],tmp.getIJ(0,0));
2638 self.assertEqual(pt[1],tmp.getIJ(0,1));
2639 ret,tmp=m2.areCellsIncludedIn(m,0)
2640 self.assertTrue(not ret);
2641 m3=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m,m2)
2642 c,cI=m3.findCommonCells(2,m.getNumberOfCells())
2643 self.assertTrue(c.isEqual(DataArrayInt([1,5,3,6])))
2644 self.assertTrue(cI.isEqual(DataArrayInt([0,2,4])))
2647 def testSwigErrorProtection1(self):
2648 m=MEDCouplingDataForTest.build3DTargetMesh_1();
2649 m.rotate([0.,0.,0.],[0.3,0.6,1.2],0.37)
2650 m.rotate([0.,0.,0.],[0.3,6,1.2],0.37)
2651 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],(0.3,6,"1.2"),0.37)
2652 self.assertRaises(InterpKernelException,m.rotate,[0.,"0.",0.],[0.3,0.6,1.2],0.37)
2653 self.assertRaises(InterpKernelException,m.rotate,[0.,0.,0.],[0.3,'0.6',1.2],0.37)
2654 m2=m.buildPartOfMySelf([2,5],True)
2655 m3=m.buildPartOfMySelf((2,5),True)
2656 self.assertTrue(m2.isEqual(m3,1e-12))
2657 self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[2,5.],True)
2658 da1=m.getCoords().keepSelectedComponents([1])
2659 da2=m.getCoords().keepSelectedComponents((1,))
2660 self.assertTrue(da1.isEqual(da2,1e-12))
2661 self.assertRaises(InterpKernelException,m.getCoords().keepSelectedComponents,["1"])
2664 def testDAIBuildSubstraction1(self):
2665 a=DataArrayInt.New()
2668 b=DataArrayInt.New()
2671 self.assertEqual([2,6,8],a.buildSubstraction(b).getValues())
2674 def testBuildOrthogonalField2(self):
2675 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2676 d1=DataArrayInt.New();
2677 d2=DataArrayInt.New();
2678 d3=DataArrayInt.New();
2679 d4=DataArrayInt.New();
2680 m1=m.buildDescendingConnectivity(d1,d2,d3,d4);
2682 f1=m1.buildOrthogonalField();
2684 self.assertEqual(2,da1.getNumberOfComponents());
2685 self.assertEqual(13,da1.getNumberOfTuples());
2687 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.];
2689 self.assertAlmostEqual(expected1[i],da1.getIJ(0,i),14);
2693 def testSwigErrorProtection2(self):
2694 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2696 c=m.getNodalConnectivity()
2697 ci=m.getNodalConnectivityIndex()
2699 self.assertEqual(2,coo.getNumberOfComponents());
2700 self.assertEqual(6,ci.getNumberOfTuples());
2701 self.assertEqual(23,c.getNumberOfTuples());
2702 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2703 f=m.getMeasureField(True)
2706 self.assertEqual(1,c.getNumberOfComponents());
2707 m=MEDCouplingCMesh.New()
2708 x=DataArrayDouble.New()
2709 x.setValues([1.,2.,4.],3,1)
2714 self.assertEqual(3,xx.getNumberOfTuples());
2716 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2717 f=m.getMeasureField(True)
2721 self.assertEqual(5,m2.getNumberOfCells());
2724 def testUMInsertNextCell1(self):
2725 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 ]
2726 targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]
2727 targetMesh=MEDCouplingUMesh.New();
2728 targetMesh.allocateCells(5);
2729 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_QUAD4,4,targetConn[0:4])
2730 targetMesh.setMeshDimension(2);
2731 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4])
2732 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_TETRA4,4,targetConn[0:4])
2733 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_SEG2,2,targetConn[0:2])
2734 self.assertRaises(InterpKernelException,targetMesh.insertNextCell,NORM_POINT1,1,targetConn[0:1])
2735 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7])
2736 targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10])
2737 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14])
2738 targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18])
2739 targetMesh.finishInsertingCells();
2740 myCoords=DataArrayDouble.New();
2741 myCoords.setValues(targetCoords,9,2);
2742 targetMesh.setCoords(myCoords);
2743 targetMesh.checkConsistencyLight();
2746 def testFieldOperatorDivDiffComp1(self):
2747 m=MEDCouplingDataForTest.build2DTargetMesh_1();
2748 m1,d0,d1,d2,d3=m.buildDescendingConnectivity();
2750 f1=m1.buildOrthogonalField();
2751 arr1=[2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.]
2752 arr=DataArrayDouble.New();
2753 arr.setValues(arr1,13,1);
2754 f2=MEDCouplingFieldDouble.New(ON_CELLS);
2757 f2.checkConsistencyLight();
2760 self.assertRaises(InterpKernelException,f2.__div__,f1)
2761 f3.checkConsistencyLight();
2763 #self.assertRaises(InterpKernelException,f2.__idiv__,f1) # mem leaks
2764 self.assertTrue(f1.isEqual(f3,1e-10,1e-10));
2765 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]
2767 self.assertAlmostEqual(expected1[i],f3.getIJ(0,i),10);
2771 def testDARearrange1(self):
2772 da1=DataArrayInt.New();
2776 self.assertEqual(12,da1.getNbOfElems());
2777 self.assertEqual(1,da1.getNumberOfComponents());
2778 self.assertEqual(12,da1.getNumberOfTuples());
2780 self.assertEqual(12,da1.getNbOfElems());
2781 self.assertEqual(4,da1.getNumberOfComponents());
2782 self.assertEqual(3,da1.getNumberOfTuples());
2784 self.assertEqual(i,da1.getIJ(0,i));
2787 self.assertEqual(12,da1.getNbOfElems());
2788 self.assertEqual(6,da1.getNumberOfComponents());
2789 self.assertEqual(2,da1.getNumberOfTuples());
2791 self.assertEqual(i,da1.getIJ(0,i));
2793 self.assertRaises(InterpKernelException,da1.rearrange,7);
2796 self.assertEqual(12,da1.getNbOfElems());
2797 self.assertEqual(12,da1.getNumberOfComponents());
2798 self.assertEqual(1,da1.getNumberOfTuples());
2800 self.assertEqual(i,da1.getIJ(0,i));
2803 self.assertEqual(12,da1.getNbOfElems());
2804 self.assertEqual(3,da1.getNumberOfComponents());
2805 self.assertEqual(4,da1.getNumberOfTuples());
2807 self.assertEqual(i,da1.getIJ(0,i));
2809 da2=da1.convertToDblArr();
2810 st=da2.getHiddenCppPointer()
2812 self.assertEqual(12,da2.getNbOfElems());
2813 self.assertEqual(3,da2.getNumberOfComponents());
2814 self.assertEqual(4,da2.getNumberOfTuples());
2816 self.assertEqual(12,da2.getNbOfElems());
2817 self.assertEqual(4,da2.getNumberOfComponents());
2818 self.assertEqual(3,da2.getNumberOfTuples());
2820 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2823 self.assertEqual(12,da2.getNbOfElems());
2824 self.assertEqual(6,da2.getNumberOfComponents());
2825 self.assertEqual(2,da2.getNumberOfTuples());
2827 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2829 self.assertRaises(InterpKernelException,da2.rearrange,7);
2832 self.assertEqual(st,da2.getHiddenCppPointer())
2833 self.assertEqual(12,da2.getNbOfElems());
2834 self.assertEqual(1,da2.getNumberOfComponents());
2835 self.assertEqual(12,da2.getNumberOfTuples());
2837 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2840 self.assertEqual(12,da2.getNbOfElems());
2841 self.assertEqual(3,da2.getNumberOfComponents());
2842 self.assertEqual(4,da2.getNumberOfTuples());
2844 self.assertAlmostEqual(float(i),da2.getIJ(0,i),14);
2847 def testDARearrange2(self):
2848 da1=DataArrayInt.New();
2849 arr=[1,2,3,2,2,3,5,1,5,5,2,2]
2850 da1.setValues(arr,4,3);
2851 s=da1.getDifferentValues();
2852 expected1=DataArrayInt([1,2,3,5])
2853 self.assertTrue(expected1.isEqual(s));
2856 def testSwigErrorProtection3(self):
2857 da=DataArrayInt.New()
2858 da.setValues([1,2,3,4,0,0,0,0,0,0,0,0],4,3)
2859 self.assertEqual([1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0],da.getValues())
2860 self.assertEqual(3,da.getNumberOfComponents());
2861 self.assertEqual(4,da.getNumberOfTuples());
2862 da=DataArrayInt.New()
2863 da.setValues(((1,2,3),(4,4,3),(0,0,0),(0,0,0)),4,3)
2864 self.assertEqual([1, 2, 3, 4, 4, 3, 0, 0, 0, 0, 0, 0],da.getValues())
2865 self.assertEqual(3,da.getNumberOfComponents());
2866 self.assertEqual(4,da.getNumberOfTuples());
2867 da.setValues((10*[1]+290*[2])[:12],4,3)
2868 self.assertEqual(10*[1]+[2,2],da.getValues())
2869 self.assertEqual(3,da.getNumberOfComponents());
2870 self.assertEqual(4,da.getNumberOfTuples());
2872 da=DataArrayDouble.New()
2873 da.setValues([1,2,3.,4,0,0,0,0,0,0,0,0],4,3)
2874 self.assertEqual([1., 2., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0.],da.getValues())
2875 self.assertEqual(3,da.getNumberOfComponents());
2876 self.assertEqual(4,da.getNumberOfTuples());
2877 da=DataArrayDouble.New()
2878 da.setValues(((1,2,3),(4.,4,3),(0,0,0),(0,0,0)),4,3)
2879 self.assertEqual([1., 2., 3., 4., 4., 3., 0., 0., 0., 0., 0., 0.],da.getValues())
2880 self.assertEqual(3,da.getNumberOfComponents());
2881 self.assertEqual(4,da.getNumberOfTuples());
2882 da.setValues((10*[1]+290*[2])[:12],4,3)
2883 self.assertEqual(10*[1.]+[2.,2.],da.getValues())
2884 self.assertEqual(3,da.getNumberOfComponents());
2885 self.assertEqual(4,da.getNumberOfTuples());
2888 def testDAIBuildPermutationArr1(self):
2889 a=DataArrayInt.New()
2890 a.setValues([4,5,6,7,8],5,1)
2891 b=DataArrayInt.New()
2892 b.setValues([5,4,8,6,7],5,1)
2893 c=a.buildPermutationArr(b)
2894 self.assertEqual([1,0,4,2,3],c.getValues())
2895 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
2897 self.assertTrue(not a.isEqualWithoutConsideringStrAndOrder(b))
2898 self.assertRaises(InterpKernelException,a.buildPermutationArr,b)
2901 b.setIJ(4,0,4)#a==[4,5,6,4,8] and b==[5,4,8,6,4]
2902 self.assertTrue(a.isEqualWithoutConsideringStrAndOrder(b))
2903 c=a.buildPermutationArr(b)
2904 self.assertEqual([1,3,4,2,3],c.getValues())
2905 d=b.convertToDblArr()
2908 self.assertEqual(expect3,b.getValues())
2910 self.assertEqual(5,d.getNumberOfTuples());
2911 self.assertEqual(1,d.getNumberOfComponents());
2913 self.assertAlmostEqual(float(expect3[i]),d.getIJ(i,0),14);
2917 def testAreCellsIncludedIn2(self):
2919 m=MEDCouplingDataForTest.build3DSurfTargetMesh_1();
2920 m2=m.buildPartOfMySelf([],True);
2921 self.assertEqual(0,m2.getNumberOfCells());
2922 self.assertEqual(3,m2.getSpaceDimension());
2923 self.assertEqual(2,m2.getMeshDimension());
2925 test,tmp=m.areCellsIncludedIn(m2,0)
2926 self.assertTrue(test);
2927 self.assertEqual(myName,tmp.getName());
2928 self.assertEqual(0,tmp.getNumberOfTuples())
2929 self.assertEqual(1,tmp.getNumberOfComponents())
2932 def testUMeshGetPartBarycenterAndOwner1(self):
2933 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2935 part=DataArrayInt.New();
2936 part.setValues(part1,3,1);
2937 b=m1.getPartBarycenterAndOwner(part);
2938 self.assertEqual(2,b.getNumberOfComponents());
2939 self.assertEqual(3,b.getNumberOfTuples());
2940 expected1=[0.36666666666666665,-0.13333333333333333,-0.05,-0.05,0.45,0.45];
2942 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2946 def testUMeshGetPartMeasureField1(self):
2947 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2949 part=DataArrayInt.New();
2950 part.setValues(part1,3,1);
2951 b=m1.getPartMeasureField(True,part);
2952 self.assertEqual(1,b.getNumberOfComponents());
2953 self.assertEqual(3,b.getNumberOfTuples());
2954 expected1=[0.125,0.25,0.25];
2956 self.assertAlmostEqual(expected1[i],b.getIJ(0,i),14);
2960 def testUMeshBuildPartOrthogonalField1(self):
2961 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2962 m1.changeSpaceDimension(3);
2964 part=DataArrayInt.New();
2965 part.setValues(part1,3,1);
2966 b=m1.buildPartOrthogonalField(part);
2967 self.assertEqual(3,b.getArray().getNumberOfComponents());
2968 self.assertEqual(3,b.getArray().getNumberOfTuples());
2969 expected1=[0.,0.,-1.,0.,0.,-1.,0.,0.,-1.];
2971 self.assertAlmostEqual(expected1[i],b.getArray().getIJ(0,i),14);
2975 def testUMeshGetTypesOfPart1(self):
2976 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2978 p1=DataArrayInt.New()
2979 p1.setValues(part1,3,1)
2980 s=m1.getTypesOfPart(p1);
2981 self.assertEqual([NORM_QUAD4],s);
2983 p2=DataArrayInt.New()
2984 p2.setValues(part2,4,1)
2985 s=m1.getTypesOfPart(p2);
2986 self.assertEqual([NORM_TRI3],s);
2988 p3=DataArrayInt.New()
2989 p3.setValues(part3,3,1)
2990 s=m1.getTypesOfPart(p3);
2991 self.assertEqual(s,[NORM_TRI3,NORM_QUAD4]);
2994 def testUMeshKeepCellIdsByType1(self):
2995 m1=MEDCouplingDataForTest.build2DTargetMesh_1();
2997 p1=DataArrayInt.New()
2998 p1.setValues(part1,3,1)
3000 a=m1.keepCellIdsByType(NORM_TRI3,p1);
3001 self.assertEqual("p1",a.getName())
3002 self.assertEqual(1,a.getNumberOfComponents());
3003 self.assertEqual(0,a.getNumberOfTuples());
3006 p2=DataArrayInt.New()
3007 p2.setValues(part2,5,1)
3009 a=m1.keepCellIdsByType(NORM_TRI3,p2);
3010 self.assertEqual("p2",a.getName())
3011 self.assertEqual(1,a.getNumberOfComponents());
3012 self.assertEqual(2,a.getNumberOfTuples());
3013 self.assertEqual(2,a.getIJ(0,0));
3014 self.assertEqual(2,a.getIJ(1,0));
3016 a=m1.keepCellIdsByType(NORM_QUAD4,p2);
3017 self.assertEqual("p2",a.getName())
3018 self.assertEqual(1,a.getNumberOfComponents());
3019 self.assertEqual(3,a.getNumberOfTuples());
3020 self.assertEqual(3,a.getIJ(0,0));
3021 self.assertEqual(0,a.getIJ(1,0));
3022 self.assertEqual(4,a.getIJ(2,0));
3025 def testSwigErrorDaIntSelectByTupleId1(self):
3026 a=DataArrayInt.New();
3027 arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
3028 a.setValues(arr1,7,2);
3029 a.setInfoOnComponent(0,"toto");
3030 a.setInfoOnComponent(1,"tata");
3033 b=a.selectByTupleId(arr2);
3034 self.assertEqual(5,b.getNumberOfTuples());
3035 self.assertEqual(2,b.getNumberOfComponents());
3036 self.assertTrue(b.getInfoOnComponent(0)=="toto");
3037 self.assertTrue(b.getInfoOnComponent(1)=="tata");
3038 expected1=[5,15,3,13,1,11,7,17,6,16]
3039 self.assertEqual(expected1,b.getValues())
3041 a2=DataArrayInt.New()
3042 a2.setValues(arr2,5,1)
3043 b=a.selectByTupleId(a2);
3044 self.assertEqual(5,b.getNumberOfTuples());
3045 self.assertEqual(2,b.getNumberOfComponents());
3046 self.assertTrue(b.getInfoOnComponent(0)=="toto");
3047 self.assertTrue(b.getInfoOnComponent(1)=="tata");
3048 expected1=[5,15,3,13,1,11,7,17,6,16]
3049 self.assertEqual(expected1,b.getValues())
3052 def testSwigErrorRenum(self):
3053 da=DataArrayDouble.New()
3054 da.setValues([7.,107.,8.,108.,9.,109.,10.,110.,11.,111.,12.,112.,13.,113.,14.,114.,15.,115.,16.,116.],10,2)
3055 d=DataArrayInt.New()
3056 d.setValues([0,2,3,1,4,5,6,8,7,9],10,1)
3057 da.renumberInPlace(d)
3063 if __name__ == '__main__':