From a2cf7f781ddad84a2ab5d0a5fc922a51364ffc4b Mon Sep 17 00:00:00 2001 From: jhumeau Date: Tue, 11 May 2010 10:25:27 +0000 Subject: [PATCH] test added git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1808 331e1502-861f-0410-8da2-ba01fb791d7f --- trunk/paradiseo-mo/test/CMakeLists.txt | 5 + trunk/paradiseo-mo/test/t-moCounterStat.cpp | 62 ++++++++++ .../test/t-moMinusOneCounterStat.cpp | 64 ++++++++++ .../test/t-moNeighborBestStat.cpp | 74 ++++++++++++ .../test/t-moRandomSearchExplorer.cpp | 65 ++++++++++ trunk/paradiseo-mo/test/t-moVectorMonitor.cpp | 112 ++++++++++++++++++ 6 files changed, 382 insertions(+) create mode 100644 trunk/paradiseo-mo/test/t-moCounterStat.cpp create mode 100644 trunk/paradiseo-mo/test/t-moMinusOneCounterStat.cpp create mode 100644 trunk/paradiseo-mo/test/t-moNeighborBestStat.cpp create mode 100644 trunk/paradiseo-mo/test/t-moRandomSearchExplorer.cpp create mode 100644 trunk/paradiseo-mo/test/t-moVectorMonitor.cpp diff --git a/trunk/paradiseo-mo/test/CMakeLists.txt b/trunk/paradiseo-mo/test/CMakeLists.txt index cf8eb6090..8cf5f5565 100644 --- a/trunk/paradiseo-mo/test/CMakeLists.txt +++ b/trunk/paradiseo-mo/test/CMakeLists.txt @@ -99,6 +99,11 @@ SET (TEST_LIST t-moSolInit t-moEvalCounter t-moNeighborFitnessStat + t-moNeighborBestStat + t-moCounterStat + t-moMinusOneCounterStat + t-moVectorMonitor + t-moRandomSearchExplorer ) FOREACH (test ${TEST_LIST}) diff --git a/trunk/paradiseo-mo/test/t-moCounterStat.cpp b/trunk/paradiseo-mo/test/t-moCounterStat.cpp new file mode 100644 index 000000000..f722bb74d --- /dev/null +++ b/trunk/paradiseo-mo/test/t-moCounterStat.cpp @@ -0,0 +1,62 @@ +/* + +Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + +Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can ue, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +ParadisEO WebSite : http://paradiseo.gforge.inria.fr +Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include + +int main(){ + + std::cout << "[t-moCounterStat] => START" << std::endl; + + moCounterStat test; + + int a=3; + + test.init(a); + assert(test.value()==0); + a=5; + test(a); + assert(test.value()==1); + a=-3; + test(a); + assert(test.value()==2); + a=-12; + test.init(a); + assert(test.value()==0); + + assert(test.className()=="moCounterStat"); + + std::cout << "[t-moCounterStat] => OK" << std::endl; + + return EXIT_SUCCESS; +} + diff --git a/trunk/paradiseo-mo/test/t-moMinusOneCounterStat.cpp b/trunk/paradiseo-mo/test/t-moMinusOneCounterStat.cpp new file mode 100644 index 000000000..923e63df7 --- /dev/null +++ b/trunk/paradiseo-mo/test/t-moMinusOneCounterStat.cpp @@ -0,0 +1,64 @@ +/* + +Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + +Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can ue, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +ParadisEO WebSite : http://paradiseo.gforge.inria.fr +Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include + +int main(){ + + std::cout << "[t-moMinusOneCounterStat] => START" << std::endl; + + moMinusOneCounterStat test; + + int a=3; + + test.init(a); + assert(test.value()==0); + a=5; + test(a); + assert(test.value()==0); + a=-3; + test(a); + assert(test.value()==1); + a=-12; + test(a); + assert(test.value()==2); + test.init(a); + assert(test.value()==0); + + assert(test.className()=="moMinusOneCounterStat"); + + std::cout << "[t-moMinusOneCounterStat] => OK" << std::endl; + + return EXIT_SUCCESS; +} + diff --git a/trunk/paradiseo-mo/test/t-moNeighborBestStat.cpp b/trunk/paradiseo-mo/test/t-moNeighborBestStat.cpp new file mode 100644 index 000000000..80a6050d2 --- /dev/null +++ b/trunk/paradiseo-mo/test/t-moNeighborBestStat.cpp @@ -0,0 +1,74 @@ +/* + +Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + +Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can ue, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +ParadisEO WebSite : http://paradiseo.gforge.inria.fr +Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include +#include "moTestClass.h" + +int main(){ + + std::cout << "[t-moNeighborBestStat] => START" << std::endl; + + bitNeighborhood nh(4); + bitNeighborhood emptyNH(0); + evalOneMax eval(4); + moSolNeighborComparator sncomp; + moNeighborComparator ncomp; + + moNeighborBestStat test1(nh, eval, ncomp, sncomp, 1); + moNeighborBestStat test2(nh, eval); + moNeighborBestStat test3(emptyNH, eval); + + bitVector sol(4, true); + sol.fitness(4); + + test1.init(sol); + assert(test1.value()==3); + + sol[0]=false; + sol.fitness(3); + test1(sol); + assert(test1.value()==4); + + test2(sol); + assert(test2.value()==2); + + test3(sol); + assert(test3.value()==int()); + + assert(test1.className()=="moNeighborBestStat"); + + std::cout << "[t-moNeighborBestStat] => OK" << std::endl; + + return EXIT_SUCCESS; +} + diff --git a/trunk/paradiseo-mo/test/t-moRandomSearchExplorer.cpp b/trunk/paradiseo-mo/test/t-moRandomSearchExplorer.cpp new file mode 100644 index 000000000..dd65bcfdd --- /dev/null +++ b/trunk/paradiseo-mo/test/t-moRandomSearchExplorer.cpp @@ -0,0 +1,65 @@ +/* + +Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + +Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can ue, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +ParadisEO WebSite : http://paradiseo.gforge.inria.fr +Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include +#include "moTestClass.h" +#include + +int main(){ + + std::cout << "[t-moRandomSearchExplorer] => START" << std::endl; + + dummyInit init; + oneMaxEval eval; + bitVector sol(4, true); + + moRandomSearchExplorer test(init, eval, 2); + + test.initParam(sol); + test(sol); + assert(sol.fitness()==4); + test.updateParam(sol); + assert(test.isContinue(sol)); + test.updateParam(sol); + assert(!test.isContinue(sol)); + test.initParam(sol); + assert(test.isContinue(sol)); + test.terminate(sol); + assert(test.accept(sol)); + test.move(sol); + + std::cout << "[t-moRandomSearchExplorer] => OK" << std::endl; + + return EXIT_SUCCESS; +} + diff --git a/trunk/paradiseo-mo/test/t-moVectorMonitor.cpp b/trunk/paradiseo-mo/test/t-moVectorMonitor.cpp new file mode 100644 index 000000000..e0fe6d656 --- /dev/null +++ b/trunk/paradiseo-mo/test/t-moVectorMonitor.cpp @@ -0,0 +1,112 @@ +/* + +Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + +Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can ue, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +ParadisEO WebSite : http://paradiseo.gforge.inria.fr +Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include +#include "moTestClass.h" + +int main(){ + + std::cout << "[t-moVectorMonitor] => START" << std::endl; + + + eoValueParam doubleParam; + eoValueParam intParam; + eoValueParam eotParam; + eoValueParam stringParam; + doubleParam.value()= 3.1; + intParam.value()=6; + bitVector sol(4,true); + sol.fitness(0); + eotParam.value()=sol; + + moVectorMonitor test1(doubleParam); + moVectorMonitor test2(intParam); + moVectorMonitor test3(eotParam); + moVectorMonitor test4(stringParam); + + assert(!test1.solutionType()); + assert(!test2.solutionType()); + assert(test3.solutionType()); + + test1(); + test2(); + test3(); + doubleParam.value()= 3.3; + intParam.value()=7; + sol.fitness(1); + eotParam.value()=sol; + test1(); + test2(); + test3(); + doubleParam.value()= 3.6; + intParam.value()=8; + sol.fitness(2); + eotParam.value()=sol; + test1(); + test2(); + test3(); + doubleParam.value()= 3.001; + intParam.value()=9; + test1(); + test2(); + + assert(test1.size()==4); + assert(test2.size()==4); + assert(test3.size()==3); + assert(test1.getValue(1)=="3.3"); + assert(test2.getValue(2)=="8"); + std::cout << test3.getValue(2) << std::endl; + assert(test1.getValues()[0]==3.1); + assert(test2.getValues()[2]==8); + assert(test3.getSolutions()[0].fitness()==0); + + test1.fileExport("outputTestVectorMonitor.txt"); + + test1.clear(); + test2.clear(); + test3.clear(); + assert(test1.size()==0); + assert(test2.size()==0); + assert(test3.size()==0); + + + + assert(test1.className()=="moVectorMonitor"); + + + + std::cout << "[t-moVectorMonitor] => OK" << std::endl; + + return EXIT_SUCCESS; +} +