Salome HOME
Merge from V6_main 01/04/2013
[samples/calculator.git] / src / CALCULATOR / CALCULATOR_TEST.py
index 5b5ae2421d4c1490da94f1b543696b6046e74227..4506c4ec8e1eddb03ba47f71043ab27bab5d98e3 100644 (file)
@@ -1,29 +1,69 @@
+# Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+#CALCULATOR_TEST_WITHOUTIHM.py
+#
+from omniORB import CORBA
+
 import salome
 import SALOME
 import SALOME_MED
+import SALOMEDS
+
+from MEDCouplingCorba import *
+from MEDCoupling import *
+from MEDLoader import *
+
+import os
+host = os.getenv( 'HOST' )
+orb, lcc, naming_service, contmgr = salome.salome_kernel.salome_kernel_init()
 
 ################   GET A MED FIELD FROM FILE pointe.med   ###################
 #
 # This test program is based on the field named fieldcelldoublevector in 
 # med file $MED_ROOT_DIR/share/salome/resources/pointe.med
-from os import environ
-filePath=environ["MED_ROOT_DIR"]
-filePath=filePath+"/share/salome/resources/"
+filePath=os.environ["MED_ROOT_DIR"]
+filePath=filePath+"/share/salome/resources/med/"
 medFile=filePath+"pointe.med"
-fieldname = "fieldcelldouble"
+fieldname = "fieldcelldoublevector"
+meshname = "maa1"
 
 # Launch the Med Component and use it to load into memory the test field 
 print "Launch the Med Component: "
-med_comp = salome.lcc.FindOrLoadComponent("FactoryServer", "MED")
+med_comp = lcc.FindOrLoadComponent("FactoryServer", "MED")
 
 # Get a Corba field proxy on the distant field (located in the med_comp server).
 try:
-    studyname = salome.myStudyName
-    studynameId = salome.myStudyId
-    print "We are working in the study ",studyname," with the ID ",studynameId
+    #TODO
+    #Manager = obj._narrow(SALOMEDS.StudyManager)
+    #print "studyManager found"
+    #myStudy = myStudyManager.NewStudy('CALCULATOR_TEST')
+    #studynameId = myStudy._get_StudyId()
+    #studyname = myStudy._get_Name()
+    #print "We are working in the study ",studyname," with the ID ",studynameId
     print "Read field ",fieldname
-    fieldcell  = med_comp.readFieldInFile(medFile,studyname,fieldname,-1,-1)
-    fieldcelldouble = fieldcell._narrow(SALOME_MED.FIELDDOUBLE)
+    
+    f = MEDLoader.ReadFieldCell(medFile,meshname,0,fieldname,-1,-1)
+    fieldcelldouble=MEDCouplingFieldDoubleServant._this(f)
 except SALOME.SALOME_Exception, ex:
     print ex.details
     print ex.details.type
@@ -33,34 +73,46 @@ except SALOME.SALOME_Exception, ex:
     raise
 
 print "Description of Field : "
-print fieldcelldouble
-print fieldcelldouble.getName()
-print fieldcelldouble.getDescription()
-print fieldcelldouble.getNumberOfComponents()
-#
+print f
+print f.getName()
+print f.getDescription()
+print f.getNumberOfComponents()
+
 #
-##############  Load Calculator Component and test it   ###################
 #
+##############  Load Calculator Component ###################
+# Calculator Component must be in the Container of MED
 #
 print "Load Calculator Component "
 # we need to import CALCULATOR_ORB to get a typed object (to perform narrowing)
 import CALCULATOR_ORB
-calculator = salome.lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR")
+calculator = lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR")
+
 #
-print "Appel cloneField : fieldcelldouble -> f1,f2,f3,f4"
+#
+##############  Test Calculator Component ###################
+#
+#
+print "Appel cloneField : fieldcelldoublevector -> f1,f2,f3,f4"
 (f1,f2,f3,f4)=calculator.cloneField(fieldcelldouble)  # fieldcelldouble is consumed
 #
+f1.Register()
 calculator.printField(f1)
 print "Add fields f2+f3"
 f_add=calculator.add(f2, f3)
-calculator.printField(f_add)
+f_add.Register()
+calculator.printField( f_add ) # f_add is consumed
 
 #
 print "Apply linear function"
 f_lin=calculator.applyLin(f4,2.0,1.0)
+f_lin.Register()
+calculator.printField( f_lin ) # f_lin is consumed
 #
 print "Appel Norme Max "
-norme=calculator.normMax(f_lin)
+f_lin.Register()
+norme=calculator.normMax(f_lin) # f_lin is consumed
 print " -> norme = ",norme
 #
+
 print "End of Calculator Test!"