]> SALOME platform Git repositories - modules/med.git/blob - src/MEDCouplingCorba_Swig/TestMEDCouplingCorbaClt.py
Salome HOME
Merge from V6_main (04/10/2012)
[modules/med.git] / src / MEDCouplingCorba_Swig / TestMEDCouplingCorbaClt.py
1 # Copyright (C) 2007-2012  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 testCorbaField2DNTFetching(self):
139         fieldPtr=self._objC.getFieldScalarOn2DNT();
140         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
141         fieldPtr.UnRegister();
142         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
143         refField=test.buildFieldScalarOn2DNT();
144         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
145         pass
146     
147     def testCorbaField2DNTMultiFetching(self):
148         fieldPtr=self._objC.getFieldScalarOn2DNT();
149         fieldCpp1=MEDCouplingFieldDoubleClient.New(fieldPtr);
150         fieldCpp2=MEDCouplingFieldDoubleClient.New(fieldPtr);
151         fieldPtr.UnRegister();
152         self.assertTrue(fieldCpp1.isEqual(fieldCpp2,1.e-12,1.e-15))
153         pass
154
155     def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
156         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
157         li[i]=fieldCpp
158         pass
159     
160     def testCorbaField2DNTMultiFetchingMT(self):
161         li=8*[None]
162         th=8*[None]
163         fieldPtr=self._objC.getFieldScalarOn2DNT();
164         for i in xrange(8):
165             th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
166             th[i].start()
167             pass
168         for i in xrange(8):
169             th[i].join()
170             pass
171         for i in xrange(8-1):
172             self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
173             pass
174         fieldPtr.UnRegister()
175         pass
176     
177     def testCorbaFieldNode2DNTFetching(self):
178         fieldPtr=self._objC.getFieldNodeScalarOn2DNT();
179         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
180         fieldPtr.UnRegister();
181         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
182         refField=test.buildFieldNodeScalarOn2DNT();
183         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
184         pass
185     
186     def testCorbaField3DNTFetching(self):
187         fieldPtr=self._objC.getFieldScalarOn3DNT();
188         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
189         fieldPtr.UnRegister();
190         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
191         refField=test.buildFieldScalarOn3DNT();
192         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
193         pass
194     
195     def testCorbaField3DSurfWTFetching(self):
196         fieldPtr=self._objC.getFieldScalarOn3DSurfWT();
197         self.assertEqual("toto25",fieldPtr.getName());
198         self.assertEqual(["aaa","bbbb","ccccc"],fieldPtr.getInfoOnComponents());
199         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
200         fieldPtr.UnRegister();
201         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
202         refField=test.buildFieldScalarOn3DSurfWT();
203         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
204         pass
205     
206     def testCorbaField3DSurfCOTIFetching(self):
207         fieldPtr=self._objC.getFieldScalarOn3DSurfCOTI();
208         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
209         fieldPtr.UnRegister();
210         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
211         refField=test.buildFieldScalarOn3DSurfCOTI();
212         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
213         pass
214
215     def testCorbaField2DLTFetching(self):
216         fieldPtr=self._objC.getFieldScalarOn2DLT();
217         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
218         fieldPtr.UnRegister();
219         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
220         refField=test.buildFieldScalarOn2DLT();
221         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
222         pass
223
224     def testCorbaFieldGaussPt2DWTFetching(self):
225         fieldPtr=self._objC.getFieldGaussPt2DWT();
226         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
227         fieldPtr.UnRegister();
228         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
229         refField=test.buildFieldGaussPt2DWT();
230         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
231         pass
232     
233     def testCorbaFieldGaussPtNE2DWTFetching(self):
234         fieldPtr=self._objC.getFieldGaussPtNE2DWT();
235         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
236         fieldPtr.UnRegister();
237         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
238         refField=test.buildFieldGaussPtNE2DWT();
239         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
240         pass
241
242     def testCorbaFieldVectorOnExtrudedWT(self):
243         fieldPtr=self._objC.getFieldVectorOnExtrudedWT();
244         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
245         fieldPtr.UnRegister();
246         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
247         refField=test.buildFieldVectorOnExtrudedWT();
248         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
249         pass
250
251     def testCorbaFieldVectorOnCMeshWT(self):
252         fieldPtr=self._objC.getFieldVectorOnCMeshWT();
253         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
254         fieldPtr.UnRegister();
255         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
256         refField=test.buildFieldVectorOnCMeshWT();
257         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
258         pass
259
260     def testCorbaFieldTemplateCellOn2D(self):
261         fieldPtr=self._objC.getFieldTemplateCellOn2D();
262         fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
263         fieldPtr.UnRegister();
264         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
265         refField=test.buildFieldTemplateCellOn2D();
266         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
267         pass
268     
269     def testCorbaFieldTemplateNodeOn2D(self):
270         fieldPtr=self._objC.getFieldTemplateNodeOn2D();
271         fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
272         fieldPtr.UnRegister();
273         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
274         refField=test.buildFieldTemplateNodeOn2D();
275         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
276         pass
277     
278     def testCorbaFieldTemplateGaussPtOn2D(self):
279         fieldPtr=self._objC.getFieldTemplateGaussPtOn2D();
280         fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
281         fieldPtr.UnRegister();
282         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
283         refField=test.buildFieldTemplateGaussPtOn2D();
284         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
285         pass
286     
287     def testCorbaFieldTemplateGaussNEOn2D(self):
288         fieldPtr=self._objC.getFieldTemplateGaussNEOn2D();
289         fieldCpp=MEDCouplingFieldTemplateClient.New(fieldPtr);
290         fieldPtr.UnRegister();
291         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
292         refField=test.buildFieldTemplateGaussNEOn2D();
293         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
294         pass
295
296     def testCorbaMultiFields1(self):
297         fieldPtr=self._objC.getMultiFields1()
298         fieldCpp=MEDCouplingMultiFieldsClient.New(fieldPtr);
299         fieldPtr.UnRegister()
300         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
301         refField=test.buildMultiFields1();
302         self.assertTrue(fieldCpp.isEqual(refField,1.e-12,1.e-15));
303         pass
304
305     def testCorbaArrayDouble1(self):
306         fieldPtr=self._objC.getArrayDouble1()
307         self.assertEqual("toto",fieldPtr.getName());
308         self.assertEqual(["sss","ppp","ttt"],fieldPtr.getInfoOnComponents());
309         fieldCpp=DataArrayDoubleClient.New(fieldPtr)
310         fieldPtr.UnRegister()
311         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
312         refField=test.buildArrayDouble1();
313         self.assertTrue(fieldCpp.isEqual(refField,1e-12))
314         pass
315     
316     def testCorbaArrayDouble2(self):
317         fieldPtr=self._objC.getArrayDouble2()
318         fieldCpp=DataArrayDoubleClient.New(fieldPtr)
319         fieldPtr.UnRegister()
320         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
321         refField=test.buildArrayDouble2();
322         self.assertTrue(fieldCpp.isEqual(refField,1e-12))
323         pass
324
325     def testCorbaArrayDouble3(self):
326         fieldPtr=self._objC.getArrayDouble3()
327         fieldCpp=DataArrayDoubleClient.New(fieldPtr)
328         fieldPtr.UnRegister()
329         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
330         refField=test.buildArrayDouble3();
331         self.assertTrue(fieldCpp.isEqual(refField,1e-12))
332         pass
333
334     def testCorbaArrayInt1(self):
335         fieldPtr=self._objC.getArrayInt1()
336         fieldCpp=DataArrayIntClient.New(fieldPtr)
337         fieldPtr.UnRegister()
338         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
339         refField=test.buildArrayInt1();
340         self.assertTrue(fieldCpp.isEqual(refField))
341         pass
342
343     def testCorbaArrayInt2(self):
344         fieldPtr=self._objC.getArrayInt2()
345         fieldCpp=DataArrayIntClient.New(fieldPtr)
346         fieldPtr.UnRegister()
347         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
348         refField=test.buildArrayInt2();
349         self.assertTrue(fieldCpp.isEqual(refField))
350         pass
351
352     def testCorbaArrayInt3(self):
353         fieldPtr=self._objC.getArrayInt3()
354         fieldCpp=DataArrayIntClient.New(fieldPtr)
355         fieldPtr.UnRegister()
356         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
357         refField=test.buildArrayInt3();
358         self.assertTrue(fieldCpp.isEqual(refField))
359         pass
360
361     def testCorbaFetchingCoords1(self):
362         meshPtr=self._objC.get3DSurfMesh();
363         cooPtr=meshPtr.getCoords();
364         meshPtr.UnRegister();
365         cooCpp=DataArrayDoubleClient.New(cooPtr);
366         cooPtr.UnRegister();
367         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
368         meshRef=test.build3DSurfMesh();
369         #
370         self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
371         pass
372
373     def testCorbaMultiFields2(self):
374         fotPtr=self._objC.getMultiFields2();
375         fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
376         fotPtr.UnRegister();
377         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
378         refField=test.buildMultiFields2()
379         #
380         self.assertTrue(fotc.isEqual(refField,1.e-12,1.e-15));
381         ts=fotc.getTimeSteps();
382         self.assertEqual(6,len(ts));
383         expected=[0.2,0.7,1.2,1.35,1.7,2.7];
384         for i in xrange(6):
385             self.assertAlmostEqual(expected[i],ts[i],12);
386         pass
387     
388     def testShutdownServer(self):
389         self._objC.shutdownOrb()
390         pass
391     
392     def setUp(self):
393         self._orb=CORBA.ORB_init([''])      
394         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
395         f=file(test.buildFileNameForIOR(),"r")
396         ior=f.read()
397         self._objC=self._orb.string_to_object(ior);
398         pass
399     pass
400
401 unittest.main()