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 testCorbaField2DNTFetching(self):
148 fieldPtr=self._objC.getFieldScalarOn2DNT();
149 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
150 fieldPtr.UnRegister();
151 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
152 refField=test.buildFieldScalarOn2DNT();
153 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
156 def testCorbaField2DNTMultiFetching(self):
157 fieldPtr=self._objC.getFieldScalarOn2DNT();
158 fieldCpp1=MEDCouplingFieldDoubleClient.New(fieldPtr);
159 fieldCpp2=MEDCouplingFieldDoubleClient.New(fieldPtr);
160 fieldPtr.UnRegister();
161 self.assertTrue(fieldCpp1.isEqual(fieldCpp2,1.e-12,1.e-15))
164 def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
165 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
169 def testCorbaField2DNTMultiFetchingMT(self):
172 fieldPtr=self._objC.getFieldScalarOn2DNT();
174 th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
180 for i in xrange(8-1):
181 self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
183 fieldPtr.UnRegister()
186 def testCorbaFieldNode2DNTFetching(self):
187 fieldPtr=self._objC.getFieldNodeScalarOn2DNT();
188 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
189 fieldPtr.UnRegister();
190 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
191 refField=test.buildFieldNodeScalarOn2DNT();
192 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
195 def testCorbaField3DNTFetching(self):
196 fieldPtr=self._objC.getFieldScalarOn3DNT();
197 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
198 fieldPtr.UnRegister();
199 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
200 refField=test.buildFieldScalarOn3DNT();
201 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
204 def testCorbaField3DSurfWTFetching(self):
205 fieldPtr=self._objC.getFieldScalarOn3DSurfWT();
206 self.assertEqual("toto25",fieldPtr.getName());
207 self.assertEqual(["aaa","bbbb","ccccc"],fieldPtr.getInfoOnComponents());
208 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
209 fieldPtr.UnRegister();
210 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
211 refField=test.buildFieldScalarOn3DSurfWT();
212 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
215 def testCorbaField3DSurfCOTIFetching(self):
216 fieldPtr=self._objC.getFieldScalarOn3DSurfCOTI();
217 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
218 fieldPtr.UnRegister();
219 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
220 refField=test.buildFieldScalarOn3DSurfCOTI();
221 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
224 def testCorbaField2DLTFetching(self):
225 fieldPtr=self._objC.getFieldScalarOn2DLT();
226 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
227 fieldPtr.UnRegister();
228 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
229 refField=test.buildFieldScalarOn2DLT();
230 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
233 def testCorbaFieldGaussPt2DWTFetching(self):
234 fieldPtr=self._objC.getFieldGaussPt2DWT();
235 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
236 fieldPtr.UnRegister();
237 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
238 refField=test.buildFieldGaussPt2DWT();
239 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
242 def testCorbaFieldGaussPtNE2DWTFetching(self):
243 fieldPtr=self._objC.getFieldGaussPtNE2DWT();
244 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
245 fieldPtr.UnRegister();
246 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
247 refField=test.buildFieldGaussPtNE2DWT();
248 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
251 def testCorbaFieldVectorOnExtrudedWT(self):
252 fieldPtr=self._objC.getFieldVectorOnExtrudedWT();
253 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
254 fieldPtr.UnRegister();
255 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
256 refField=test.buildFieldVectorOnExtrudedWT();
257 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
260 def testCorbaFieldVectorOnCMeshWT(self):
261 fieldPtr=self._objC.getFieldVectorOnCMeshWT();
262 fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
263 fieldPtr.UnRegister();
264 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
265 refField=test.buildFieldVectorOnCMeshWT();
266 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
269 def testCorbaFieldTemplateCellOn2D(self):
270 fieldPtr=self._objC.getFieldTemplateCellOn2D();
271 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
272 fieldPtr.UnRegister();
273 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
274 refField=test.buildFieldTemplateCellOn2D();
275 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
278 def testCorbaFieldTemplateNodeOn2D(self):
279 fieldPtr=self._objC.getFieldTemplateNodeOn2D();
280 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
281 fieldPtr.UnRegister();
282 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
283 refField=test.buildFieldTemplateNodeOn2D();
284 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
287 def testCorbaFieldTemplateGaussPtOn2D(self):
288 fieldPtr=self._objC.getFieldTemplateGaussPtOn2D();
289 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
290 fieldPtr.UnRegister();
291 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
292 refField=test.buildFieldTemplateGaussPtOn2D();
293 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
296 def testCorbaFieldTemplateGaussNEOn2D(self):
297 fieldPtr=self._objC.getFieldTemplateGaussNEOn2D();
298 fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
299 fieldPtr.UnRegister();
300 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
301 refField=test.buildFieldTemplateGaussNEOn2D();
302 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
305 def testCorbaMultiFields1(self):
306 fieldPtr=self._objC.getMultiFields1()
307 fieldCpp=MEDCouplingMultiFieldsClient.New(fieldPtr);
308 fieldPtr.UnRegister()
309 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
310 refField=test.buildMultiFields1();
311 self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
314 def testCorbaArrayDouble1(self):
315 fieldPtr=self._objC.getArrayDouble1()
316 self.assertEqual("toto",fieldPtr.getName());
317 self.assertEqual(["sss","ppp","ttt"],fieldPtr.getInfoOnComponents());
318 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
319 fieldPtr.UnRegister()
320 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
321 refField=test.buildArrayDouble1();
322 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
325 def testCorbaArrayDouble2(self):
326 fieldPtr=self._objC.getArrayDouble2()
327 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
328 fieldPtr.UnRegister()
329 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
330 refField=test.buildArrayDouble2();
331 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
334 def testCorbaArrayDouble3(self):
335 fieldPtr=self._objC.getArrayDouble3()
336 fieldCpp=DataArrayDoubleClient.New(fieldPtr)
337 fieldPtr.UnRegister()
338 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
339 refField=test.buildArrayDouble3();
340 self.assertTrue(fieldCpp.isEqual(refField,1e-12))
343 def testCorbaArrayInt1(self):
344 fieldPtr=self._objC.getArrayInt1()
345 fieldCpp=DataArrayIntClient.New(fieldPtr)
346 fieldPtr.UnRegister()
347 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
348 refField=test.buildArrayInt1();
349 self.assertTrue(fieldCpp.isEqual(refField))
352 def testCorbaArrayInt2(self):
353 fieldPtr=self._objC.getArrayInt2()
354 fieldCpp=DataArrayIntClient.New(fieldPtr)
355 fieldPtr.UnRegister()
356 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
357 refField=test.buildArrayInt2();
358 self.assertTrue(fieldCpp.isEqual(refField))
361 def testCorbaArrayInt3(self):
362 fieldPtr=self._objC.getArrayInt3()
363 fieldCpp=DataArrayIntClient.New(fieldPtr)
364 fieldPtr.UnRegister()
365 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
366 refField=test.buildArrayInt3();
367 self.assertTrue(fieldCpp.isEqual(refField))
370 def testCorbaFetchingCoords1(self):
371 meshPtr=self._objC.get3DSurfMesh();
372 cooPtr=meshPtr.getCoords();
373 meshPtr.UnRegister();
374 cooCpp=DataArrayDoubleClient.New(cooPtr);
376 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
377 meshRef=test.build3DSurfMesh();
379 self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
382 def testCorbaMultiFields2(self):
383 fotPtr=self._objC.getMultiFields2();
384 fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
386 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
387 refField=test.buildMultiFields2()
389 self.assertTrue(fotc.isEqual(refField,1.e-12,1.e-15));
390 ts=fotc.getTimeSteps();
391 self.assertEqual(6,len(ts));
392 expected=[0.2,0.7,1.2,1.35,1.7,2.7];
394 self.assertAlmostEqual(expected[i],ts[i],12);
397 def testShutdownServer(self):
398 self._objC.shutdownOrb()
402 self._orb=CORBA.ORB_init([''])
403 test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
404 f=file(test.buildFileNameForIOR(),"r")
406 self._objC=self._orb.string_to_object(ior);