| /* |
| [auto_generated] |
| libs/numeric/odeint/test_external/eigen/resize.cpp |
| |
| [begin_description] |
| tba. |
| [end_description] |
| |
| Copyright 2013 Karsten Ahnert |
| Copyright 2013 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 <boost/config.hpp> |
| #ifdef BOOST_MSVC |
| #pragma warning(disable:4996) |
| #endif |
| |
| #define BOOST_TEST_MODULE odeint_eigen_resize |
| |
| #include <boost/test/unit_test.hpp> |
| #include <boost/numeric/odeint/external/eigen/eigen_resize.hpp> |
| |
| |
| using namespace boost::unit_test; |
| using namespace boost::numeric::odeint; |
| |
| |
| BOOST_AUTO_TEST_SUITE( eigen_resize ) |
| |
| BOOST_AUTO_TEST_CASE( test_compile_time_matrix ) |
| { |
| typedef Eigen::Matrix< double , 1 , 1 > matrix_type; |
| matrix_type a , b; |
| boost::numeric::odeint::resize( a , b ); |
| BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) ); |
| BOOST_CHECK_EQUAL( a.rows() , 1 ); |
| BOOST_CHECK_EQUAL( a.cols() , 1 ); |
| } |
| |
| BOOST_AUTO_TEST_CASE( test_rumtime_matrix ) |
| { |
| typedef Eigen::Matrix< double , Eigen::Dynamic , Eigen::Dynamic > matrix_type; |
| matrix_type a( 5 , 2 ) , b; |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 0 ); |
| BOOST_CHECK_EQUAL( b.cols() , 0 ); |
| BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) ); |
| |
| boost::numeric::odeint::resize( b , a ); |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 5 ); |
| BOOST_CHECK_EQUAL( b.cols() , 2 ); |
| |
| BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) ); |
| } |
| |
| BOOST_AUTO_TEST_CASE( test_rumtime_matrix2 ) |
| { |
| typedef Eigen::Matrix< double , Eigen::Dynamic , Eigen::Dynamic > matrix_type; |
| matrix_type a( 5 , 2 ) , b( 2 , 3 ); |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 2 ); |
| BOOST_CHECK_EQUAL( b.cols() , 3 ); |
| BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) ); |
| |
| boost::numeric::odeint::resize( b , a ); |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 5 ); |
| BOOST_CHECK_EQUAL( b.cols() , 2 ); |
| |
| BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) ); |
| } |
| |
| |
| |
| |
| |
| |
| BOOST_AUTO_TEST_CASE( test_compile_time_array ) |
| { |
| typedef Eigen::Array< double , 1 , 1 > array_type; |
| array_type a , b; |
| boost::numeric::odeint::resize( a , b ); |
| BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) ); |
| BOOST_CHECK_EQUAL( a.rows() , 1 ); |
| BOOST_CHECK_EQUAL( a.cols() , 1 ); |
| } |
| |
| BOOST_AUTO_TEST_CASE( test_rumtime_array ) |
| { |
| typedef Eigen::Array< double , Eigen::Dynamic , Eigen::Dynamic > array_type; |
| array_type a( 5 , 2 ) , b; |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 0 ); |
| BOOST_CHECK_EQUAL( b.cols() , 0 ); |
| BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) ); |
| |
| boost::numeric::odeint::resize( b , a ); |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 5 ); |
| BOOST_CHECK_EQUAL( b.cols() , 2 ); |
| |
| BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) ); |
| } |
| |
| BOOST_AUTO_TEST_CASE( test_rumtime_array2 ) |
| { |
| typedef Eigen::Array< double , Eigen::Dynamic , Eigen::Dynamic > array_type; |
| array_type a( 5 , 2 ) , b( 2 , 3 ); |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 2 ); |
| BOOST_CHECK_EQUAL( b.cols() , 3 ); |
| BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) ); |
| |
| boost::numeric::odeint::resize( b , a ); |
| |
| BOOST_CHECK_EQUAL( a.rows() , 5 ); |
| BOOST_CHECK_EQUAL( a.cols() , 2 ); |
| BOOST_CHECK_EQUAL( b.rows() , 5 ); |
| BOOST_CHECK_EQUAL( b.cols() , 2 ); |
| |
| BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) ); |
| } |
| |
| |
| |
| BOOST_AUTO_TEST_SUITE_END() |