]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Add or correct tests for salome test
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Wed, 31 Aug 2016 11:44:53 +0000 (13:44 +0200)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Wed, 31 Aug 2016 11:44:53 +0000 (13:44 +0200)
17 files changed:
doc/en/bibliography.rst
doc/en/tui.rst
doc/fr/bibliography.rst
doc/fr/tui.rst
src/daSalome/daGUI/daEficasWrapper/adaoEficasWrapper.py
test/CTestTestfileInstall.cmake.in
test/Makefile.am
test/test1001/Versions.py
test/test1002/CTestTestfile.cmake
test/test6701/CTestTestfile.cmake
test/test6701/Doc_TUI_Exemple_01.py
test/test6702/CTestTestfile.cmake
test/test6702/Doc_TUI_Exemple_02.py
test/test6703/CTestTestfile.cmake
test/test6703/Doc_TUI_Exemple_03.py
test/test6901/CTestTestfile.cmake [new file with mode: 0644]
test/test6901/Verification_des_Assimilation_Algorithms.py [new file with mode: 0644]

index 20c6e111468f0f04e014b4f30a817edeb01d480e..912237f516cd972ba399002e7cc15125ebf2aa77 100644 (file)
@@ -29,6 +29,8 @@ Bibliography
 
 .. [Argaud09] Argaud J.-P., Bouriquet B., Hunt J., *Data Assimilation from Operational and Industrial Applications to Complex Systems*, Mathematics Today, pp.150-152, October 2009
 
+.. [GilBellosta15] Gil Bellosta C. J., *rPython: Package Allowing R to Call Python*, CRAN, 2015, https://cran.r-project.org/web/packages/rPython/ and http://rpython.r-forge.r-project.org/
+
 .. [Bouttier99] Bouttier B., Courtier P., *Data assimilation concepts and methods*, Meteorological Training Course Lecture Series, ECMWF, 1999, http://www.ecmwf.int/sites/default/files/Data%20assimilation%20concepts%20and%20methods.pdf
 
 .. [Bocquet04] Bocquet M., *Introduction aux principes et méthodes de l'assimilation de données en géophysique*, Lecture Notes, 2014, http://cerea.enpc.fr/HomePages/bocquet/Doc/assim-mb.pdf 
@@ -43,7 +45,7 @@ Bibliography
 
 .. [Kalnay03] Kalnay E., *Atmospheric Modeling, Data Assimilation and Predictability*, Cambridge University Press, 2003
 
-.. [Koenker00] Koenker R., Hallock K. F., *Quantile Regression: an Introduction*, 2000, available at http://www.econ.uiuc.edu/~roger/research/intro/intro.html
+.. [Koenker00] Koenker R., Hallock K. F., *Quantile Regression: an Introduction*, 2000, http://www.econ.uiuc.edu/~roger/research/intro/intro.html
 
 .. [Koenker01] Koenker R., Hallock K. F., *Quantile Regression*, Journal of Economic Perspectives, 15(4), pp.143-156, 2001
 
@@ -53,6 +55,8 @@ Bibliography
 
 .. [Powell] Powell M.J.D., *An efficient method for finding the minimum of a function of several variables without calculating derivatives*, Computer Journal, 7(2), pp.155-162, 1964
 
+.. [R] *The R Project for Statistical Computing*, http://www.r-project.org/
+
 .. [Salome] *SALOME The Open Source Integration Platform for Numerical Simulation*, http://www.salome-platform.org/
 
 .. [SalomeMeca] *Salome_Meca and Code_Aster, Analysis of Structures and Thermomechanics for Studies & Research*, http://www.code-aster.org/
index bc34aac9a0137178b30a9b4c39bf487fb4b478d4..8114394a0275715021629917227815fc919bbf13 100644 (file)
 **[DocR]** Textual Application Programming Interface for the user (API/TUI)
 ================================================================================
 
-.. warning::
-
-  in its present version, this text programming interface (TUI) is experimental,
-  and so changes can be required in forthcoming versions.
-
 This section presents advanced usage of the ADAO module using its text
 programming interface (API/TUI). This interface gives ability to create a
 calculation object in a similar way than the case building obtained through the
@@ -516,6 +511,8 @@ Get the calculation results separately
     :ref:`section_ref_output_variables` and to the individual documentations of
     the algorithms.
 
+.. _subsection_tui_advanced:
+
 More advanced examples of ADAO TUI calculation case
 ---------------------------------------------------
 
index ca4497adddb1bab44fd78d78e916b87ef355ddad..f8e4351a16231312c28c3d9324def09812b28344 100644 (file)
@@ -29,6 +29,8 @@ Bibliographie
 
 .. [Argaud09] Argaud J.-P., Bouriquet B., Hunt J., *Data Assimilation from Operational and Industrial Applications to Complex Systems*, Mathematics Today, pp.150-152, October 2009
 
+.. [GilBellosta15] Gil Bellosta C. J., *rPython: Package Allowing R to Call Python*, CRAN, 2015, https://cran.r-project.org/web/packages/rPython/ and http://rpython.r-forge.r-project.org/
+
 .. [Bouttier99] Bouttier B., Courtier P., *Data assimilation concepts and methods*, Meteorological Training Course Lecture Series, ECMWF, 1999, http://www.ecmwf.int/sites/default/files/Data%20assimilation%20concepts%20and%20methods.pdf
 
 .. [Bocquet04] Bocquet M., *Introduction aux principes et méthodes de l'assimilation de données en géophysique*, Lecture Notes, 2014, http://cerea.enpc.fr/HomePages/bocquet/Doc/assim-mb.pdf 
@@ -43,7 +45,7 @@ Bibliographie
 
 .. [Kalnay03] Kalnay E., *Atmospheric Modeling, Data Assimilation and Predictability*, Cambridge University Press, 2003
 
-.. [Koenker00] Koenker R., Hallock K. F., *Quantile Regression: an Introduction*, 2000, available at http://www.econ.uiuc.edu/~roger/research/intro/intro.html
+.. [Koenker00] Koenker R., Hallock K. F., *Quantile Regression: an Introduction*, 2000, http://www.econ.uiuc.edu/~roger/research/intro/intro.html
 
 .. [Koenker01] Koenker R., Hallock K. F., *Quantile Regression*, Journal of Economic Perspectives, 15(4), pp.143-156, 2001
 
@@ -53,6 +55,8 @@ Bibliographie
 
 .. [Powell] Powell M.J.D., *An efficient method for finding the minimum of a function of several variables without calculating derivatives*, Computer Journal, 7(2), pp.155-162, 1964
 
+.. [R] *The R Project for Statistical Computing*, http://www.r-project.org/
+
 .. [Salome] *SALOME The Open Source Integration Platform for Numerical Simulation*, http://www.salome-platform.org/
 
 .. [SalomeMeca] *Salome_Meca et Code_Aster, Analyse des Structures et Thermomécanique pour les Etudes et la Recherche*, http://www.code-aster.org/
index 5d1ddbdf90a59f5a7374b621133ce2f654e96de0..412a823e3be3185a4f37e8b6eaffbc31c889c5ff 100644 (file)
 **[DocR]** Interface de programmation textuelle pour l'utilisateur (API/TUI)
 ================================================================================
 
-.. warning::
-
-  dans sa présente version, cette interface de programmation textuelle (TUI) est
-  expérimentale, et reste donc susceptible de changements dans les prochaines
-  versions.
-
 Cette section présente des méthodes avancées d'usage du module ADAO à l'aide de
 son interface de programmation textuelle (API/TUI). Cette interface permet de
 créer un objet de calcul de manière similaire à la construction d'un cas par
@@ -549,6 +543,8 @@ Obtenir s
     fois aux :ref:`section_ref_output_variables` et aux documentations
     individuelles des algorithmes.
 
+.. _subsection_tui_advanced:
+
 Exemples plus avancés de cas de calcul TUI ADAO
 -----------------------------------------------
 
index 8e2116ee7f07d1cebeef4da5d6389cb3e3414441..94dfeb4218741e96918ef251b9a608a209048bd8 100644 (file)
@@ -68,7 +68,6 @@ class AdaoEficasWrapper(eficasSalome.MyEficas):
     def addJdcInSalome(self, jdcPath):
       debug("addJdcInSalome is called " + str(jdcPath))
       # On gere nous meme l'etude
-      pass
 
 #######
 #
index ecc955c1a86733747206c60d14fffe929ffea88b..da9c47300a6f410d05f1333798d3c5c134951f8d 100644 (file)
@@ -31,4 +31,5 @@ SUBDIRS(
     test6701
     test6702
     test6703
+    test6901
     )
index 03009fce549c273c878440ecde1e91fe2e330842..05e954f6b5f2d8473beb65676707044b5785a67d 100644 (file)
@@ -34,6 +34,7 @@ install-data-local:
        cp -R $(DIR)test6701 $(SALOMETESTDIR)
        cp -R $(DIR)test6702 $(SALOMETESTDIR)
        cp -R $(DIR)test6703 $(SALOMETESTDIR)
+       cp -R $(DIR)test6901 $(SALOMETESTDIR)
        cp    $(DIR)CTestTestfileInstall.cmake.in $(SALOMETESTDIR)/CTestTestfile.cmake
 
 uninstall-local:
@@ -43,4 +44,5 @@ uninstall-local:
        rm -rf $(SALOMETESTDIR)/test6701
        rm -rf $(SALOMETESTDIR)/test6702
        rm -rf $(SALOMETESTDIR)/test6703
+       rm -rf $(SALOMETESTDIR)/test6901
        rm     $(SALOMETESTDIR)/CTestTestfile.cmake
index b37bf38dd70ebbf557f67a4d1e5cd41158a5c782..0fac33cca5a2b42d2ba1b245c171c2cebc125fcc 100644 (file)
@@ -1,8 +1,30 @@
-#!/usr/bin/env python
 #-*-coding:iso-8859-1-*-
-"""Test des versions de modules"""
+#
+# Copyright (C) 2008-2016 EDF R&D
+#
+# 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
+#
+# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
+"Test des versions de modules"
 
-# Versions Calibre9/Jessie
+# ==============================================================================
+#
+# Versions minimales Calibre9/Jessie
+# ----------------------------------
 minimal_python_version     = "2.7.9"
 minimal_numpy_version      = "1.8.2"
 minimal_scipy_version      = "0.14.0"
@@ -86,11 +108,9 @@ def testSysteme():
     #
     return 0
 
-#===============================================================================
+# ==============================================================================
 if __name__ == "__main__":
-
-    print '\nAUTODIAGNOSTIC\n==============\n'
-
+    print '\n AUTODIAGNOSTIC \n'
     minimalVersion()
     sys.exit(testSysteme())
 
index 43a079a83b4be6285b06a88a6a1439ed7dce2bf8..71189e9b3c6059ac1642ba73f2378fa21232b59c 100644 (file)
@@ -19,8 +19,6 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-#FILE(GLOB ADAO_TEST1001_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.py")
-
 SET(TEST_NAMES
   HelloWorld
   )
index ab76b3119878752cf41822c8c2d63d7f298a2270..a9b9af1e0fcf10ba9a8035dab77af94dbc0eabb8 100644 (file)
@@ -19,8 +19,6 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-#FILE(GLOB ADAO_TEST1001_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.py")
-
 SET(TEST_NAMES
   Doc_TUI_Exemple_01
   )
index de51e7ebc39ecdde7735946e5f9b47e4bc7a403b..b5efd97aa0819c9c15b3982858045e6ec6e2625c 100644 (file)
@@ -23,7 +23,7 @@
 
 # ==============================================================================
 def test1():
-
+    """Exemple"""
     from numpy import array, matrix
     import adaoBuilder
     case = adaoBuilder.New()
@@ -35,6 +35,8 @@ def test1():
     case.set( 'ObservationOperator', Matrix='1 0 0;0 2 0;0 0 3' )
     case.set( 'Observer',            Variable="Analysis", Template="ValuePrinter" )
     case.execute()
+    #
+    return 0
 
 # ==============================================================================
 if __name__ == "__main__":
index 1a76e0ee0b49eb135c08b40c321197dd68c0cb74..61e052e9d581cc22e50848caae75b709063c3283 100644 (file)
@@ -19,8 +19,6 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-#FILE(GLOB ADAO_TEST1001_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.py")
-
 SET(TEST_NAMES
   Doc_TUI_Exemple_02
   )
index 1ca65e0f0216cb60010d2d43c4d61398a21f5227..3cfe935e3f9e53b7f47dcf2ee53bb0331756af51 100644 (file)
@@ -23,7 +23,7 @@
 
 # ==============================================================================
 def test1():
-
+    """Exemple"""
     from numpy import array, matrix
     import adaoBuilder
     case = adaoBuilder.New()
@@ -39,7 +39,7 @@ def test1():
     return case.get("Analysis")[-1]
 
 def test2():
-
+    """Exemple"""
     from numpy import array, matrix
     import adaoBuilder
     case = adaoBuilder.New()
@@ -64,6 +64,7 @@ def test2():
     return case.get("Analysis")[-1]
 
 def almost_equal_vectors(v1, v2):
+    """Comparaison de deux vecteurs"""
     print "\nMaximum of differences between the two :",max(abs(v2 - v1))
     return max(abs(v2 - v1)) < 1.e-15
 
index 7c6544a07a86727794eba56d87d9fce3fa79495c..038ce27d88041311a8f8a13e3687ee547e6e36b3 100644 (file)
@@ -19,8 +19,6 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-#FILE(GLOB ADAO_TEST1001_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.py")
-
 SET(TEST_NAMES
   Doc_TUI_Exemple_03
   )
index 44beceb36abf3b58e1cf4c5d61155f695b181427..b89e381367d906178c18aa3d19bea7193b358d98 100644 (file)
@@ -22,7 +22,6 @@
 "Verification d'un exemple de la documentation"
 
 # ==============================================================================
-
 #
 # Construction artificielle d'un exemple de donnees utilisateur
 # -------------------------------------------------------------
@@ -47,7 +46,7 @@ observations = simulation((2, 3, 4))
 
 # ==============================================================================
 def test1():
-    "Test"
+    "Exemple"
     import numpy
     import adaoBuilder
     #
@@ -99,6 +98,8 @@ def test1():
     print "Optimal state...................:",numpy.ravel(Xoptimum)
     print "Simulation at optimal state.....:",numpy.ravel(FX_at_optimum)
     print
+    #
+    return 0
 
 # ==============================================================================
 if __name__ == "__main__":
diff --git a/test/test6901/CTestTestfile.cmake b/test/test6901/CTestTestfile.cmake
new file mode 100644 (file)
index 0000000..67000d0
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright (C) 2008-2016 EDF R&D
+#
+# This file is part of SALOME ADAO module
+#
+# 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, or (at your option) any later version.
+#
+# 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
+#
+
+SET(TEST_NAMES
+  Verification_des_Assimilation_Algorithms
+  )
+
+FOREACH(tfile ${TEST_NAMES})
+  SET(TEST_NAME ADAO_${tfile})
+  ADD_TEST(${TEST_NAME} python ${tfile}.py)
+  #ADD_TEST(${TEST_NAME} python ${SALOME_TEST_DRIVER} ${TIMEOUT} ${tfile}.py)
+  SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME}")
+ENDFOREACH()
diff --git a/test/test6901/Verification_des_Assimilation_Algorithms.py b/test/test6901/Verification_des_Assimilation_Algorithms.py
new file mode 100644 (file)
index 0000000..17ae290
--- /dev/null
@@ -0,0 +1,103 @@
+#-*-coding:iso-8859-1-*-
+#
+# Copyright (C) 2008-2016 EDF R&D
+#
+# 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
+#
+# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
+"Verification de la disponibilite de l'ensemble des algorithmes"
+
+# ==============================================================================
+import adaoBuilder, numpy
+def test1():
+    """Verification de la disponibilite de l'ensemble des algorithmes"""
+    for algo in ("3DVAR", "Blue", "ExtendedBlue", "LinearLeastSquares", "NonLinearLeastSquares", ):
+        print
+        msg = "Algorithme en test : %s"%algo
+        print msg+"\n"+"="*len(msg)
+        #
+        adaopy = adaoBuilder.New()
+        adaopy.setAlgorithmParameters(Algorithm=algo, Parameters={"EpsilonMinimumExponent":-10, })
+        adaopy.setBackground         (Vector = [0,1,2])
+        adaopy.setBackgroundError    (ScalarSparseMatrix = 1.)
+        adaopy.setObservation        (Vector = [0.5,1.5,2.5])
+        adaopy.setObservationError   (DiagonalSparseMatrix = "1 1 1")
+        adaopy.setObservationOperator(Matrix = "1 0 0;0 2 0;0 0 3")
+        adaopy.setObserver("Analysis",Template="ValuePrinter")
+        adaopy.execute()
+        del adaopy
+    #
+    for algo in ("ExtendedKalmanFilter", "KalmanFilter", "UnscentedKalmanFilter", "4DVAR"):
+        print
+        msg = "Algorithme en test : %s"%algo
+        print msg+"\n"+"="*len(msg)
+        #
+        adaopy = adaoBuilder.New()
+        adaopy.setAlgorithmParameters(Algorithm=algo, Parameters={"EpsilonMinimumExponent":-10, })
+        adaopy.setBackground         (Vector = [0,1,2])
+        adaopy.setBackgroundError    (ScalarSparseMatrix = 1.)
+        adaopy.setObservation        (Vector = [0.5,1.5,2.5])
+        adaopy.setObservationError   (DiagonalSparseMatrix = "1 1 1")
+        adaopy.setObservationOperator(Matrix = "1 0 0;0 1 0;0 0 1")
+        adaopy.setEvolutionModel     (Matrix = "1 0 0;0 1 0;0 0 1")
+        adaopy.setEvolutionError     (ScalarSparseMatrix = 1.)
+        adaopy.setObserver("Analysis",Template="ValuePrinter")
+        adaopy.execute()
+        del adaopy
+    #
+    for algo in ("ParticleSwarmOptimization", "QuantileRegression", ):
+        print
+        msg = "Algorithme en test : %s"%algo
+        print msg+"\n"+"="*len(msg)
+        #
+        adaopy = adaoBuilder.New()
+        adaopy.setAlgorithmParameters(Algorithm=algo, Parameters={"BoxBounds":3*[[-1,3]], "SetSeed":1000, })
+        adaopy.setBackground         (Vector = [0,1,2])
+        adaopy.setBackgroundError    (ScalarSparseMatrix = 1.)
+        adaopy.setObservation        (Vector = [0.5,1.5,2.5])
+        adaopy.setObservationError   (DiagonalSparseMatrix = "1 1 1")
+        adaopy.setObservationOperator(Matrix = "1 0 0;0 1 0;0 0 1")
+        adaopy.setEvolutionModel     (Matrix = "1 0 0;0 1 0;0 0 1")
+        adaopy.setEvolutionError     (ScalarSparseMatrix = 1.)
+        adaopy.setObserver("Analysis",Template="ValuePrinter")
+        adaopy.execute()
+        del adaopy
+    #
+    for algo in ("EnsembleBlue", ):
+        print
+        msg = "Algorithme en test : %s"%algo
+        print msg+"\n"+"="*len(msg)
+        #
+        adaopy = adaoBuilder.New()
+        adaopy.setAlgorithmParameters(Algorithm=algo, Parameters={"SetSeed":1000, })
+        adaopy.setBackground         (VectorSerie = 100*[[0,1,2]])
+        adaopy.setBackgroundError    (ScalarSparseMatrix = 1.)
+        adaopy.setObservation        (Vector = [0.5,1.5,2.5])
+        adaopy.setObservationError   (DiagonalSparseMatrix = "1 1 1")
+        adaopy.setObservationOperator(Matrix = "1 0 0;0 1 0;0 0 1")
+        adaopy.setEvolutionModel     (Matrix = "1 0 0;0 1 0;0 0 1")
+        adaopy.setEvolutionError     (ScalarSparseMatrix = 1.)
+        adaopy.setObserver("Analysis",Template="ValuePrinter")
+        adaopy.execute()
+        del adaopy
+    #
+    return 0
+
+#===============================================================================
+if __name__ == "__main__":
+    print '\n AUTODIAGNOSTIC \n'
+    test1()