• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  [auto_generated]
3  libs/numeric/odeint/test_external/eigen/resize.cpp
4 
5  [begin_description]
6  tba.
7  [end_description]
8 
9  Copyright 2013 Karsten Ahnert
10  Copyright 2013 Mario Mulansky
11 
12  Distributed under the Boost Software License, Version 1.0.
13  (See accompanying file LICENSE_1_0.txt or
14  copy at http://www.boost.org/LICENSE_1_0.txt)
15  */
16 
17 #include <boost/config.hpp>
18 #ifdef BOOST_MSVC
19     #pragma warning(disable:4996)
20 #endif
21 
22 #define BOOST_TEST_MODULE odeint_eigen_resize
23 
24 #include <boost/test/unit_test.hpp>
25 #include <boost/numeric/odeint/external/eigen/eigen_resize.hpp>
26 
27 
28 using namespace boost::unit_test;
29 using namespace boost::numeric::odeint;
30 
31 
32 BOOST_AUTO_TEST_SUITE( eigen_resize )
33 
BOOST_AUTO_TEST_CASE(test_compile_time_matrix)34 BOOST_AUTO_TEST_CASE( test_compile_time_matrix )
35 {
36     typedef Eigen::Matrix< double , 1 , 1 > matrix_type;
37     matrix_type a , b;
38     boost::numeric::odeint::resize( a , b );
39     BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) );
40     BOOST_CHECK_EQUAL( a.rows() , 1 );
41     BOOST_CHECK_EQUAL( a.cols() , 1 );
42 }
43 
BOOST_AUTO_TEST_CASE(test_rumtime_matrix)44 BOOST_AUTO_TEST_CASE( test_rumtime_matrix )
45 {
46     typedef Eigen::Matrix< double , Eigen::Dynamic , Eigen::Dynamic > matrix_type;
47     matrix_type a( 5 , 2 ) , b;
48 
49     BOOST_CHECK_EQUAL( a.rows() , 5 );
50     BOOST_CHECK_EQUAL( a.cols() , 2 );
51     BOOST_CHECK_EQUAL( b.rows() , 0 );
52     BOOST_CHECK_EQUAL( b.cols() , 0 );
53     BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) );
54 
55     boost::numeric::odeint::resize( b , a );
56 
57     BOOST_CHECK_EQUAL( a.rows() , 5 );
58     BOOST_CHECK_EQUAL( a.cols() , 2 );
59     BOOST_CHECK_EQUAL( b.rows() , 5 );
60     BOOST_CHECK_EQUAL( b.cols() , 2 );
61 
62     BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) );
63 }
64 
BOOST_AUTO_TEST_CASE(test_rumtime_matrix2)65 BOOST_AUTO_TEST_CASE( test_rumtime_matrix2 )
66 {
67     typedef Eigen::Matrix< double , Eigen::Dynamic , Eigen::Dynamic > matrix_type;
68     matrix_type a( 5 , 2 ) , b( 2 , 3 );
69 
70     BOOST_CHECK_EQUAL( a.rows() , 5 );
71     BOOST_CHECK_EQUAL( a.cols() , 2 );
72     BOOST_CHECK_EQUAL( b.rows() , 2 );
73     BOOST_CHECK_EQUAL( b.cols() , 3 );
74     BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) );
75 
76     boost::numeric::odeint::resize( b , a );
77 
78     BOOST_CHECK_EQUAL( a.rows() , 5 );
79     BOOST_CHECK_EQUAL( a.cols() , 2 );
80     BOOST_CHECK_EQUAL( b.rows() , 5 );
81     BOOST_CHECK_EQUAL( b.cols() , 2 );
82 
83     BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) );
84 }
85 
86 
87 
88 
89 
90 
BOOST_AUTO_TEST_CASE(test_compile_time_array)91 BOOST_AUTO_TEST_CASE( test_compile_time_array )
92 {
93     typedef Eigen::Array< double , 1 , 1 > array_type;
94     array_type a , b;
95     boost::numeric::odeint::resize( a , b );
96     BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) );
97     BOOST_CHECK_EQUAL( a.rows() , 1 );
98     BOOST_CHECK_EQUAL( a.cols() , 1 );
99 }
100 
BOOST_AUTO_TEST_CASE(test_rumtime_array)101 BOOST_AUTO_TEST_CASE( test_rumtime_array )
102 {
103     typedef Eigen::Array< double , Eigen::Dynamic , Eigen::Dynamic > array_type;
104     array_type a( 5 , 2 ) , b;
105 
106     BOOST_CHECK_EQUAL( a.rows() , 5 );
107     BOOST_CHECK_EQUAL( a.cols() , 2 );
108     BOOST_CHECK_EQUAL( b.rows() , 0 );
109     BOOST_CHECK_EQUAL( b.cols() , 0 );
110     BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) );
111 
112     boost::numeric::odeint::resize( b , a );
113 
114     BOOST_CHECK_EQUAL( a.rows() , 5 );
115     BOOST_CHECK_EQUAL( a.cols() , 2 );
116     BOOST_CHECK_EQUAL( b.rows() , 5 );
117     BOOST_CHECK_EQUAL( b.cols() , 2 );
118 
119     BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) );
120 }
121 
BOOST_AUTO_TEST_CASE(test_rumtime_array2)122 BOOST_AUTO_TEST_CASE( test_rumtime_array2 )
123 {
124     typedef Eigen::Array< double , Eigen::Dynamic , Eigen::Dynamic > array_type;
125     array_type a( 5 , 2 ) , b( 2 , 3 );
126 
127     BOOST_CHECK_EQUAL( a.rows() , 5 );
128     BOOST_CHECK_EQUAL( a.cols() , 2 );
129     BOOST_CHECK_EQUAL( b.rows() , 2 );
130     BOOST_CHECK_EQUAL( b.cols() , 3 );
131     BOOST_CHECK( !boost::numeric::odeint::same_size( a , b ) );
132 
133     boost::numeric::odeint::resize( b , a );
134 
135     BOOST_CHECK_EQUAL( a.rows() , 5 );
136     BOOST_CHECK_EQUAL( a.cols() , 2 );
137     BOOST_CHECK_EQUAL( b.rows() , 5 );
138     BOOST_CHECK_EQUAL( b.cols() , 2 );
139 
140     BOOST_CHECK( boost::numeric::odeint::same_size( a , b ) );
141 }
142 
143 
144 
145 BOOST_AUTO_TEST_SUITE_END()
146