Salome HOME
c62011d94e3101d6f276e0e98d4e45f17f8a2982
[modules/med.git] / src / MEDCouplingCorba_Swig / TestMEDCouplingCorbaClt.py
1 # Copyright (C) 2007-2013  CEA/DEN, EDF R&D
2 #
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.
7 #
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.
12 #
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
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19 # Author : Anthony Geay (CEA/DEN)
20
21 import unittest
22 import CORBA
23 import MEDCouplingCorbaServantTest_idl
24 import MEDCouplingCorbaSwigTest
25 from MEDCouplingClient import *
26 import MEDCouplingCorbaServant_idl
27 import threading
28
29 class MEDCouplingCorbaServBasicsTestClt(unittest.TestCase):
30     def testBaseCorbaFetching(self):
31         self.assertTrue(not CORBA.is_nil(self._objC))
32         pass
33
34     def testContentOfFetched1DMesh(self):
35         meshPtr=self._objC.get1DMesh();
36         self.assertEqual("1DMeshForCorba",meshPtr.getName());
37         _mesh_from_distant=MEDCouplingMeshClient.New(meshPtr);
38         meshPtr.UnRegister();
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));
45         pass
46
47     def testCorbaFetching2D(self):
48         meshPtr=self._objC.get2DMesh();
49         _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
50         meshPtr.UnRegister();
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));
56         pass
57     
58     def testContentOfFetched2DMesh(self):
59         pass
60     
61     def testMultiFetchingToTestMemoryManagement(self):
62         for i in xrange(1000):
63             meshPtr=self._objC.get2DMesh();
64             _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
65             meshPtr.UnRegister();
66             test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
67             meshRef=test.build2DMesh();
68             self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
69             pass
70         pass
71     
72     def testCorbaFetching3D(self):
73         meshPtr=self._objC.get3DMesh();
74         _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
75         meshPtr.UnRegister();
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));
81         pass
82     
83     def testContentOfFetched3DMesh(self):
84         pass
85     
86     def testCorbaFetching3DSurf(self):
87         meshPtr=self._objC.get3DSurfMesh();
88         _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
89         meshPtr.UnRegister();
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));
95         pass
96     
97     def testContentOfFetched3DSurfMesh(self):
98         pass
99     
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));
109         pass
110     
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));
119         pass
120
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))
128         pass
129
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))
137         pass
138
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))
146         pass
147
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))
155         pass
156
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))
164         pass
165     
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));
173         pass
174     
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))
181         pass
182
183     def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
184         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
185         li[i]=fieldCpp
186         pass
187     
188     def testCorbaField2DNTMultiFetchingMT(self):
189         li=8*[None]
190         th=8*[None]
191         fieldPtr=self._objC.getFieldScalarOn2DNT();
192         for i in xrange(8):
193             th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
194             th[i].start()
195             pass
196         for i in xrange(8):
197             th[i].join()
198             pass
199         for i in xrange(8-1):
200             self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
201             pass
202         fieldPtr.UnRegister()
203         pass
204     
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));
212         pass
213     
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));
221         pass
222     
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));
232         pass
233     
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));
241         pass
242
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));
250         pass
251
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));
259         pass
260     
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));
268         pass
269
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));
277         pass
278
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));
286         pass
287
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));
295         pass
296     
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));
304         pass
305     
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));
313         pass
314     
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));
322         pass
323
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));
331         pass
332
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))
342         pass
343     
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))
351         pass
352
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))
360         pass
361
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))
369         pass
370
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))
378         pass
379
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))
387         pass
388
389     def testCorbaFetchingCoords1(self):
390         meshPtr=self._objC.get3DSurfMesh();
391         cooPtr=meshPtr.getCoords();
392         meshPtr.UnRegister();
393         cooCpp=DataArrayDoubleClient.New(cooPtr);
394         cooPtr.UnRegister();
395         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
396         meshRef=test.build3DSurfMesh();
397         #
398         self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
399         pass
400
401     def testCorbaMultiFields2(self):
402         fotPtr=self._objC.getMultiFields2();
403         fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
404         fotPtr.UnRegister();
405         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
406         refField=test.buildMultiFields2()
407         #
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];
412         for i in xrange(6):
413             self.assertAlmostEqual(expected[i],ts[i],12);
414         pass
415     
416     def testShutdownServer(self):
417         self._objC.shutdownOrb()
418         pass
419     
420     def setUp(self):
421         self._orb=CORBA.ORB_init([''])      
422         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
423         f=file(test.buildFileNameForIOR(),"r")
424         ior=f.read()
425         self._objC=self._orb.string_to_object(ior);
426         pass
427     pass
428
429 unittest.main()