From 3c80fead6383b13788723d8d4e1d7925d96ba89e Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Tue, 31 Jan 2017 08:12:35 +0100 Subject: [PATCH] Test extension for checking algorithms --- src/daComposant/daCore/PlatformInfo.py | 7 ++ test/CTestTestfileInstall.cmake.in | 1 + test/Makefile.am | 2 + test/test6902/CTestTestfile.cmake | 31 +++++++ .../Verification_des_Checking_Algorithms.py | 80 +++++++++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 test/test6902/CTestTestfile.cmake create mode 100644 test/test6902/Verification_des_Checking_Algorithms.py diff --git a/src/daComposant/daCore/PlatformInfo.py b/src/daComposant/daCore/PlatformInfo.py index 14792d7..0858883 100644 --- a/src/daComposant/daCore/PlatformInfo.py +++ b/src/daComposant/daCore/PlatformInfo.py @@ -142,6 +142,13 @@ class PlatformInfo(object): return "%s %s (%s)"%(dav.name,dav.version,dav.date) # ============================================================================== +try: + import scipy + import scipy.optimize + has_scipy = True +except ImportError: + has_scipy = False + try: import matplotlib has_matplotlib = True diff --git a/test/CTestTestfileInstall.cmake.in b/test/CTestTestfileInstall.cmake.in index d786c25..4fe93a4 100644 --- a/test/CTestTestfileInstall.cmake.in +++ b/test/CTestTestfileInstall.cmake.in @@ -32,4 +32,5 @@ SUBDIRS( test6702 test6703 test6901 + test6902 ) diff --git a/test/Makefile.am b/test/Makefile.am index 473ae3e..3d286aa 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -35,6 +35,7 @@ install-data-local: cp -R $(DIR)test6702 $(SALOMETESTDIR) cp -R $(DIR)test6703 $(SALOMETESTDIR) cp -R $(DIR)test6901 $(SALOMETESTDIR) + cp -R $(DIR)test6902 $(SALOMETESTDIR) cp $(DIR)CTestTestfileInstall.cmake.in $(SALOMETESTDIR)/CTestTestfile.cmake uninstall-local: @@ -45,4 +46,5 @@ uninstall-local: rm -rf $(SALOMETESTDIR)/test6702 rm -rf $(SALOMETESTDIR)/test6703 rm -rf $(SALOMETESTDIR)/test6901 + rm -rf $(SALOMETESTDIR)/test6902 rm $(SALOMETESTDIR)/CTestTestfile.cmake diff --git a/test/test6902/CTestTestfile.cmake b/test/test6902/CTestTestfile.cmake new file mode 100644 index 0000000..41533e5 --- /dev/null +++ b/test/test6902/CTestTestfile.cmake @@ -0,0 +1,31 @@ +# Copyright (C) 2008-2017 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_Checking_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/test6902/Verification_des_Checking_Algorithms.py b/test/test6902/Verification_des_Checking_Algorithms.py new file mode 100644 index 0000000..63a331a --- /dev/null +++ b/test/test6902/Verification_des_Checking_Algorithms.py @@ -0,0 +1,80 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2017 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 + +import adaoBuilder + +# ============================================================================== +def test1(): + for algo in ("AdjointTest", "FunctionTest", "GradientTest", "LinearityTest", "TangentTest"): + print + msg = "Algorithme en test : %s"%algo + print msg+"\n"+"-"*len(msg) + # + adaopy = adaoBuilder.New() + adaopy.setAlgorithmParameters(Algorithm=algo, Parameters={"EpsilonMinimumExponent":-10,"NumberOfRepetition":2, "SetSeed":1000}) + adaopy.setCheckingPoint (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.execute() + del adaopy + # + for algo in ("ObserverTest", ): + print + msg = "Algorithme en test : %s"%algo + print msg+"\n"+"-"*len(msg) + # + adaopy = adaoBuilder.New() + adaopy.setAlgorithmParameters(Algorithm=algo) + adaopy.setCheckingPoint (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 ("SamplingTest", ): + print + msg = "Algorithme en test : %s"%algo + print msg+"\n"+"-"*len(msg) + # + adaopy = adaoBuilder.New() + adaopy.setAlgorithmParameters(Algorithm=algo, Parameters={ + "StoreSupplementaryCalculations":["CostFunctionJ","CurrentState",], + "SampleAsMinMaxStepHyperCube":[[-1.,1.,1.],[0,2,1],[1,3,1]], + }) + adaopy.setCheckingPoint (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 ("CurrentState",Template="ValuePrinter") + adaopy.execute() + del adaopy + +# ============================================================================== +if __name__ == "__main__": + print '\n AUTODIAGNOSTIC \n' + test1() -- 2.39.2