1 # Copyright (C) 2007-2013 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.
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 testCorbaFetchingCLMesh(self):
140 meshPtr=self._objC.getCLMesh();
141 _mesh_from_distant=MEDCouplingCurveLinearMeshClient.New(meshPtr);
142 meshPtr.UnRegister();
143 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
144 meshRef=test.buildCLMesh();
145 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
148 def testCorbaFetching1SGTUMesh(self):
149 meshPtr=self._objC.get1SGTUMesh();
150 _mesh_from_distant=MEDCoupling1SGTUMeshClient.New(meshPtr);
151 meshPtr.UnRegister();
152 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
153 meshRef=test.build1SGTUMesh();
154 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
157 def testCorbaFetching1DGTUMesh(self):
158 meshPtr=self._objC.get1DGTUMesh();
159 _mesh_from_distant=MEDCoupling1DGTUMeshClient.New(meshPtr);
160 meshPtr.UnRegister();
161 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
162 meshRef=test.build1DGTUMesh();
163 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
166 def testCorbaField2DNTFetching(self):
167 fieldPtr=self._objC.getFieldScalarOn2DNT();
168 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
169 fieldPtr.UnRegister();
170 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
171 refField=test.buildFieldScalarOn2DNT();
172 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
175 def testCorbaField2DNTMultiFetching(self):
176 fieldPtr=self._objC.getFieldScalarOn2DNT();
177 fieldCpp1=MEDCouplingFieldDoubleClient.New(fieldPtr);
178 fieldCpp2=MEDCouplingFieldDoubleClient.New(fieldPtr);
179 fieldPtr.UnRegister();
180 self.assertTrue(fieldCpp1.isEqual(fieldCpp2,1.e-12,1.e-15))
183 def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
184 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
188 def testCorbaField2DNTMultiFetchingMT(self):
191 fieldPtr=self._objC.getFieldScalarOn2DNT();
193 th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
199 for i in xrange(8-1):
200 self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
202 fieldPtr.UnRegister()
205 def testCorbaFieldNode2DNTFetching(self):
206 fieldPtr=self._objC.getFieldNodeScalarOn2DNT();
207 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
208 fieldPtr.UnRegister();
209 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
210 refField=test.buildFieldNodeScalarOn2DNT();
211 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
214 def testCorbaField3DNTFetching(self):
215 fieldPtr=self._objC.getFieldScalarOn3DNT();
216 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
217 fieldPtr.UnRegister();
218 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
219 refField=test.buildFieldScalarOn3DNT();
220 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
223 def testCorbaField3DSurfWTFetching(self):
224 fieldPtr=self._objC.getFieldScalarOn3DSurfWT();
225 self.assertEqual("toto25",fieldPtr.getName());
226 self.assertEqual(["aaa","bbbb","ccccc"],fieldPtr.getInfoOnComponents());
227 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
228 fieldPtr.UnRegister();
229 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
230 refField=test.buildFieldScalarOn3DSurfWT();
231 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
234 def testCorbaField3DSurfCOTIFetching(self):
235 fieldPtr=self._objC.getFieldScalarOn3DSurfCOTI();
236 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
237 fieldPtr.UnRegister();
238 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
239 refField=test.buildFieldScalarOn3DSurfCOTI();
240 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
243 def testCorbaField2DLTFetching(self):
244 fieldPtr=self._objC.getFieldScalarOn2DLT();
245 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
246 fieldPtr.UnRegister();
247 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
248 refField=test.buildFieldScalarOn2DLT();
249 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
252 def testCorbaFieldGaussPt2DWTFetching(self):
253 fieldPtr=self._objC.getFieldGaussPt2DWT();
254 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
255 fieldPtr.UnRegister();
256 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
257 refField=test.buildFieldGaussPt2DWT();
258 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
261 def testCorbaFieldGaussPtNE2DWTFetching(self):
262 fieldPtr=self._objC.getFieldGaussPtNE2DWT();
263 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
264 fieldPtr.UnRegister();
265 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
266 refField=test.buildFieldGaussPtNE2DWT();
267 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
270 def testCorbaFieldVectorOnExtrudedWT(self):
271 fieldPtr=self._objC.getFieldVectorOnExtrudedWT();
272 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
273 fieldPtr.UnRegister();
274 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
275 refField=test.buildFieldVectorOnExtrudedWT();
276 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
279 def testCorbaFieldVectorOnCMeshWT(self):
280 fieldPtr=self._objC.getFieldVectorOnCMeshWT();
281 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
282 fieldPtr.UnRegister();
283 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
284 refField=test.buildFieldVectorOnCMeshWT();
285 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
288 def testCorbaFieldTemplateCellOn2D(self):
289 fieldPtr=self._objC.getFieldTemplateCellOn2D();
290 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
291 fieldPtr.UnRegister();
292 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
293 refField=test.buildFieldTemplateCellOn2D();
294 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
297 def testCorbaFieldTemplateNodeOn2D(self):
298 fieldPtr=self._objC.getFieldTemplateNodeOn2D();
299 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
300 fieldPtr.UnRegister();
301 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
302 refField=test.buildFieldTemplateNodeOn2D();
303 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
306 def testCorbaFieldTemplateGaussPtOn2D(self):
307 fieldPtr=self._objC.getFieldTemplateGaussPtOn2D();
308 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
309 fieldPtr.UnRegister();
310 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
311 refField=test.buildFieldTemplateGaussPtOn2D();
312 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
315 def testCorbaFieldTemplateGaussNEOn2D(self):
316 fieldPtr=self._objC.getFieldTemplateGaussNEOn2D();
317 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
318 fieldPtr.UnRegister();
319 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
320 refField=test.buildFieldTemplateGaussNEOn2D();
321 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
324 def testCorbaMultiFields1(self):
325 fieldPtr=self._objC.getMultiFields1()
326 fieldCpp=MEDCouplingMultiFieldsClient.New(fieldPtr);
327 fieldPtr.UnRegister()
328 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
329 refField=test.buildMultiFields1();
330 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
333 def testCorbaArrayDouble1(self):
334 fieldPtr=self._objC.getArrayDouble1()
335 self.assertEqual("toto",fieldPtr.getName());
336 self.assertEqual(["sss","ppp","ttt"],fieldPtr.getInfoOnComponents());
337 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
338 fieldPtr.UnRegister()
339 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
340 refField=test.buildArrayDouble1();
341 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
344 def testCorbaArrayDouble2(self):
345 fieldPtr=self._objC.getArrayDouble2()
346 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
347 fieldPtr.UnRegister()
348 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
349 refField=test.buildArrayDouble2();
350 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
353 def testCorbaArrayDouble3(self):
354 fieldPtr=self._objC.getArrayDouble3()
355 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
356 fieldPtr.UnRegister()
357 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
358 refField=test.buildArrayDouble3();
359 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
362 def testCorbaArrayInt1(self):
363 fieldPtr=self._objC.getArrayInt1()
364 fieldCpp=DataArrayIntClient.New(fieldPtr)
365 fieldPtr.UnRegister()
366 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
367 refField=test.buildArrayInt1();
368 self.assertTrue(fieldCpp.isEqual(refField))
371 def testCorbaArrayInt2(self):
372 fieldPtr=self._objC.getArrayInt2()
373 fieldCpp=DataArrayIntClient.New(fieldPtr)
374 fieldPtr.UnRegister()
375 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
376 refField=test.buildArrayInt2();
377 self.assertTrue(fieldCpp.isEqual(refField))
380 def testCorbaArrayInt3(self):
381 fieldPtr=self._objC.getArrayInt3()
382 fieldCpp=DataArrayIntClient.New(fieldPtr)
383 fieldPtr.UnRegister()
384 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
385 refField=test.buildArrayInt3();
386 self.assertTrue(fieldCpp.isEqual(refField))
389 def testCorbaFetchingCoords1(self):
390 meshPtr=self._objC.get3DSurfMesh();
391 cooPtr=meshPtr.getCoords();
392 meshPtr.UnRegister();
393 cooCpp=DataArrayDoubleClient.New(cooPtr);
395 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
396 meshRef=test.build3DSurfMesh();
398 self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
401 def testCorbaMultiFields2(self):
402 fotPtr=self._objC.getMultiFields2();
403 fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
405 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
406 refField=test.buildMultiFields2()
408 self.assertTrue(fotc.isEqual(refField,1.e-12,1.e-15));
409 ts=fotc.getTimeSteps();
410 self.assertEqual(6,len(ts));
411 expected=[0.2,0.7,1.2,1.35,1.7,2.7];
413 self.assertAlmostEqual(expected[i],ts[i],12);
416 def testShutdownServer(self):
417 self._objC.shutdownOrb()
421 self._orb=CORBA.ORB_init([''])
422 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
423 f=file(test.buildFileNameForIOR(),"r")
425 self._objC=self._orb.string_to_object(ior);