/* [auto_generated] integrate.cpp [begin_description] tba. [end_description] Copyright 2009-2012 Karsten Ahnert Copyright 2009-2012 Mario Mulansky Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #include #ifdef BOOST_MSVC #pragma warning(disable:4996) #endif #define BOOST_TEST_MODULE odeint_eigen_integrate #include #include #include #include "dummy_odes.hpp" using namespace boost::unit_test; using namespace boost::numeric::odeint; BOOST_AUTO_TEST_SUITE( eigen_integrate ) BOOST_AUTO_TEST_CASE( test_const_sys ) { typedef Eigen::Matrix< double , 1 , 1 > state_type; state_type x; x[0] = 10.0; double t_start = 0.0 , t_end = 1.0 , dt = 0.1; integrate< double >( constant_system_functor_standard() , x , t_start , t_end , dt ); BOOST_CHECK_CLOSE( x[0] , 11.0 , 1.0e-13 ); } BOOST_AUTO_TEST_CASE( test_lorenz ) { typedef Eigen::Matrix< double , 3 , 1 > state_type; state_type x; x[0] = 10.0; x[1] = 10.0; x[2] = 10.0; double t_start = 0.0 , t_end = 1000.0 , dt = 0.1; integrate< double >( lorenz() , x , t_start , t_end , dt ); std::vector< double > x2( 3 ); x2[0] = 10.0; x2[1] = 10.0; x2[2] = 10.0; integrate( lorenz() , x2 , t_start , t_end , dt ); BOOST_CHECK_CLOSE( x[0] , x2[0] , 1.0e-13 ); BOOST_CHECK_CLOSE( x[1] , x2[1] , 1.0e-13 ); BOOST_CHECK_CLOSE( x[2] , x2[2] , 1.0e-13 ); } BOOST_AUTO_TEST_SUITE_END()