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