• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  Copyright (c) 2011 David Bellot
2 //
3 //  Distributed under the Boost Software License, Version 1.0. (See
4 //  accompanying file LICENSE_1_0.txt or copy at
5 //  http://www.boost.org/LICENSE_1_0.txt)
6 
7 #ifndef BOOST_UBLAS_NO_ELEMENT_PROXIES
8 # define BOOST_UBLAS_NO_ELEMENT_PROXIES
9 #endif
10 
11 #include<boost/numeric/ublas/matrix_sparse.hpp>
12 #include<boost/numeric/ublas/io.hpp>
13 
14 #include "utils.hpp"
15 
16 using std::cout;
17 using std::endl;
18 
BOOST_UBLAS_TEST_DEF(test_coordinate_matrix_sort)19 BOOST_UBLAS_TEST_DEF( test_coordinate_matrix_sort )
20 {
21 
22     boost::numeric::ublas::coordinate_matrix<double> matrix_mask(3, 3, 2);
23     cout << "Setting matrix(1,1) = 2.1" << endl;
24     matrix_mask(1,1) = 2.1;
25 
26     cout << "Displaying matrix(1,1)" << endl;
27     std::cout << matrix_mask(1,1) << std::endl;
28 
29     BOOST_UBLAS_DEBUG_TRACE( "Displaying matrix(1,1)" << matrix_mask(1,1) );
30     BOOST_UBLAS_TEST_CHECK( matrix_mask(1,1) == 2.1 );
31 
32     BOOST_UBLAS_TEST_CHECK( matrix_mask.index1_data()[0] == 1 );
33     BOOST_UBLAS_TEST_CHECK( matrix_mask.index2_data()[0] == 1 );
34     BOOST_UBLAS_TEST_CHECK( matrix_mask.value_data()[0] == 2.1 );
35 
36     BOOST_UBLAS_DEBUG_TRACE( "Setting matrix(0,1) = 1.1" );
37     matrix_mask(0, 1) = 1.1;
38 
39     BOOST_UBLAS_TEST_CHECK( matrix_mask.index1_data()[0] == 1 );
40     BOOST_UBLAS_TEST_CHECK( matrix_mask.index2_data()[0] == 1 );
41     BOOST_UBLAS_TEST_CHECK( matrix_mask.value_data()[0] == 2.1 );
42 
43     BOOST_UBLAS_TEST_CHECK( matrix_mask.index1_data()[1] == 0 );
44     BOOST_UBLAS_TEST_CHECK( matrix_mask.index2_data()[1] == 1 );
45     BOOST_UBLAS_TEST_CHECK( matrix_mask.value_data()[1] == 1.1 );
46 
47     BOOST_UBLAS_DEBUG_TRACE( "Sort the matrix - this would be triggered by any element lookup." );
48     matrix_mask.sort();
49 
50     BOOST_UBLAS_TEST_CHECK( matrix_mask.index1_data()[1] == 1 );
51     BOOST_UBLAS_TEST_CHECK( matrix_mask.index2_data()[1] == 1 );
52     BOOST_UBLAS_TEST_CHECK( matrix_mask.value_data()[1] == 2.1 );
53 
54     BOOST_UBLAS_TEST_CHECK( matrix_mask.index1_data()[0] == 0 );
55     BOOST_UBLAS_TEST_CHECK( matrix_mask.index2_data()[0] == 1 );
56     BOOST_UBLAS_TEST_CHECK( matrix_mask.value_data()[0] == 1.1 );
57 
58     BOOST_UBLAS_DEBUG_TRACE( "Displaying matrix(1,1)" << matrix_mask(1,1) );
59     BOOST_UBLAS_TEST_CHECK( matrix_mask(1,1) == 2.1 );
60 
61     BOOST_UBLAS_DEBUG_TRACE( "Displaying matrix(0,1)" << matrix_mask(0,1) );
62     BOOST_UBLAS_TEST_CHECK( matrix_mask(0,1) == 1.1 );
63 
64 }
65 
main()66 int main()
67 {
68     BOOST_UBLAS_TEST_BEGIN();
69 
70     BOOST_UBLAS_TEST_DO( test_coordinate_matrix_sort );
71 
72     BOOST_UBLAS_TEST_END();
73 }
74