• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <boost/config.hpp>
2 #ifdef BOOST_MSVC
3     #pragma warning(disable:4996)
4 #endif
5 
6 #define BOOST_TEST_MODULE odeint_controlled_adams_bashforth_moulton
7 
8 #include <boost/test/unit_test.hpp>
9 
10 #include <boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp>
11 #include <boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp>
12 
13 using namespace boost::unit_test;
14 using namespace boost::numeric::odeint;
15 
16 struct const_sys
17 {
18     template< class State , class Deriv , class Value >
operator ()const_sys19     void operator()( const State &x , Deriv &dxdt , const Value &dt ) const
20     {
21         dxdt[0] = 1;
22     }
23 };
24 
25 typedef boost::array< double , 1 > state_type;
26 typedef double value_type;
27 
28 BOOST_AUTO_TEST_SUITE( controlled_adams_bashforth_moulton_test )
29 
BOOST_AUTO_TEST_CASE(test_instantiation)30 BOOST_AUTO_TEST_CASE( test_instantiation )
31 {
32     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<1, state_type> > s1;
33     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<2, state_type> > s2;
34     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<3, state_type> > s3;
35     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<4, state_type> > s4;
36     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<5, state_type> > s5;
37     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<6, state_type> > s6;
38     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<7, state_type> > s7;
39     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<8, state_type> > s8;
40     controlled_adams_bashforth_moulton<adaptive_adams_bashforth_moulton<9, state_type> > s9;
41 
42     state_type x = {{ 10.0 }};
43     value_type t = 0.0 , dt = 0.01;
44 
45     s1.try_step(const_sys(), x, t, dt);
46     s2.try_step(const_sys(), x, t, dt);
47     s3.try_step(const_sys(), x, t, dt);
48     s4.try_step(const_sys(), x, t, dt);
49     s5.try_step(const_sys(), x, t, dt);
50     s6.try_step(const_sys(), x, t, dt);
51     s7.try_step(const_sys(), x, t, dt);
52     s8.try_step(const_sys(), x, t, dt);
53     s9.try_step(const_sys(), x, t, dt);
54 }
55 
56 BOOST_AUTO_TEST_SUITE_END()