1 /* ///////////////////////////////////////////////////////////////////////
2 * File: basic_matrix_test.h
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_CONTAINER_BASIC_MATRIX_TEST_H
13 #define EXTL_CONTAINER_BASIC_MATRIX_TEST_H
15 /* ///////////////////////////////////////////////////////////////////////
16 * ::unit_test namespace
19 EXTL_TEST_NAME_BEGIN_NAMESPACE(basic_matrix_test
)
21 /* ///////////////////////////////////////////////////////////////////////
24 static int basic_matrix_test()
26 typedef basic_matrix
<int, buffer_selector
<int>::buffer_type
> basic_matrix_type
;
28 int buf1
[] = { 1, 2, 3, 4 ,
31 basic_matrix_type
ma1(buf1
, 3, 4);
33 EXTL_ASSERT(ma1
.dim0() == 3);
34 EXTL_ASSERT(ma1
.dim1() == 4);
35 EXTL_ASSERT(ma1
[0].dim0() == 4);
36 EXTL_ASSERT(ma1
.size() == 12);
38 EXTL_ASSERT(ma1
[1][0] == 5);
39 EXTL_ASSERT(ma1
.front() == 1);
40 EXTL_ASSERT(ma1
.back() == 12);
42 int buf2
[3][4] = { {1, 1, 1, 1},
46 basic_matrix_type
ma2(reinterpret_cast<int const*>(buf2
), 3, 4);
48 EXTL_ASSERT(ma2
[1][0] == 1);
49 EXTL_ASSERT(ma2
.at(1, 0) == 1);
50 EXTL_ASSERT(ma2
.front() == 1);
51 EXTL_ASSERT(ma2
.back() == 1);
52 EXTL_ASSERT(ma2
.dim0() == 3);
53 EXTL_ASSERT(ma2
.dim1() == 4);
57 EXTL_ASSERT(ma2
.at(1, 0) == 5);
58 EXTL_ASSERT(ma2
.front() == 1);
59 EXTL_ASSERT(ma2
.back() == 12);
62 EXTL_ASSERT(ma2
[1][0] == 6);
64 EXTL_TEST_TRACE(_T("basic_matrix test:"));
65 for (e_size_t i
= 0; i
< ma2
.dim0(); ++i
)
67 EXTL_TEST_TRACE(_T("%d %d %d %d"), ma2
[i
][0], ma2
[i
][1], ma2
[i
][2], ma2
[i
][3]);
70 EXTL_TEST_TRACE(_T("\nelement:"));
71 for (basic_matrix_type::const_iterator p
= ma2
.begin(); p
!= ma2
.end(); ++p
)
73 EXTL_TEST_TRACE(_T("%d "), *p
);
76 EXTL_TEST_TRACE(_T("\nrow(0):"));
77 for (basic_matrix_type::const_rowe_iterator prowe
= ma2
.rowe_begin(0); prowe
!= ma2
.rowe_end(0); ++prowe
)
79 EXTL_TEST_TRACE(_T("%d "), *prowe
);
82 EXTL_TEST_TRACE(_T("\nreverse row(0):"));
83 for (basic_matrix_type::const_rowe_reverse_iterator rprowe
= ma2
.rowe_rbegin(0); rprowe
!= ma2
.rowe_rend(0); ++rprowe
)
85 EXTL_TEST_TRACE(_T("%d "), *rprowe
);
88 EXTL_TEST_TRACE(_T("\ncol(0):"));
89 for (basic_matrix_type::const_cole_iterator pcole
= ma2
.cole_begin(0); pcole
!= ma2
.cole_end(0); ++pcole
)
91 EXTL_TEST_TRACE(_T("%d "), *pcole
);
94 EXTL_TEST_TRACE(_T("\nreverse col(0):"));
95 for (basic_matrix_type::const_cole_reverse_iterator rpcole
= ma2
.cole_rbegin(0); rpcole
!= ma2
.cole_rend(0); ++rpcole
)
97 EXTL_TEST_TRACE(_T("%d "), *rpcole
);
99 EXTL_TEST_TRACE(_T(""));
102 int basic_matrix_test_ret
= basic_matrix_test();
104 /* ///////////////////////////////////////////////////////////////////////
105 * ::unit_test namespace
107 EXTL_TEST_NAME_END_NAMESPACE(basic_matrix_test
)
109 /* //////////////////////////////////////////////////////////////////// */
110 #endif /* EXTL_CONTAINER_BASIC_MATRIX_TEST_H */
111 /* //////////////////////////////////////////////////////////////////// */