summaryrefslogtreecommitdiff
path: root/libs/numeric/odeint/test/std_array.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2015-04-08 03:09:47 +0000
committer <>2015-05-05 14:37:32 +0000
commitf2541bb90af059680aa7036f315f052175999355 (patch)
treea5b214744b256f07e1dc2bd7273035a7808c659f /libs/numeric/odeint/test/std_array.cpp
parented232fdd34968697a68783b3195b1da4226915b5 (diff)
downloadboost-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_58_0.tar.bz2.HEADboost_1_58_0master
Diffstat (limited to 'libs/numeric/odeint/test/std_array.cpp')
-rw-r--r--libs/numeric/odeint/test/std_array.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/libs/numeric/odeint/test/std_array.cpp b/libs/numeric/odeint/test/std_array.cpp
new file mode 100644
index 000000000..350a387a8
--- /dev/null
+++ b/libs/numeric/odeint/test/std_array.cpp
@@ -0,0 +1,57 @@
+/*
+ [auto_generated]
+ test/std_array.cpp
+
+ [begin_description]
+ Checks if odeint compiles fine with the std::array using the array algebra
+ [end_description]
+
+ Copyright 2009-2014 Karsten Ahnert
+ Copyright 2009-2014 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)
+ */
+
+
+#define BOOST_TEST_MODULE odeint_std_array
+
+#include <array>
+#include <boost/numeric/odeint.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/test/unit_test.hpp>
+
+using namespace boost::unit_test;
+
+typedef std::array<double, 3> state_type;
+
+void rhs(const state_type &x, state_type &dxdt, const double t)
+{
+}
+
+BOOST_AUTO_TEST_SUITE( unwrap_reference_test )
+
+BOOST_AUTO_TEST_CASE( test_case )
+{
+ state_type x = {0.0, 0.0, 0.0};
+
+ typedef boost::numeric::odeint::runge_kutta4<state_type> stepper_type;
+// check if array algebra is selected, but only if odeint detects c++11
+#ifdef BOOST_NUMERIC_ODEINT_CXX11
+ BOOST_STATIC_ASSERT(( boost::is_same< stepper_type::algebra_type ,
+ boost::numeric::odeint::array_algebra >::value ));
+#endif
+ stepper_type stepper1;
+ stepper1.do_step(rhs, x, 0.0, 0.1);
+
+ boost::numeric::odeint::runge_kutta4<
+ state_type, double, state_type, double,
+ boost::numeric::odeint::array_algebra > stepper;
+ stepper.do_step(rhs, x, 0.0, 0.1);
+
+}
+
+
+BOOST_AUTO_TEST_SUITE_END()