1 # Copyright (C) 2007-2014 CEA/DEN, EDF R&D
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 # Author : Anthony Geay (CEA/DEN)
23 import MEDCouplingCorbaServantTest_idl
24 import MEDCouplingCorbaSwigTest
25 from MEDCouplingClient import *
26 import MEDCouplingCorbaServant_idl
29 class MEDCouplingCorbaServBasicsTestClt(unittest.TestCase):
30 def testBaseCorbaFetching(self):
31 self.assertTrue(not CORBA.is_nil(self._objC))
34 def testContentOfFetched1DMesh(self):
35 meshPtr=self._objC.get1DMesh();
36 self.assertEqual("1DMeshForCorba",meshPtr.getName());
37 _mesh_from_distant=MEDCouplingMeshClient.New(meshPtr);
39 self.assertTrue(isinstance(_mesh_from_distant,MEDCouplingUMesh))
40 self.assertTrue(_mesh_from_distant.getSpaceDimension()==3);
41 self.assertTrue(_mesh_from_distant.getMeshDimension()==1);
42 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
43 meshRef=test.build1DMesh()
44 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
47 def testCorbaFetching2D(self):
48 meshPtr=self._objC.get2DMesh();
49 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
51 self.assertTrue(_mesh_from_distant.getSpaceDimension()==2);
52 self.assertTrue(_mesh_from_distant.getMeshDimension()==2);
53 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
54 meshRef=test.build2DMesh()
55 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
58 def testContentOfFetched2DMesh(self):
61 def testMultiFetchingToTestMemoryManagement(self):
62 for i in xrange(1000):
63 meshPtr=self._objC.get2DMesh();
64 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
66 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
67 meshRef=test.build2DMesh();
68 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
72 def testCorbaFetching3D(self):
73 meshPtr=self._objC.get3DMesh();
74 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
76 self.assertTrue(3==_mesh_from_distant.getSpaceDimension());
77 self.assertTrue(3==_mesh_from_distant.getMeshDimension());
78 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
79 meshRef=test.build3DMesh();
80 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
83 def testContentOfFetched3DMesh(self):
86 def testCorbaFetching3DSurf(self):
87 meshPtr=self._objC.get3DSurfMesh();
88 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
90 self.assertTrue(3==_mesh_from_distant.getSpaceDimension());
91 self.assertTrue(2==_mesh_from_distant.getMeshDimension());
92 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
93 meshRef=test.build3DSurfMesh();
94 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
97 def testContentOfFetched3DSurfMesh(self):
100 def testCorbaFetching0D(self):
101 meshPtr=self._objC.get0DMesh();
102 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
103 meshPtr.UnRegister();
104 self.assertTrue(3==_mesh_from_distant.getSpaceDimension());
105 self.assertTrue(0==_mesh_from_distant.getMeshDimension());
106 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
107 meshRef=test.build0DMesh();
108 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
111 def testCorbaFetchingM1D(self):
112 meshPtr=self._objC.getM1DMesh();
113 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
114 meshPtr.UnRegister();
115 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
116 meshRef=test.buildM1DMesh();
117 self.assertTrue(-1==_mesh_from_distant.getMeshDimension());
118 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
121 def testCorbaFetchingExtruded(self):
122 meshPtr=self._objC.getExtrudedMesh();
123 _mesh_from_distant=MEDCouplingExtrudedMeshClient.New(meshPtr);
124 meshPtr.UnRegister();
125 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
126 meshRef=test.buildExtrudedMesh();
127 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
130 def testCorbaFetchingCMesh(self):
131 meshPtr=self._objC.getCMesh();
132 _mesh_from_distant=MEDCouplingCMeshClient.New(meshPtr);
133 meshPtr.UnRegister();
134 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
135 meshRef=test.buildCMesh();
136 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
139 def testCorbaFetchingIMesh(self):
140 meshPtr=self._objC.getIMesh();
141 _mesh_from_distant=MEDCouplingIMeshClient.New(meshPtr);
142 meshPtr.UnRegister();
143 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
144 meshRef=test.buildIMesh();
145 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
148 def testCorbaFetchingCLMesh(self):
149 meshPtr=self._objC.getCLMesh();
150 _mesh_from_distant=MEDCouplingCurveLinearMeshClient.New(meshPtr);
151 meshPtr.UnRegister();
152 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
153 meshRef=test.buildCLMesh();
154 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
157 def testCorbaFetching1SGTUMesh(self):
158 meshPtr=self._objC.get1SGTUMesh();
159 _mesh_from_distant=MEDCoupling1SGTUMeshClient.New(meshPtr);
160 meshPtr.UnRegister();
161 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
162 meshRef=test.build1SGTUMesh();
163 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
166 def testCorbaFetching1DGTUMesh(self):
167 meshPtr=self._objC.get1DGTUMesh();
168 _mesh_from_distant=MEDCoupling1DGTUMeshClient.New(meshPtr);
169 meshPtr.UnRegister();
170 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
171 meshRef=test.build1DGTUMesh();
172 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
175 def testCorbaField2DNTFetching(self):
176 fieldPtr=self._objC.getFieldScalarOn2DNT();
177 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
178 fieldPtr.UnRegister();
179 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
180 refField=test.buildFieldScalarOn2DNT();
181 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
184 def testCorbaField2DNTMultiFetching(self):
185 fieldPtr=self._objC.getFieldScalarOn2DNT();
186 fieldCpp1=MEDCouplingFieldDoubleClient.New(fieldPtr);
187 fieldCpp2=MEDCouplingFieldDoubleClient.New(fieldPtr);
188 fieldPtr.UnRegister();
189 self.assertTrue(fieldCpp1.isEqual(fieldCpp2,1.e-12,1.e-15))
192 def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
193 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
197 def testCorbaField2DNTMultiFetchingMT(self):
200 fieldPtr=self._objC.getFieldScalarOn2DNT();
202 th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
208 for i in xrange(8-1):
209 self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
211 fieldPtr.UnRegister()
214 def testCorbaFieldNode2DNTFetching(self):
215 fieldPtr=self._objC.getFieldNodeScalarOn2DNT();
216 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
217 fieldPtr.UnRegister();
218 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
219 refField=test.buildFieldNodeScalarOn2DNT();
220 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
223 def testCorbaField3DNTFetching(self):
224 fieldPtr=self._objC.getFieldScalarOn3DNT();
225 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
226 fieldPtr.UnRegister();
227 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
228 refField=test.buildFieldScalarOn3DNT();
229 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
232 def testCorbaField3DSurfWTFetching(self):
233 fieldPtr=self._objC.getFieldScalarOn3DSurfWT();
234 self.assertEqual("toto25",fieldPtr.getName());
235 self.assertEqual(["aaa","bbbb","ccccc"],fieldPtr.getInfoOnComponents());
236 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
237 fieldPtr.UnRegister();
238 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
239 refField=test.buildFieldScalarOn3DSurfWT();
240 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
243 def testCorbaField3DSurfCOTIFetching(self):
244 fieldPtr=self._objC.getFieldScalarOn3DSurfCOTI();
245 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
246 fieldPtr.UnRegister();
247 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
248 refField=test.buildFieldScalarOn3DSurfCOTI();
249 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
252 def testCorbaField2DLTFetching(self):
253 fieldPtr=self._objC.getFieldScalarOn2DLT();
254 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
255 fieldPtr.UnRegister();
256 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
257 refField=test.buildFieldScalarOn2DLT();
258 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
261 def testCorbaFieldGaussPt2DWTFetching(self):
262 fieldPtr=self._objC.getFieldGaussPt2DWT();
263 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
264 fieldPtr.UnRegister();
265 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
266 refField=test.buildFieldGaussPt2DWT();
267 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
270 def testCorbaFieldGaussPtNE2DWTFetching(self):
271 fieldPtr=self._objC.getFieldGaussPtNE2DWT();
272 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
273 fieldPtr.UnRegister();
274 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
275 refField=test.buildFieldGaussPtNE2DWT();
276 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
279 def testCorbaFieldVectorOnExtrudedWT(self):
280 fieldPtr=self._objC.getFieldVectorOnExtrudedWT();
281 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
282 fieldPtr.UnRegister();
283 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
284 refField=test.buildFieldVectorOnExtrudedWT();
285 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
288 def testCorbaFieldVectorOnCMeshWT(self):
289 fieldPtr=self._objC.getFieldVectorOnCMeshWT();
290 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
291 fieldPtr.UnRegister();
292 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
293 refField=test.buildFieldVectorOnCMeshWT();
294 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
297 def testCorbaFieldTemplateCellOn2D(self):
298 fieldPtr=self._objC.getFieldTemplateCellOn2D();
299 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
300 fieldPtr.UnRegister();
301 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
302 refField=test.buildFieldTemplateCellOn2D();
303 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
306 def testCorbaFieldTemplateNodeOn2D(self):
307 fieldPtr=self._objC.getFieldTemplateNodeOn2D();
308 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
309 fieldPtr.UnRegister();
310 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
311 refField=test.buildFieldTemplateNodeOn2D();
312 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
315 def testCorbaFieldTemplateGaussPtOn2D(self):
316 fieldPtr=self._objC.getFieldTemplateGaussPtOn2D();
317 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
318 fieldPtr.UnRegister();
319 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
320 refField=test.buildFieldTemplateGaussPtOn2D();
321 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
324 def testCorbaFieldTemplateGaussNEOn2D(self):
325 fieldPtr=self._objC.getFieldTemplateGaussNEOn2D();
326 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
327 fieldPtr.UnRegister();
328 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
329 refField=test.buildFieldTemplateGaussNEOn2D();
330 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
333 def testCorbaMultiFields1(self):
334 fieldPtr=self._objC.getMultiFields1()
335 fieldCpp=MEDCouplingMultiFieldsClient.New(fieldPtr);
336 fieldPtr.UnRegister()
337 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
338 refField=test.buildMultiFields1();
339 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
342 def testCorbaArrayDouble1(self):
343 fieldPtr=self._objC.getArrayDouble1()
344 self.assertEqual("toto",fieldPtr.getName());
345 self.assertEqual(["sss","ppp","ttt"],fieldPtr.getInfoOnComponents());
346 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
347 fieldPtr.UnRegister()
348 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
349 refField=test.buildArrayDouble1();
350 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
353 def testCorbaArrayDouble2(self):
354 fieldPtr=self._objC.getArrayDouble2()
355 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
356 fieldPtr.UnRegister()
357 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
358 refField=test.buildArrayDouble2();
359 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
362 def testCorbaArrayDouble3(self):
363 fieldPtr=self._objC.getArrayDouble3()
364 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
365 fieldPtr.UnRegister()
366 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
367 refField=test.buildArrayDouble3();
368 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
371 def testCorbaArrayInt1(self):
372 fieldPtr=self._objC.getArrayInt1()
373 fieldCpp=DataArrayIntClient.New(fieldPtr)
374 fieldPtr.UnRegister()
375 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
376 refField=test.buildArrayInt1();
377 self.assertTrue(fieldCpp.isEqual(refField))
380 def testCorbaArrayInt2(self):
381 fieldPtr=self._objC.getArrayInt2()
382 fieldCpp=DataArrayIntClient.New(fieldPtr)
383 fieldPtr.UnRegister()
384 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
385 refField=test.buildArrayInt2();
386 self.assertTrue(fieldCpp.isEqual(refField))
389 def testCorbaArrayInt3(self):
390 fieldPtr=self._objC.getArrayInt3()
391 fieldCpp=DataArrayIntClient.New(fieldPtr)
392 fieldPtr.UnRegister()
393 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
394 refField=test.buildArrayInt3();
395 self.assertTrue(fieldCpp.isEqual(refField))
398 def testCorbaFetchingCoords1(self):
399 meshPtr=self._objC.get3DSurfMesh();
400 cooPtr=meshPtr.getCoords();
401 meshPtr.UnRegister();
402 cooCpp=DataArrayDoubleClient.New(cooPtr);
404 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
405 meshRef=test.build3DSurfMesh();
407 self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
410 def testCorbaMultiFields2(self):
411 fotPtr=self._objC.getMultiFields2();
412 fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
414 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
415 refField=test.buildMultiFields2()
417 self.assertTrue(fotc.isEqual(refField,1.e-12,1.e-15));
418 ts=fotc.getTimeSteps();
419 self.assertEqual(6,len(ts));
420 expected=[0.2,0.7,1.2,1.35,1.7,2.7];
422 self.assertAlmostEqual(expected[i],ts[i],12);
425 def testShutdownServer(self):
426 self._objC.shutdownOrb()
430 self._orb=CORBA.ORB_init([''])
431 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
432 f=file(test.buildFileNameForIOR(),"r")
434 self._objC=self._orb.string_to_object(ior);