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=MEDCouplingUMeshClient.New(meshPtr);
39 self.assertTrue(_mesh_from_distant.getSpaceDimension()==3);
40 self.assertTrue(_mesh_from_distant.getMeshDimension()==1);
41 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
42 meshRef=test.build1DMesh()
43 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
46 def testCorbaFetching2D(self):
47 meshPtr=self._objC.get2DMesh();
48 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
50 self.assertTrue(_mesh_from_distant.getSpaceDimension()==2);
51 self.assertTrue(_mesh_from_distant.getMeshDimension()==2);
52 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
53 meshRef=test.build2DMesh()
54 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
57 def testContentOfFetched2DMesh(self):
60 def testMultiFetchingToTestMemoryManagement(self):
61 for i in xrange(1000):
62 meshPtr=self._objC.get2DMesh();
63 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
65 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
66 meshRef=test.build2DMesh();
67 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
71 def testCorbaFetching3D(self):
72 meshPtr=self._objC.get3DMesh();
73 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
75 self.assertTrue(3==_mesh_from_distant.getSpaceDimension());
76 self.assertTrue(3==_mesh_from_distant.getMeshDimension());
77 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
78 meshRef=test.build3DMesh();
79 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
82 def testContentOfFetched3DMesh(self):
85 def testCorbaFetching3DSurf(self):
86 meshPtr=self._objC.get3DSurfMesh();
87 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
89 self.assertTrue(3==_mesh_from_distant.getSpaceDimension());
90 self.assertTrue(2==_mesh_from_distant.getMeshDimension());
91 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
92 meshRef=test.build3DSurfMesh();
93 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
96 def testContentOfFetched3DSurfMesh(self):
99 def testCorbaFetching0D(self):
100 meshPtr=self._objC.get0DMesh();
101 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
102 meshPtr.UnRegister();
103 self.assertTrue(3==_mesh_from_distant.getSpaceDimension());
104 self.assertTrue(0==_mesh_from_distant.getMeshDimension());
105 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
106 meshRef=test.build0DMesh();
107 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
110 def testCorbaFetchingM1D(self):
111 meshPtr=self._objC.getM1DMesh();
112 _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
113 meshPtr.UnRegister();
114 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
115 meshRef=test.buildM1DMesh();
116 self.assertTrue(-1==_mesh_from_distant.getMeshDimension());
117 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
120 def testCorbaFetchingExtruded(self):
121 meshPtr=self._objC.getExtrudedMesh();
122 _mesh_from_distant=MEDCouplingExtrudedMeshClient.New(meshPtr);
123 meshPtr.UnRegister();
124 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
125 meshRef=test.buildExtrudedMesh();
126 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
129 def testCorbaFetchingCMesh(self):
130 meshPtr=self._objC.getCMesh();
131 _mesh_from_distant=MEDCouplingCMeshClient.New(meshPtr);
132 meshPtr.UnRegister();
133 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
134 meshRef=test.buildCMesh();
135 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
138 def testCorbaFetchingCLMesh(self):
139 meshPtr=self._objC.getCLMesh();
140 _mesh_from_distant=MEDCouplingCurveLinearMeshClient.New(meshPtr);
141 meshPtr.UnRegister();
142 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
143 meshRef=test.buildCLMesh();
144 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
147 def testCorbaFetching1SGTUMesh(self):
148 meshPtr=self._objC.get1SGTUMesh();
149 _mesh_from_distant=MEDCoupling1SGTUMeshClient.New(meshPtr);
150 meshPtr.UnRegister();
151 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
152 meshRef=test.build1SGTUMesh();
153 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
156 def testCorbaFetching1DGTUMesh(self):
157 meshPtr=self._objC.get1DGTUMesh();
158 _mesh_from_distant=MEDCoupling1DGTUMeshClient.New(meshPtr);
159 meshPtr.UnRegister();
160 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
161 meshRef=test.build1DGTUMesh();
162 self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12))
165 def testCorbaField2DNTFetching(self):
166 fieldPtr=self._objC.getFieldScalarOn2DNT();
167 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
168 fieldPtr.UnRegister();
169 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
170 refField=test.buildFieldScalarOn2DNT();
171 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
174 def testCorbaField2DNTMultiFetching(self):
175 fieldPtr=self._objC.getFieldScalarOn2DNT();
176 fieldCpp1=MEDCouplingFieldDoubleClient.New(fieldPtr);
177 fieldCpp2=MEDCouplingFieldDoubleClient.New(fieldPtr);
178 fieldPtr.UnRegister();
179 self.assertTrue(fieldCpp1.isEqual(fieldCpp2,1.e-12,1.e-15))
182 def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
183 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
187 def testCorbaField2DNTMultiFetchingMT(self):
190 fieldPtr=self._objC.getFieldScalarOn2DNT();
192 th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
198 for i in xrange(8-1):
199 self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
201 fieldPtr.UnRegister()
204 def testCorbaFieldNode2DNTFetching(self):
205 fieldPtr=self._objC.getFieldNodeScalarOn2DNT();
206 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
207 fieldPtr.UnRegister();
208 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
209 refField=test.buildFieldNodeScalarOn2DNT();
210 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
213 def testCorbaField3DNTFetching(self):
214 fieldPtr=self._objC.getFieldScalarOn3DNT();
215 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
216 fieldPtr.UnRegister();
217 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
218 refField=test.buildFieldScalarOn3DNT();
219 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
222 def testCorbaField3DSurfWTFetching(self):
223 fieldPtr=self._objC.getFieldScalarOn3DSurfWT();
224 self.assertEqual("toto25",fieldPtr.getName());
225 self.assertEqual(["aaa","bbbb","ccccc"],fieldPtr.getInfoOnComponents());
226 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
227 fieldPtr.UnRegister();
228 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
229 refField=test.buildFieldScalarOn3DSurfWT();
230 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
233 def testCorbaField3DSurfCOTIFetching(self):
234 fieldPtr=self._objC.getFieldScalarOn3DSurfCOTI();
235 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
236 fieldPtr.UnRegister();
237 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
238 refField=test.buildFieldScalarOn3DSurfCOTI();
239 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
242 def testCorbaField2DLTFetching(self):
243 fieldPtr=self._objC.getFieldScalarOn2DLT();
244 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
245 fieldPtr.UnRegister();
246 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
247 refField=test.buildFieldScalarOn2DLT();
248 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
251 def testCorbaFieldGaussPt2DWTFetching(self):
252 fieldPtr=self._objC.getFieldGaussPt2DWT();
253 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
254 fieldPtr.UnRegister();
255 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
256 refField=test.buildFieldGaussPt2DWT();
257 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
260 def testCorbaFieldGaussPtNE2DWTFetching(self):
261 fieldPtr=self._objC.getFieldGaussPtNE2DWT();
262 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
263 fieldPtr.UnRegister();
264 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
265 refField=test.buildFieldGaussPtNE2DWT();
266 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
269 def testCorbaFieldVectorOnExtrudedWT(self):
270 fieldPtr=self._objC.getFieldVectorOnExtrudedWT();
271 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
272 fieldPtr.UnRegister();
273 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
274 refField=test.buildFieldVectorOnExtrudedWT();
275 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
278 def testCorbaFieldVectorOnCMeshWT(self):
279 fieldPtr=self._objC.getFieldVectorOnCMeshWT();
280 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
281 fieldPtr.UnRegister();
282 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
283 refField=test.buildFieldVectorOnCMeshWT();
284 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
287 def testCorbaFieldTemplateCellOn2D(self):
288 fieldPtr=self._objC.getFieldTemplateCellOn2D();
289 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
290 fieldPtr.UnRegister();
291 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
292 refField=test.buildFieldTemplateCellOn2D();
293 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
296 def testCorbaFieldTemplateNodeOn2D(self):
297 fieldPtr=self._objC.getFieldTemplateNodeOn2D();
298 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
299 fieldPtr.UnRegister();
300 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
301 refField=test.buildFieldTemplateNodeOn2D();
302 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
305 def testCorbaFieldTemplateGaussPtOn2D(self):
306 fieldPtr=self._objC.getFieldTemplateGaussPtOn2D();
307 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
308 fieldPtr.UnRegister();
309 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
310 refField=test.buildFieldTemplateGaussPtOn2D();
311 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
314 def testCorbaFieldTemplateGaussNEOn2D(self):
315 fieldPtr=self._objC.getFieldTemplateGaussNEOn2D();
316 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
317 fieldPtr.UnRegister();
318 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
319 refField=test.buildFieldTemplateGaussNEOn2D();
320 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
323 def testCorbaMultiFields1(self):
324 fieldPtr=self._objC.getMultiFields1()
325 fieldCpp=MEDCouplingMultiFieldsClient.New(fieldPtr);
326 fieldPtr.UnRegister()
327 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
328 refField=test.buildMultiFields1();
329 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
332 def testCorbaArrayDouble1(self):
333 fieldPtr=self._objC.getArrayDouble1()
334 self.assertEqual("toto",fieldPtr.getName());
335 self.assertEqual(["sss","ppp","ttt"],fieldPtr.getInfoOnComponents());
336 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
337 fieldPtr.UnRegister()
338 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
339 refField=test.buildArrayDouble1();
340 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
343 def testCorbaArrayDouble2(self):
344 fieldPtr=self._objC.getArrayDouble2()
345 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
346 fieldPtr.UnRegister()
347 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
348 refField=test.buildArrayDouble2();
349 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
352 def testCorbaArrayDouble3(self):
353 fieldPtr=self._objC.getArrayDouble3()
354 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
355 fieldPtr.UnRegister()
356 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
357 refField=test.buildArrayDouble3();
358 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
361 def testCorbaArrayInt1(self):
362 fieldPtr=self._objC.getArrayInt1()
363 fieldCpp=DataArrayIntClient.New(fieldPtr)
364 fieldPtr.UnRegister()
365 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
366 refField=test.buildArrayInt1();
367 self.assertTrue(fieldCpp.isEqual(refField))
370 def testCorbaArrayInt2(self):
371 fieldPtr=self._objC.getArrayInt2()
372 fieldCpp=DataArrayIntClient.New(fieldPtr)
373 fieldPtr.UnRegister()
374 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
375 refField=test.buildArrayInt2();
376 self.assertTrue(fieldCpp.isEqual(refField))
379 def testCorbaArrayInt3(self):
380 fieldPtr=self._objC.getArrayInt3()
381 fieldCpp=DataArrayIntClient.New(fieldPtr)
382 fieldPtr.UnRegister()
383 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
384 refField=test.buildArrayInt3();
385 self.assertTrue(fieldCpp.isEqual(refField))
388 def testCorbaFetchingCoords1(self):
389 meshPtr=self._objC.get3DSurfMesh();
390 cooPtr=meshPtr.getCoords();
391 meshPtr.UnRegister();
392 cooCpp=DataArrayDoubleClient.New(cooPtr);
394 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
395 meshRef=test.build3DSurfMesh();
397 self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
400 def testCorbaMultiFields2(self):
401 fotPtr=self._objC.getMultiFields2();
402 fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
404 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
405 refField=test.buildMultiFields2()
407 self.assertTrue(fotc.isEqual(refField,1.e-12,1.e-15));
408 ts=fotc.getTimeSteps();
409 self.assertEqual(6,len(ts));
410 expected=[0.2,0.7,1.2,1.35,1.7,2.7];
412 self.assertAlmostEqual(expected[i],ts[i],12);
415 def testShutdownServer(self):
416 self._objC.shutdownOrb()
420 self._orb=CORBA.ORB_init([''])
421 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
422 f=file(test.buildFileNameForIOR(),"r")
424 self._objC=self._orb.string_to_object(ior);