]> SALOME platform Git repositories - modules/med.git/blob - src/MEDCouplingCorba_Swig/TestMEDCouplingCorbaClt.py
Salome HOME
Merge from V6_main 11/02/2013
[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 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 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));
154         pass
155     
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))
162         pass
163
164     def corbaField2DNTMFMTThread(self,i,fieldPtr,li):
165         fieldCpp=MEDCouplingFieldDoubleClient.New(fieldPtr);
166         li[i]=fieldCpp
167         pass
168     
169     def testCorbaField2DNTMultiFetchingMT(self):
170         li=8*[None]
171         th=8*[None]
172         fieldPtr=self._objC.getFieldScalarOn2DNT();
173         for i in xrange(8):
174             th[i]=threading.Thread(None,self.corbaField2DNTMFMTThread,"Test"+str(i),(i,fieldPtr,li))
175             th[i].start()
176             pass
177         for i in xrange(8):
178             th[i].join()
179             pass
180         for i in xrange(8-1):
181             self.assertTrue(li[i].isEqual(li[i+1],1.e-12,1.e-15));
182             pass
183         fieldPtr.UnRegister()
184         pass
185     
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));
193         pass
194     
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));
202         pass
203     
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));
213         pass
214     
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));
222         pass
223
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));
231         pass
232
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));
240         pass
241     
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));
249         pass
250
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));
258         pass
259
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));
267         pass
268
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));
276         pass
277     
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));
285         pass
286     
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));
294         pass
295     
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));
303         pass
304
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));
312         pass
313
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))
323         pass
324     
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))
332         pass
333
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))
341         pass
342
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))
350         pass
351
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))
359         pass
360
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))
368         pass
369
370     def testCorbaFetchingCoords1(self):
371         meshPtr=self._objC.get3DSurfMesh();
372         cooPtr=meshPtr.getCoords();
373         meshPtr.UnRegister();
374         cooCpp=DataArrayDoubleClient.New(cooPtr);
375         cooPtr.UnRegister();
376         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
377         meshRef=test.build3DSurfMesh();
378         #
379         self.assertTrue(meshRef.getCoords().isEqual(cooCpp,1e-12));
380         pass
381
382     def testCorbaMultiFields2(self):
383         fotPtr=self._objC.getMultiFields2();
384         fotc=MEDCouplingFieldOverTimeClient.New(fotPtr);
385         fotPtr.UnRegister();
386         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
387         refField=test.buildMultiFields2()
388         #
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];
393         for i in xrange(6):
394             self.assertAlmostEqual(expected[i],ts[i],12);
395         pass
396     
397     def testShutdownServer(self):
398         self._objC.shutdownOrb()
399         pass
400     
401     def setUp(self):
402         self._orb=CORBA.ORB_init([''])      
403         test=MEDCouplingCorbaSwigTest.MEDCouplingCorbaServBasicsTest()
404         f=file(test.buildFileNameForIOR(),"r")
405         ior=f.read()
406         self._objC=self._orb.string_to_object(ior);
407         pass
408     pass
409
410 unittest.main()