1// Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
2
3// Distributed under the Boost Software License, Version 1.0. (See accompanying
4// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6#ifdef BOOST_QVM_TEST_SINGLE_HEADER
7# include BOOST_QVM_TEST_SINGLE_HEADER
8#else
9# include <boost/qvm/mat_access.hpp>
10#endif
11
12#include "test_qvm_matrix.hpp"
13
14using namespace boost::qvm;
15
16template <class M>
17void
18check_write_ref()
19 {
20 M m;
21 BOOST_TEST((&A<0,0>(m)==&m.a[0][0]));
22 BOOST_TEST((&A<0,1>(m)==&m.a[0][1]));
23 BOOST_TEST((&A<0,2>(m)==&m.a[0][2]));
24 BOOST_TEST((&A<0,3>(m)==&m.a[0][3]));
25 BOOST_TEST((&A<0,4>(m)==&m.a[0][4]));
26 BOOST_TEST((&A<0,5>(m)==&m.a[0][5]));
27 BOOST_TEST((&A<0,6>(m)==&m.a[0][6]));
28 BOOST_TEST((&A<0,7>(m)==&m.a[0][7]));
29 BOOST_TEST((&A<0,8>(m)==&m.a[0][8]));
30 BOOST_TEST((&A<0,9>(m)==&m.a[0][9]));
31 BOOST_TEST((&A<1,0>(m)==&m.a[1][0]));
32 BOOST_TEST((&A<1,1>(m)==&m.a[1][1]));
33 BOOST_TEST((&A<1,2>(m)==&m.a[1][2]));
34 BOOST_TEST((&A<1,3>(m)==&m.a[1][3]));
35 BOOST_TEST((&A<1,4>(m)==&m.a[1][4]));
36 BOOST_TEST((&A<1,5>(m)==&m.a[1][5]));
37 BOOST_TEST((&A<1,6>(m)==&m.a[1][6]));
38 BOOST_TEST((&A<1,7>(m)==&m.a[1][7]));
39 BOOST_TEST((&A<1,8>(m)==&m.a[1][8]));
40 BOOST_TEST((&A<1,9>(m)==&m.a[1][9]));
41 BOOST_TEST((&A<2,0>(m)==&m.a[2][0]));
42 BOOST_TEST((&A<2,1>(m)==&m.a[2][1]));
43 BOOST_TEST((&A<2,2>(m)==&m.a[2][2]));
44 BOOST_TEST((&A<2,3>(m)==&m.a[2][3]));
45 BOOST_TEST((&A<2,4>(m)==&m.a[2][4]));
46 BOOST_TEST((&A<2,5>(m)==&m.a[2][5]));
47 BOOST_TEST((&A<2,6>(m)==&m.a[2][6]));
48 BOOST_TEST((&A<2,7>(m)==&m.a[2][7]));
49 BOOST_TEST((&A<2,8>(m)==&m.a[2][8]));
50 BOOST_TEST((&A<2,9>(m)==&m.a[2][9]));
51 BOOST_TEST((&A<3,0>(m)==&m.a[3][0]));
52 BOOST_TEST((&A<3,1>(m)==&m.a[3][1]));
53 BOOST_TEST((&A<3,2>(m)==&m.a[3][2]));
54 BOOST_TEST((&A<3,3>(m)==&m.a[3][3]));
55 BOOST_TEST((&A<3,4>(m)==&m.a[3][4]));
56 BOOST_TEST((&A<3,5>(m)==&m.a[3][5]));
57 BOOST_TEST((&A<3,6>(m)==&m.a[3][6]));
58 BOOST_TEST((&A<3,7>(m)==&m.a[3][7]));
59 BOOST_TEST((&A<3,8>(m)==&m.a[3][8]));
60 BOOST_TEST((&A<3,9>(m)==&m.a[3][9]));
61 BOOST_TEST((&A<4,0>(m)==&m.a[4][0]));
62 BOOST_TEST((&A<4,1>(m)==&m.a[4][1]));
63 BOOST_TEST((&A<4,2>(m)==&m.a[4][2]));
64 BOOST_TEST((&A<4,3>(m)==&m.a[4][3]));
65 BOOST_TEST((&A<4,4>(m)==&m.a[4][4]));
66 BOOST_TEST((&A<4,5>(m)==&m.a[4][5]));
67 BOOST_TEST((&A<4,6>(m)==&m.a[4][6]));
68 BOOST_TEST((&A<4,7>(m)==&m.a[4][7]));
69 BOOST_TEST((&A<4,8>(m)==&m.a[4][8]));
70 BOOST_TEST((&A<4,9>(m)==&m.a[4][9]));
71 BOOST_TEST((&A<5,0>(m)==&m.a[5][0]));
72 BOOST_TEST((&A<5,1>(m)==&m.a[5][1]));
73 BOOST_TEST((&A<5,2>(m)==&m.a[5][2]));
74 BOOST_TEST((&A<5,3>(m)==&m.a[5][3]));
75 BOOST_TEST((&A<5,4>(m)==&m.a[5][4]));
76 BOOST_TEST((&A<5,5>(m)==&m.a[5][5]));
77 BOOST_TEST((&A<5,6>(m)==&m.a[5][6]));
78 BOOST_TEST((&A<5,7>(m)==&m.a[5][7]));
79 BOOST_TEST((&A<5,8>(m)==&m.a[5][8]));
80 BOOST_TEST((&A<5,9>(m)==&m.a[5][9]));
81 BOOST_TEST((&A<5,0>(m)==&m.a[5][0]));
82 BOOST_TEST((&A<5,1>(m)==&m.a[5][1]));
83 BOOST_TEST((&A<5,2>(m)==&m.a[5][2]));
84 BOOST_TEST((&A<5,3>(m)==&m.a[5][3]));
85 BOOST_TEST((&A<5,4>(m)==&m.a[5][4]));
86 BOOST_TEST((&A<5,5>(m)==&m.a[5][5]));
87 BOOST_TEST((&A<5,6>(m)==&m.a[5][6]));
88 BOOST_TEST((&A<5,7>(m)==&m.a[5][7]));
89 BOOST_TEST((&A<5,8>(m)==&m.a[5][8]));
90 BOOST_TEST((&A<5,9>(m)==&m.a[5][9]));
91 BOOST_TEST((&A<7,0>(m)==&m.a[7][0]));
92 BOOST_TEST((&A<7,1>(m)==&m.a[7][1]));
93 BOOST_TEST((&A<7,2>(m)==&m.a[7][2]));
94 BOOST_TEST((&A<7,3>(m)==&m.a[7][3]));
95 BOOST_TEST((&A<7,4>(m)==&m.a[7][4]));
96 BOOST_TEST((&A<7,5>(m)==&m.a[7][5]));
97 BOOST_TEST((&A<7,6>(m)==&m.a[7][6]));
98 BOOST_TEST((&A<7,7>(m)==&m.a[7][7]));
99 BOOST_TEST((&A<7,8>(m)==&m.a[7][8]));
100 BOOST_TEST((&A<7,9>(m)==&m.a[7][9]));
101 BOOST_TEST((&A<8,0>(m)==&m.a[8][0]));
102 BOOST_TEST((&A<8,1>(m)==&m.a[8][1]));
103 BOOST_TEST((&A<8,2>(m)==&m.a[8][2]));
104 BOOST_TEST((&A<8,3>(m)==&m.a[8][3]));
105 BOOST_TEST((&A<8,4>(m)==&m.a[8][4]));
106 BOOST_TEST((&A<8,5>(m)==&m.a[8][5]));
107 BOOST_TEST((&A<8,6>(m)==&m.a[8][6]));
108 BOOST_TEST((&A<8,7>(m)==&m.a[8][7]));
109 BOOST_TEST((&A<8,8>(m)==&m.a[8][8]));
110 BOOST_TEST((&A<8,9>(m)==&m.a[8][9]));
111 BOOST_TEST((&A<9,0>(m)==&m.a[9][0]));
112 BOOST_TEST((&A<9,1>(m)==&m.a[9][1]));
113 BOOST_TEST((&A<9,2>(m)==&m.a[9][2]));
114 BOOST_TEST((&A<9,3>(m)==&m.a[9][3]));
115 BOOST_TEST((&A<9,4>(m)==&m.a[9][4]));
116 BOOST_TEST((&A<9,5>(m)==&m.a[9][5]));
117 BOOST_TEST((&A<9,6>(m)==&m.a[9][6]));
118 BOOST_TEST((&A<9,7>(m)==&m.a[9][7]));
119 BOOST_TEST((&A<9,8>(m)==&m.a[9][8]));
120 BOOST_TEST((&A<9,9>(m)==&m.a[9][9]));
121 BOOST_TEST(&A00(m)==&m.a[0][0]);
122 BOOST_TEST(&A01(m)==&m.a[0][1]);
123 BOOST_TEST(&A02(m)==&m.a[0][2]);
124 BOOST_TEST(&A03(m)==&m.a[0][3]);
125 BOOST_TEST(&A04(m)==&m.a[0][4]);
126 BOOST_TEST(&A05(m)==&m.a[0][5]);
127 BOOST_TEST(&A06(m)==&m.a[0][6]);
128 BOOST_TEST(&A07(m)==&m.a[0][7]);
129 BOOST_TEST(&A08(m)==&m.a[0][8]);
130 BOOST_TEST(&A09(m)==&m.a[0][9]);
131 BOOST_TEST(&A10(m)==&m.a[1][0]);
132 BOOST_TEST(&A11(m)==&m.a[1][1]);
133 BOOST_TEST(&A12(m)==&m.a[1][2]);
134 BOOST_TEST(&A13(m)==&m.a[1][3]);
135 BOOST_TEST(&A14(m)==&m.a[1][4]);
136 BOOST_TEST(&A15(m)==&m.a[1][5]);
137 BOOST_TEST(&A16(m)==&m.a[1][6]);
138 BOOST_TEST(&A17(m)==&m.a[1][7]);
139 BOOST_TEST(&A18(m)==&m.a[1][8]);
140 BOOST_TEST(&A19(m)==&m.a[1][9]);
141 BOOST_TEST(&A20(m)==&m.a[2][0]);
142 BOOST_TEST(&A21(m)==&m.a[2][1]);
143 BOOST_TEST(&A22(m)==&m.a[2][2]);
144 BOOST_TEST(&A23(m)==&m.a[2][3]);
145 BOOST_TEST(&A24(m)==&m.a[2][4]);
146 BOOST_TEST(&A25(m)==&m.a[2][5]);
147 BOOST_TEST(&A26(m)==&m.a[2][6]);
148 BOOST_TEST(&A27(m)==&m.a[2][7]);
149 BOOST_TEST(&A28(m)==&m.a[2][8]);
150 BOOST_TEST(&A29(m)==&m.a[2][9]);
151 BOOST_TEST(&A30(m)==&m.a[3][0]);
152 BOOST_TEST(&A31(m)==&m.a[3][1]);
153 BOOST_TEST(&A32(m)==&m.a[3][2]);
154 BOOST_TEST(&A33(m)==&m.a[3][3]);
155 BOOST_TEST(&A34(m)==&m.a[3][4]);
156 BOOST_TEST(&A35(m)==&m.a[3][5]);
157 BOOST_TEST(&A36(m)==&m.a[3][6]);
158 BOOST_TEST(&A37(m)==&m.a[3][7]);
159 BOOST_TEST(&A38(m)==&m.a[3][8]);
160 BOOST_TEST(&A39(m)==&m.a[3][9]);
161 BOOST_TEST(&A40(m)==&m.a[4][0]);
162 BOOST_TEST(&A41(m)==&m.a[4][1]);
163 BOOST_TEST(&A42(m)==&m.a[4][2]);
164 BOOST_TEST(&A43(m)==&m.a[4][3]);
165 BOOST_TEST(&A44(m)==&m.a[4][4]);
166 BOOST_TEST(&A45(m)==&m.a[4][5]);
167 BOOST_TEST(&A46(m)==&m.a[4][6]);
168 BOOST_TEST(&A47(m)==&m.a[4][7]);
169 BOOST_TEST(&A48(m)==&m.a[4][8]);
170 BOOST_TEST(&A49(m)==&m.a[4][9]);
171 BOOST_TEST(&A50(m)==&m.a[5][0]);
172 BOOST_TEST(&A51(m)==&m.a[5][1]);
173 BOOST_TEST(&A52(m)==&m.a[5][2]);
174 BOOST_TEST(&A53(m)==&m.a[5][3]);
175 BOOST_TEST(&A54(m)==&m.a[5][4]);
176 BOOST_TEST(&A55(m)==&m.a[5][5]);
177 BOOST_TEST(&A56(m)==&m.a[5][6]);
178 BOOST_TEST(&A57(m)==&m.a[5][7]);
179 BOOST_TEST(&A58(m)==&m.a[5][8]);
180 BOOST_TEST(&A59(m)==&m.a[5][9]);
181 BOOST_TEST(&A50(m)==&m.a[5][0]);
182 BOOST_TEST(&A51(m)==&m.a[5][1]);
183 BOOST_TEST(&A52(m)==&m.a[5][2]);
184 BOOST_TEST(&A53(m)==&m.a[5][3]);
185 BOOST_TEST(&A54(m)==&m.a[5][4]);
186 BOOST_TEST(&A55(m)==&m.a[5][5]);
187 BOOST_TEST(&A56(m)==&m.a[5][6]);
188 BOOST_TEST(&A57(m)==&m.a[5][7]);
189 BOOST_TEST(&A58(m)==&m.a[5][8]);
190 BOOST_TEST(&A59(m)==&m.a[5][9]);
191 BOOST_TEST(&A70(m)==&m.a[7][0]);
192 BOOST_TEST(&A71(m)==&m.a[7][1]);
193 BOOST_TEST(&A72(m)==&m.a[7][2]);
194 BOOST_TEST(&A73(m)==&m.a[7][3]);
195 BOOST_TEST(&A74(m)==&m.a[7][4]);
196 BOOST_TEST(&A75(m)==&m.a[7][5]);
197 BOOST_TEST(&A76(m)==&m.a[7][6]);
198 BOOST_TEST(&A77(m)==&m.a[7][7]);
199 BOOST_TEST(&A78(m)==&m.a[7][8]);
200 BOOST_TEST(&A79(m)==&m.a[7][9]);
201 BOOST_TEST(&A80(m)==&m.a[8][0]);
202 BOOST_TEST(&A81(m)==&m.a[8][1]);
203 BOOST_TEST(&A82(m)==&m.a[8][2]);
204 BOOST_TEST(&A83(m)==&m.a[8][3]);
205 BOOST_TEST(&A84(m)==&m.a[8][4]);
206 BOOST_TEST(&A85(m)==&m.a[8][5]);
207 BOOST_TEST(&A86(m)==&m.a[8][6]);
208 BOOST_TEST(&A87(m)==&m.a[8][7]);
209 BOOST_TEST(&A88(m)==&m.a[8][8]);
210 BOOST_TEST(&A89(m)==&m.a[8][9]);
211 BOOST_TEST(&A90(m)==&m.a[9][0]);
212 BOOST_TEST(&A91(m)==&m.a[9][1]);
213 BOOST_TEST(&A92(m)==&m.a[9][2]);
214 BOOST_TEST(&A93(m)==&m.a[9][3]);
215 BOOST_TEST(&A94(m)==&m.a[9][4]);
216 BOOST_TEST(&A95(m)==&m.a[9][5]);
217 BOOST_TEST(&A96(m)==&m.a[9][6]);
218 BOOST_TEST(&A97(m)==&m.a[9][7]);
219 BOOST_TEST(&A98(m)==&m.a[9][8]);
220 BOOST_TEST(&A99(m)==&m.a[9][9]);
221 }
222
223template <class M>
224void
225check_read( M const & m )
226 {
227 BOOST_TEST_EQ((A<0,0>(m)), 0);
228 BOOST_TEST_EQ((A<0,1>(m)), 1);
229 BOOST_TEST_EQ((A<0,2>(m)), 2);
230 BOOST_TEST_EQ((A<0,3>(m)), 3);
231 BOOST_TEST_EQ((A<0,4>(m)), 4);
232 BOOST_TEST_EQ((A<0,5>(m)), 5);
233 BOOST_TEST_EQ((A<0,6>(m)), 6);
234 BOOST_TEST_EQ((A<0,7>(m)), 7);
235 BOOST_TEST_EQ((A<0,8>(m)), 8);
236 BOOST_TEST_EQ((A<0,9>(m)), 9);
237 BOOST_TEST_EQ((A<1,0>(m)), 10);
238 BOOST_TEST_EQ((A<1,1>(m)), 11);
239 BOOST_TEST_EQ((A<1,2>(m)), 12);
240 BOOST_TEST_EQ((A<1,3>(m)), 13);
241 BOOST_TEST_EQ((A<1,4>(m)), 14);
242 BOOST_TEST_EQ((A<1,5>(m)), 15);
243 BOOST_TEST_EQ((A<1,6>(m)), 16);
244 BOOST_TEST_EQ((A<1,7>(m)), 17);
245 BOOST_TEST_EQ((A<1,8>(m)), 18);
246 BOOST_TEST_EQ((A<1,9>(m)), 19);
247 BOOST_TEST_EQ((A<2,0>(m)), 20);
248 BOOST_TEST_EQ((A<2,1>(m)), 21);
249 BOOST_TEST_EQ((A<2,2>(m)), 22);
250 BOOST_TEST_EQ((A<2,3>(m)), 23);
251 BOOST_TEST_EQ((A<2,4>(m)), 24);
252 BOOST_TEST_EQ((A<2,5>(m)), 25);
253 BOOST_TEST_EQ((A<2,6>(m)), 26);
254 BOOST_TEST_EQ((A<2,7>(m)), 27);
255 BOOST_TEST_EQ((A<2,8>(m)), 28);
256 BOOST_TEST_EQ((A<2,9>(m)), 29);
257 BOOST_TEST_EQ((A<3,0>(m)), 30);
258 BOOST_TEST_EQ((A<3,1>(m)), 31);
259 BOOST_TEST_EQ((A<3,2>(m)), 32);
260 BOOST_TEST_EQ((A<3,3>(m)), 33);
261 BOOST_TEST_EQ((A<3,4>(m)), 34);
262 BOOST_TEST_EQ((A<3,5>(m)), 35);
263 BOOST_TEST_EQ((A<3,6>(m)), 36);
264 BOOST_TEST_EQ((A<3,7>(m)), 37);
265 BOOST_TEST_EQ((A<3,8>(m)), 38);
266 BOOST_TEST_EQ((A<3,9>(m)), 39);
267 BOOST_TEST_EQ((A<4,0>(m)), 40);
268 BOOST_TEST_EQ((A<4,1>(m)), 41);
269 BOOST_TEST_EQ((A<4,2>(m)), 42);
270 BOOST_TEST_EQ((A<4,3>(m)), 43);
271 BOOST_TEST_EQ((A<4,4>(m)), 44);
272 BOOST_TEST_EQ((A<4,5>(m)), 45);
273 BOOST_TEST_EQ((A<4,6>(m)), 46);
274 BOOST_TEST_EQ((A<4,7>(m)), 47);
275 BOOST_TEST_EQ((A<4,8>(m)), 48);
276 BOOST_TEST_EQ((A<4,9>(m)), 49);
277 BOOST_TEST_EQ((A<5,0>(m)), 50);
278 BOOST_TEST_EQ((A<5,1>(m)), 51);
279 BOOST_TEST_EQ((A<5,2>(m)), 52);
280 BOOST_TEST_EQ((A<5,3>(m)), 53);
281 BOOST_TEST_EQ((A<5,4>(m)), 54);
282 BOOST_TEST_EQ((A<5,5>(m)), 55);
283 BOOST_TEST_EQ((A<5,6>(m)), 56);
284 BOOST_TEST_EQ((A<5,7>(m)), 57);
285 BOOST_TEST_EQ((A<5,8>(m)), 58);
286 BOOST_TEST_EQ((A<5,9>(m)), 59);
287 BOOST_TEST_EQ((A<6,0>(m)), 60);
288 BOOST_TEST_EQ((A<6,1>(m)), 61);
289 BOOST_TEST_EQ((A<6,2>(m)), 62);
290 BOOST_TEST_EQ((A<6,3>(m)), 63);
291 BOOST_TEST_EQ((A<6,4>(m)), 64);
292 BOOST_TEST_EQ((A<6,5>(m)), 65);
293 BOOST_TEST_EQ((A<6,6>(m)), 66);
294 BOOST_TEST_EQ((A<6,7>(m)), 67);
295 BOOST_TEST_EQ((A<6,8>(m)), 68);
296 BOOST_TEST_EQ((A<6,9>(m)), 69);
297 BOOST_TEST_EQ((A<7,0>(m)), 70);
298 BOOST_TEST_EQ((A<7,1>(m)), 71);
299 BOOST_TEST_EQ((A<7,2>(m)), 72);
300 BOOST_TEST_EQ((A<7,3>(m)), 73);
301 BOOST_TEST_EQ((A<7,4>(m)), 74);
302 BOOST_TEST_EQ((A<7,5>(m)), 75);
303 BOOST_TEST_EQ((A<7,6>(m)), 76);
304 BOOST_TEST_EQ((A<7,7>(m)), 77);
305 BOOST_TEST_EQ((A<7,8>(m)), 78);
306 BOOST_TEST_EQ((A<7,9>(m)), 79);
307 BOOST_TEST_EQ((A<8,0>(m)), 80);
308 BOOST_TEST_EQ((A<8,1>(m)), 81);
309 BOOST_TEST_EQ((A<8,2>(m)), 82);
310 BOOST_TEST_EQ((A<8,3>(m)), 83);
311 BOOST_TEST_EQ((A<8,4>(m)), 84);
312 BOOST_TEST_EQ((A<8,5>(m)), 85);
313 BOOST_TEST_EQ((A<8,6>(m)), 86);
314 BOOST_TEST_EQ((A<8,7>(m)), 87);
315 BOOST_TEST_EQ((A<8,8>(m)), 88);
316 BOOST_TEST_EQ((A<8,9>(m)), 89);
317 BOOST_TEST_EQ((A<9,0>(m)), 90);
318 BOOST_TEST_EQ((A<9,1>(m)), 91);
319 BOOST_TEST_EQ((A<9,2>(m)), 92);
320 BOOST_TEST_EQ((A<9,3>(m)), 93);
321 BOOST_TEST_EQ((A<9,4>(m)), 94);
322 BOOST_TEST_EQ((A<9,5>(m)), 95);
323 BOOST_TEST_EQ((A<9,6>(m)), 96);
324 BOOST_TEST_EQ((A<9,7>(m)), 97);
325 BOOST_TEST_EQ((A<9,8>(m)), 98);
326 BOOST_TEST_EQ((A<9,9>(m)), 99);
327 BOOST_TEST_EQ(A00(m), 0);
328 BOOST_TEST_EQ(A01(m), 1);
329 BOOST_TEST_EQ(A02(m), 2);
330 BOOST_TEST_EQ(A03(m), 3);
331 BOOST_TEST_EQ(A04(m), 4);
332 BOOST_TEST_EQ(A05(m), 5);
333 BOOST_TEST_EQ(A06(m), 6);
334 BOOST_TEST_EQ(A07(m), 7);
335 BOOST_TEST_EQ(A08(m), 8);
336 BOOST_TEST_EQ(A09(m), 9);
337 BOOST_TEST_EQ(A10(m), 10);
338 BOOST_TEST_EQ(A11(m), 11);
339 BOOST_TEST_EQ(A12(m), 12);
340 BOOST_TEST_EQ(A13(m), 13);
341 BOOST_TEST_EQ(A14(m), 14);
342 BOOST_TEST_EQ(A15(m), 15);
343 BOOST_TEST_EQ(A16(m), 16);
344 BOOST_TEST_EQ(A17(m), 17);
345 BOOST_TEST_EQ(A18(m), 18);
346 BOOST_TEST_EQ(A19(m), 19);
347 BOOST_TEST_EQ(A20(m), 20);
348 BOOST_TEST_EQ(A21(m), 21);
349 BOOST_TEST_EQ(A22(m), 22);
350 BOOST_TEST_EQ(A23(m), 23);
351 BOOST_TEST_EQ(A24(m), 24);
352 BOOST_TEST_EQ(A25(m), 25);
353 BOOST_TEST_EQ(A26(m), 26);
354 BOOST_TEST_EQ(A27(m), 27);
355 BOOST_TEST_EQ(A28(m), 28);
356 BOOST_TEST_EQ(A29(m), 29);
357 BOOST_TEST_EQ(A30(m), 30);
358 BOOST_TEST_EQ(A31(m), 31);
359 BOOST_TEST_EQ(A32(m), 32);
360 BOOST_TEST_EQ(A33(m), 33);
361 BOOST_TEST_EQ(A34(m), 34);
362 BOOST_TEST_EQ(A35(m), 35);
363 BOOST_TEST_EQ(A36(m), 36);
364 BOOST_TEST_EQ(A37(m), 37);
365 BOOST_TEST_EQ(A38(m), 38);
366 BOOST_TEST_EQ(A39(m), 39);
367 BOOST_TEST_EQ(A40(m), 40);
368 BOOST_TEST_EQ(A41(m), 41);
369 BOOST_TEST_EQ(A42(m), 42);
370 BOOST_TEST_EQ(A43(m), 43);
371 BOOST_TEST_EQ(A44(m), 44);
372 BOOST_TEST_EQ(A45(m), 45);
373 BOOST_TEST_EQ(A46(m), 46);
374 BOOST_TEST_EQ(A47(m), 47);
375 BOOST_TEST_EQ(A48(m), 48);
376 BOOST_TEST_EQ(A49(m), 49);
377 BOOST_TEST_EQ(A50(m), 50);
378 BOOST_TEST_EQ(A51(m), 51);
379 BOOST_TEST_EQ(A52(m), 52);
380 BOOST_TEST_EQ(A53(m), 53);
381 BOOST_TEST_EQ(A54(m), 54);
382 BOOST_TEST_EQ(A55(m), 55);
383 BOOST_TEST_EQ(A56(m), 56);
384 BOOST_TEST_EQ(A57(m), 57);
385 BOOST_TEST_EQ(A58(m), 58);
386 BOOST_TEST_EQ(A59(m), 59);
387 BOOST_TEST_EQ(A60(m), 60);
388 BOOST_TEST_EQ(A61(m), 61);
389 BOOST_TEST_EQ(A62(m), 62);
390 BOOST_TEST_EQ(A63(m), 63);
391 BOOST_TEST_EQ(A64(m), 64);
392 BOOST_TEST_EQ(A65(m), 65);
393 BOOST_TEST_EQ(A66(m), 66);
394 BOOST_TEST_EQ(A67(m), 67);
395 BOOST_TEST_EQ(A68(m), 68);
396 BOOST_TEST_EQ(A69(m), 69);
397 BOOST_TEST_EQ(A70(m), 70);
398 BOOST_TEST_EQ(A71(m), 71);
399 BOOST_TEST_EQ(A72(m), 72);
400 BOOST_TEST_EQ(A73(m), 73);
401 BOOST_TEST_EQ(A74(m), 74);
402 BOOST_TEST_EQ(A75(m), 75);
403 BOOST_TEST_EQ(A76(m), 76);
404 BOOST_TEST_EQ(A77(m), 77);
405 BOOST_TEST_EQ(A78(m), 78);
406 BOOST_TEST_EQ(A79(m), 79);
407 BOOST_TEST_EQ(A80(m), 80);
408 BOOST_TEST_EQ(A81(m), 81);
409 BOOST_TEST_EQ(A82(m), 82);
410 BOOST_TEST_EQ(A83(m), 83);
411 BOOST_TEST_EQ(A84(m), 84);
412 BOOST_TEST_EQ(A85(m), 85);
413 BOOST_TEST_EQ(A86(m), 86);
414 BOOST_TEST_EQ(A87(m), 87);
415 BOOST_TEST_EQ(A88(m), 88);
416 BOOST_TEST_EQ(A89(m), 89);
417 BOOST_TEST_EQ(A90(m), 90);
418 BOOST_TEST_EQ(A91(m), 91);
419 BOOST_TEST_EQ(A92(m), 92);
420 BOOST_TEST_EQ(A93(m), 93);
421 BOOST_TEST_EQ(A94(m), 94);
422 BOOST_TEST_EQ(A95(m), 95);
423 BOOST_TEST_EQ(A96(m), 96);
424 BOOST_TEST_EQ(A97(m), 97);
425 BOOST_TEST_EQ(A98(m), 98);
426 BOOST_TEST_EQ(A99(m), 99);
427 }
428
429template <class M>
430void
431check_write()
432 {
433 {
434 M m(99, -1);
435 A<0,0>(m) = 0;
436 A<0,1>(m) = 1;
437 A<0,2>(m) = 2;
438 A<0,3>(m) = 3;
439 A<0,4>(m) = 4;
440 A<0,5>(m) = 5;
441 A<0,6>(m) = 6;
442 A<0,7>(m) = 7;
443 A<0,8>(m) = 8;
444 A<0,9>(m) = 9;
445 A<1,0>(m) = 10;
446 A<1,1>(m) = 11;
447 A<1,2>(m) = 12;
448 A<1,3>(m) = 13;
449 A<1,4>(m) = 14;
450 A<1,5>(m) = 15;
451 A<1,6>(m) = 16;
452 A<1,7>(m) = 17;
453 A<1,8>(m) = 18;
454 A<1,9>(m) = 19;
455 A<2,0>(m) = 20;
456 A<2,1>(m) = 21;
457 A<2,2>(m) = 22;
458 A<2,3>(m) = 23;
459 A<2,4>(m) = 24;
460 A<2,5>(m) = 25;
461 A<2,6>(m) = 26;
462 A<2,7>(m) = 27;
463 A<2,8>(m) = 28;
464 A<2,9>(m) = 29;
465 A<3,0>(m) = 30;
466 A<3,1>(m) = 31;
467 A<3,2>(m) = 32;
468 A<3,3>(m) = 33;
469 A<3,4>(m) = 34;
470 A<3,5>(m) = 35;
471 A<3,6>(m) = 36;
472 A<3,7>(m) = 37;
473 A<3,8>(m) = 38;
474 A<3,9>(m) = 39;
475 A<4,0>(m) = 40;
476 A<4,1>(m) = 41;
477 A<4,2>(m) = 42;
478 A<4,3>(m) = 43;
479 A<4,4>(m) = 44;
480 A<4,5>(m) = 45;
481 A<4,6>(m) = 46;
482 A<4,7>(m) = 47;
483 A<4,8>(m) = 48;
484 A<4,9>(m) = 49;
485 A<5,0>(m) = 50;
486 A<5,1>(m) = 51;
487 A<5,2>(m) = 52;
488 A<5,3>(m) = 53;
489 A<5,4>(m) = 54;
490 A<5,5>(m) = 55;
491 A<5,6>(m) = 56;
492 A<5,7>(m) = 57;
493 A<5,8>(m) = 58;
494 A<5,9>(m) = 59;
495 A<6,0>(m) = 60;
496 A<6,1>(m) = 61;
497 A<6,2>(m) = 62;
498 A<6,3>(m) = 63;
499 A<6,4>(m) = 64;
500 A<6,5>(m) = 65;
501 A<6,6>(m) = 66;
502 A<6,7>(m) = 67;
503 A<6,8>(m) = 68;
504 A<6,9>(m) = 69;
505 A<7,0>(m) = 70;
506 A<7,1>(m) = 71;
507 A<7,2>(m) = 72;
508 A<7,3>(m) = 73;
509 A<7,4>(m) = 74;
510 A<7,5>(m) = 75;
511 A<7,6>(m) = 76;
512 A<7,7>(m) = 77;
513 A<7,8>(m) = 78;
514 A<7,9>(m) = 79;
515 A<8,0>(m) = 80;
516 A<8,1>(m) = 81;
517 A<8,2>(m) = 82;
518 A<8,3>(m) = 83;
519 A<8,4>(m) = 84;
520 A<8,5>(m) = 85;
521 A<8,6>(m) = 86;
522 A<8,7>(m) = 87;
523 A<8,8>(m) = 88;
524 A<8,9>(m) = 89;
525 A<9,0>(m) = 90;
526 A<9,1>(m) = 91;
527 A<9,2>(m) = 92;
528 A<9,3>(m) = 93;
529 A<9,4>(m) = 94;
530 A<9,5>(m) = 95;
531 A<9,6>(m) = 96;
532 A<9,7>(m) = 97;
533 A<9,8>(m) = 98;
534 A<9,9>(m) = 99;
535 check_read(m);
536 }
537 {
538 M m(99, -1);
539 A00(m) = 0;
540 A01(m) = 1;
541 A02(m) = 2;
542 A03(m) = 3;
543 A04(m) = 4;
544 A05(m) = 5;
545 A06(m) = 6;
546 A07(m) = 7;
547 A08(m) = 8;
548 A09(m) = 9;
549 A10(m) = 10;
550 A11(m) = 11;
551 A12(m) = 12;
552 A13(m) = 13;
553 A14(m) = 14;
554 A15(m) = 15;
555 A16(m) = 16;
556 A17(m) = 17;
557 A18(m) = 18;
558 A19(m) = 19;
559 A20(m) = 20;
560 A21(m) = 21;
561 A22(m) = 22;
562 A23(m) = 23;
563 A24(m) = 24;
564 A25(m) = 25;
565 A26(m) = 26;
566 A27(m) = 27;
567 A28(m) = 28;
568 A29(m) = 29;
569 A30(m) = 30;
570 A31(m) = 31;
571 A32(m) = 32;
572 A33(m) = 33;
573 A34(m) = 34;
574 A35(m) = 35;
575 A36(m) = 36;
576 A37(m) = 37;
577 A38(m) = 38;
578 A39(m) = 39;
579 A40(m) = 40;
580 A41(m) = 41;
581 A42(m) = 42;
582 A43(m) = 43;
583 A44(m) = 44;
584 A45(m) = 45;
585 A46(m) = 46;
586 A47(m) = 47;
587 A48(m) = 48;
588 A49(m) = 49;
589 A50(m) = 50;
590 A51(m) = 51;
591 A52(m) = 52;
592 A53(m) = 53;
593 A54(m) = 54;
594 A55(m) = 55;
595 A56(m) = 56;
596 A57(m) = 57;
597 A58(m) = 58;
598 A59(m) = 59;
599 A60(m) = 60;
600 A61(m) = 61;
601 A62(m) = 62;
602 A63(m) = 63;
603 A64(m) = 64;
604 A65(m) = 65;
605 A66(m) = 66;
606 A67(m) = 67;
607 A68(m) = 68;
608 A69(m) = 69;
609 A70(m) = 70;
610 A71(m) = 71;
611 A72(m) = 72;
612 A73(m) = 73;
613 A74(m) = 74;
614 A75(m) = 75;
615 A76(m) = 76;
616 A77(m) = 77;
617 A78(m) = 78;
618 A79(m) = 79;
619 A80(m) = 80;
620 A81(m) = 81;
621 A82(m) = 82;
622 A83(m) = 83;
623 A84(m) = 84;
624 A85(m) = 85;
625 A86(m) = 86;
626 A87(m) = 87;
627 A88(m) = 88;
628 A89(m) = 89;
629 A90(m) = 90;
630 A91(m) = 91;
631 A92(m) = 92;
632 A93(m) = 93;
633 A94(m) = 94;
634 A95(m) = 95;
635 A96(m) = 96;
636 A97(m) = 97;
637 A98(m) = 98;
638 A99(m) = 99;
639 check_read(m);
640 }
641 }
642
643int
644main()
645 {
646 check_read(m: test_qvm::matrix<M1,10,10,float>(0,1));
647 check_write<test_qvm::matrix<M1,10,10,float> >();
648#ifdef BOOST_QVM_TEST_REF_WRITE_ELEMENT
649 check_write_ref<test_qvm::matrix<M1,10,10,float> >();
650#endif
651 return boost::report_errors();
652 }
653

source code of boost/libs/qvm/test/access_m_test.cpp