From 10016625300472bb04397cc868f55884caab37b8 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Fri, 27 Jul 2012 14:12:56 +0200 Subject: [PATCH] Modularise test suite --- src/test-gradient-method-helper.hh | 23 +++++++++++++++++++++++ src/test-gradient-method.cc | 24 ++---------------------- 2 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 src/test-gradient-method-helper.hh diff --git a/src/test-gradient-method-helper.hh b/src/test-gradient-method-helper.hh new file mode 100644 index 00000000..45e7708b --- /dev/null +++ b/src/test-gradient-method-helper.hh @@ -0,0 +1,23 @@ +#include <boost/format.hpp> + +#include <dune/tnnmg/problem-classes/bisection.hh> + +#include <dune/tectonic/samplefunctional.hh> + +template <int dim> +double functionTester(Dune::SampleFunctional<dim> J, + typename Dune::SampleFunctional<dim>::SmallVector &start, + size_t runs) { + Bisection const bisection( + 0.0, // acceptError: Stop if the search interval has + // become smaller than this number + 1.0, // acceptFactor: ? + 1e-12, // requiredResidual: ? + true, // fastQuadratic + 0); // safety: acceptance factor for inexact minimization + double const original = J(start); + Dune::minimise(J, start, runs, bisection); + double const final = J(start); + std::cout << boost::format("%8g -> %e") % original % final << std::endl; + return final; +} diff --git a/src/test-gradient-method.cc b/src/test-gradient-method.cc index 18152d11..3348aea7 100644 --- a/src/test-gradient-method.cc +++ b/src/test-gradient-method.cc @@ -4,33 +4,13 @@ #include <cassert> -#include <boost/format.hpp> - #include <dune/common/exceptions.hh> #include <dune/common/shared_ptr.hh> -#include <dune/tnnmg/problem-classes/bisection.hh> - #include <dune/tectonic/samplefunctional.hh> -#include "test-gradient-method-nicefunction.hh" -template <int dim> -double functionTester(Dune::SampleFunctional<dim> J, - typename Dune::SampleFunctional<dim>::SmallVector &start, - size_t runs) { - Bisection const bisection( - 0.0, // acceptError: Stop if the search interval has - // become smaller than this number - 1.0, // acceptFactor: ? - 1e-12, // requiredResidual: ? - true, // fastQuadratic - 0); // safety: acceptance factor for inexact minimization - double const original = J(start); - Dune::minimise(J, start, runs, bisection); - double const final = J(start); - std::cout << boost::format("%8g -> %e") % original % final << std::endl; - return final; -} +#include "test-gradient-method-nicefunction.hh" +#include "test-gradient-method-helper.hh" void testIdentity() { int const dim = 2; -- GitLab