/* [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()