1 /* Boost mtl4_resize.cpp test file
2
3 Copyright 2012 Karsten Ahnert
4 Copyright 2012 Mario Mulansky
5
6 This file tests the odeint library with the mtl4 routines.
7
8 Distributed under the Boost Software License, Version 1.0.
9 (See accompanying file LICENSE_1_0.txt or
10 copy at http://www.boost.org/LICENSE_1_0.txt)
11 */
12
13 #define BOOST_TEST_MODULE test_mtl4_resize
14
15 #include <boost/test/unit_test.hpp>
16
17 #include <boost/numeric/odeint/external/mtl4/mtl4_resize.hpp>
18 #include <boost/numeric/mtl/vector/dense_vector.hpp>
19
20 namespace odeint = boost::numeric::odeint;
21
22
BOOST_AUTO_TEST_CASE(test_dense_vector_resizeability)23 BOOST_AUTO_TEST_CASE( test_dense_vector_resizeability )
24 {
25 BOOST_CHECK( odeint::is_resizeable< mtl::dense_vector< double > >::value );
26 }
27
BOOST_AUTO_TEST_CASE(test_dense2D_resizeability)28 BOOST_AUTO_TEST_CASE( test_dense2D_resizeability )
29 {
30 BOOST_CHECK( odeint::is_resizeable< mtl::dense2D< double > >::value );
31 }
32
BOOST_AUTO_TEST_CASE(test_compressed2D_resizeability)33 BOOST_AUTO_TEST_CASE( test_compressed2D_resizeability )
34 {
35 BOOST_CHECK( odeint::is_resizeable< mtl::compressed2D< double > >::value );
36 }
37
38
39
BOOST_AUTO_TEST_CASE(test_dense_vector_vector_same_size)40 BOOST_AUTO_TEST_CASE( test_dense_vector_vector_same_size )
41 {
42 mtl::dense_vector< double > v1( 10 ) , v2( 10 );
43 BOOST_CHECK( odeint::same_size( v2 , v1 ) );
44 }
45
BOOST_AUTO_TEST_CASE(test_dense_vector_dense2D_same_size)46 BOOST_AUTO_TEST_CASE( test_dense_vector_dense2D_same_size )
47 {
48 mtl::dense_vector< double > v( 10 );
49 mtl::dense2D< double > m( 10 , 10 );
50 BOOST_CHECK( odeint::same_size( m , v ) );
51 }
52
BOOST_AUTO_TEST_CASE(test_dense_vector_compressed2D_same_size)53 BOOST_AUTO_TEST_CASE( test_dense_vector_compressed2D_same_size )
54 {
55 mtl::dense_vector< double > v( 10 );
56 mtl::compressed2D< double > m( 10 , 10 );
57 BOOST_CHECK( odeint::same_size( m , v ) );
58 }
59
60
61
62
BOOST_AUTO_TEST_CASE(test_dense_vector_vector_resize)63 BOOST_AUTO_TEST_CASE( test_dense_vector_vector_resize )
64 {
65 mtl::dense_vector< double > v1( 10 );
66 mtl::dense_vector< double > v2;
67 odeint::resize( v2 , v1 );
68 BOOST_CHECK( mtl::size( v2 ) == mtl::size( v1 ) );
69 }
70
BOOST_AUTO_TEST_CASE(test_dense_vector_dense2D_resize)71 BOOST_AUTO_TEST_CASE( test_dense_vector_dense2D_resize )
72 {
73 mtl::dense_vector< double > v( 10 );
74 mtl::dense2D< double > m;
75
76 odeint::resize( m , v );
77 BOOST_CHECK( m.num_cols() == mtl::size( v ) );
78 BOOST_CHECK( m.num_rows() == mtl::size( v ) );
79 }
80
BOOST_AUTO_TEST_CASE(test_dense_vector_compressed2D_resize)81 BOOST_AUTO_TEST_CASE( test_dense_vector_compressed2D_resize )
82 {
83 mtl::dense_vector< double > v( 10 );
84 mtl::compressed2D< double > m;
85
86 odeint::resize( m , v );
87 BOOST_CHECK( m.num_cols() == mtl::size( v ) );
88 BOOST_CHECK( m.num_rows() == mtl::size( v ) );
89 }
90