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 | |
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 | |
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 | |