From e8d1b543d70b21f53ce76096e64dacfcc45aed27 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Thu, 17 Mar 2016 18:23:10 +0100 Subject: [PATCH] [T] Extend ExponentialExtraData test with setFunc. --- Tests/MathLib/TestCVode.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Tests/MathLib/TestCVode.cpp b/Tests/MathLib/TestCVode.cpp index 8b2ed6ea589..71e60951f6c 100644 --- a/Tests/MathLib/TestCVode.cpp +++ b/Tests/MathLib/TestCVode.cpp @@ -128,6 +128,24 @@ TEST(MathLibCVodeTest, ExponentialExtraData) ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); // std::printf("time: %g\n", time_reached); } + + ode_solver->setFunction(f_extra, nullptr, data); + ode_solver->preSolve(); + for (unsigned i = 11; i <= 15; ++i) + { + const double time = dt * i; + + ode_solver->solve(time); + + auto const y = ode_solver->getSolution(); + double time_reached = ode_solver->getTime(); + + std::printf("t: %14.7g, y: %14.7g, diff: %14.7g\n", time_reached, y[0], + y[0] - exp(-15.0 * time_reached)); + + ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); + // std::printf("time: %g\n", time_reached); + } } TEST(MathLibCVodeTest, ExponentialWithJacobian) -- GitLab