Salome HOME
Unwarningization under Win.
[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=MEDCouplingUMeshClient.New(meshPtr);
38         meshPtr.UnRegister();
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));
44         pass
45
46     def testCorbaFetching2D(self):
47         meshPtr=self._objC.get2DMesh();
48         _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
49         meshPtr.UnRegister();
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));
55         pass
56     
57     def testContentOfFetched2DMesh(self):
58         pass
59     
60     def testMultiFetchingToTestMemoryManagement(self):
61         for i in xrange(1000):
62             meshPtr=self._objC.get2DMesh();
63             _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
64             meshPtr.UnRegister();
65             test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
66             meshRef=test.build2DMesh();
67             self.assertTrue(_mesh_from_distant.isEqual(meshRef,1e-12));
68             pass
69         pass
70     
71     def testCorbaFetching3D(self):
72         meshPtr=self._objC.get3DMesh();
73         _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
74         meshPtr.UnRegister();
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));
80         pass
81     
82     def testContentOfFetched3DMesh(self):
83         pass
84     
85     def testCorbaFetching3DSurf(self):
86         meshPtr=self._objC.get3DSurfMesh();
87         _mesh_from_distant=MEDCouplingUMeshClient.New(meshPtr);
88         meshPtr.UnRegister();
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));
94         pass
95     
96     def testContentOfFetched3DSurfMesh(self):
97         pass
98     
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));
108         pass
109     
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));
118         pass
119
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))
127         pass
128
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))
136         pass
137
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))
145         pass
146
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))
154         pass
155
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))
163         pass
164     
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));
172         pass
173     
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))
180         pass
181
182     def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
183         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
184         li[i]=fieldCpp
185         pass
186     
187     def testCorbaField2DNTMultiFetchingMT(self):
188         li=8*[None]
189         th=8*[None]
190         fieldPtr=self._objC.getFieldScalarOn2DNT();
191         for i in xrange(8):
192             th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
193             th[i].start()
194             pass
195         for i in xrange(8):
196             th[i].join()
197             pass
198         for i in xrange(8-1):
199             self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
200             pass
201         fieldPtr.UnRegister()
202         pass
203     
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));
211         pass
212     
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));
220         pass
221     
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));
231         pass
232     
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));
240         pass
241
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));
249         pass
250
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));
258         pass
259     
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));
267         pass
268
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));
276         pass
277
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));
285         pass
286
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));
294         pass
295     
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));
303         pass
304     
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));
312         pass
313     
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));
321         pass
322
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));
330         pass
331
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))
341         pass
342     
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))
350         pass
351
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))
359         pass
360
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))
368         pass
369
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))
377         pass
378
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))
386         pass
387
388     def testCorbaFetchingCoords1(self):
389         meshPtr=self._objC.get3DSurfMesh();
390         cooPtr=meshPtr.getCoords();
391         meshPtr.UnRegister();
392         cooCpp=DataArrayDoubleClient.New(cooPtr);
393         cooPtr.UnRegister();
394         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
395         meshRef=test.build3DSurfMesh();
396         #
397         self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
398         pass
399
400     def testCorbaMultiFields2(self):
401         fotPtr=self._objC.getMultiFields2();
402         fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
403         fotPtr.UnRegister();
404         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
405         refField=test.buildMultiFields2()
406         #
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];
411         for i in xrange(6):
412             self.assertAlmostEqual(expected[i],ts[i],12);
413         pass
414     
415     def testShutdownServer(self):
416         self._objC.shutdownOrb()
417         pass
418     
419     def setUp(self):
420         self._orb=CORBA.ORB_init([''])      
421         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
422         f=file(test.buildFileNameForIOR(),"r")
423         ior=f.read()
424         self._objC=self._orb.string_to_object(ior);
425         pass
426     pass
427
428 unittest.main()