From 25f4176b8f943fa255943368744833d671e242d6 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Sat, 10 Sep 2011 13:36:44 +0200 Subject: [PATCH] Clean up testing code --- src/bisection-example-new.cc | 41 +++++++++++++++--------------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/src/bisection-example-new.cc b/src/bisection-example-new.cc index c44375fe..f4820def 100644 --- a/src/bisection-example-new.cc +++ b/src/bisection-example-new.cc @@ -152,6 +152,20 @@ class SampleFunctional { } }; +template <int dim, class Function> +void functionTester( + SampleFunctional<dim, Function> J, + typename SampleFunctional<dim, Function>::SmallVector &start, size_t runs) { + typename SampleFunctional<dim, Function>::SmallVector correction; + for (size_t i = 1; i <= runs; ++i) { + correction = J.minimise(start); + start += correction; + if (i != runs) + std::cout << "New value: J(...) = " << J(start) << std::endl; + } + std::cout << "Arrived at J(...) = " << J(start) << std::endl; +} + void testSampleFunction() { int const dim = 2; typedef SampleFunctional<dim, SampleFunction> SampleFunctional; @@ -167,21 +181,10 @@ void testSampleFunction() { SampleFunctional J(A, b); - SampleFunctional::SmallVector c = b; - c /= c.two_norm(); - - // assert(J.directionalDerivative(b,c) == 2*sqrt(5) + 2); - SampleFunctional::SmallVector start = b; start *= 17; - SampleFunctional::SmallVector correction; - for (int i = 1; i <= 6; ++i) { - correction = J.minimise(start); - start += correction; - std::cout << "New value: J(...) = " << J(start) << std::endl; - } - std::cout << "Arrived at J(...) = " << J(start) << std::endl; + functionTester(J, start, 6); } void testTrivialFunction() { @@ -199,26 +202,16 @@ void testTrivialFunction() { SampleFunctional J(A, b); - SampleFunctional::SmallVector c = b; - c /= c.two_norm(); - - // assert(J.directionalDerivative(b,c) == 2*sqrt(5)); - SampleFunctional::SmallVector start = b; start *= 17; - SampleFunctional::SmallVector correction; - for (int i = 1; i <= 5; ++i) { - correction = J.minimise(start); - start += correction; - std::cout << "New value: J(...) = " << J(start) << std::endl; - } - std::cout << "Arrived at J(...) = " << J(start) << std::endl; + functionTester(J, start, 5); } int main() { try { testSampleFunction(); + std::cout << std::endl; testTrivialFunction(); return 0; } -- GitLab