]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Copyright Louis Dionne 2013-2016 |
2 | // Distributed under the Boost Software License, Version 1.0. | |
3 | // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) | |
4 | ||
5 | #include <boost/hana/assert.hpp> | |
6 | #include <boost/hana/integral_constant.hpp> | |
7 | ||
8 | #include "matrix/comparable.hpp" | |
9 | namespace hana = boost::hana; | |
10 | using namespace cppcon; | |
11 | ||
12 | ||
13 | int main() { | |
14 | // transpose | |
15 | { | |
16 | auto m = matrix( | |
17 | row(1, 2.2, '3'), | |
18 | row(4, '5', 6) | |
19 | ); | |
20 | ||
21 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal( | |
22 | transpose(m), | |
23 | matrix( | |
24 | row(1, 4), | |
25 | row(2.2, '5'), | |
26 | row('3', 6) | |
27 | ) | |
28 | )); | |
29 | } | |
30 | ||
31 | // vector | |
32 | { | |
33 | auto v = vector(1, '2', hana::int_c<3>, 4.2f); | |
34 | BOOST_HANA_CONSTEXPR_CHECK(v.size() == 4ul); | |
35 | BOOST_HANA_CONSTEXPR_CHECK(v.nrows() == 4ul); | |
36 | BOOST_HANA_CONSTEXPR_CHECK(v.ncolumns() == 1ul); | |
37 | } | |
38 | ||
39 | // matrix.at | |
40 | { | |
41 | auto m = matrix( | |
42 | row(1, '2', 3), | |
43 | row('4', hana::char_c<'5'>, 6), | |
44 | row(hana::int_c<7>, '8', 9.3) | |
45 | ); | |
46 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<0>, hana::int_c<0>) == 1); | |
47 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<0>, hana::int_c<1>) == '2'); | |
48 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<0>, hana::int_c<2>) == 3); | |
49 | ||
50 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<1>, hana::int_c<0>) == '4'); | |
51 | BOOST_HANA_CONSTANT_CHECK(m.at(hana::int_c<1>, hana::int_c<1>) == hana::char_c<'5'>); | |
52 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<1>, hana::int_c<2>) == 6); | |
53 | ||
54 | BOOST_HANA_CONSTANT_CHECK(m.at(hana::int_c<2>, hana::int_c<0>) == hana::int_c<7>); | |
55 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<2>, hana::int_c<1>) == '8'); | |
56 | BOOST_HANA_CONSTEXPR_CHECK(m.at(hana::int_c<2>, hana::int_c<2>) == 9.3); | |
57 | } | |
58 | ||
59 | // size, ncolumns, nrows | |
60 | { | |
61 | auto m = matrix( | |
62 | row(1, '2', 3), | |
63 | row('4', hana::char_c<'5'>, 6) | |
64 | ); | |
65 | BOOST_HANA_CONSTEXPR_CHECK(m.size() == 6ul); | |
66 | BOOST_HANA_CONSTEXPR_CHECK(m.ncolumns() == 3ul); | |
67 | BOOST_HANA_CONSTEXPR_CHECK(m.nrows() == 2ul); | |
68 | } | |
69 | } |