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()