]>
Commit | Line | Data |
---|---|---|
20effc67 TL |
1 | // |
2 | // blocking_adaptation.cpp | |
3 | // ~~~~~~~~~~~~~~~~~~~~~~~ | |
4 | // | |
5 | // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) | |
6 | // | |
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying | |
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 | // | |
10 | ||
11 | // Disable autolinking for unit tests. | |
12 | #if !defined(BOOST_ALL_NO_LIB) | |
13 | #define BOOST_ALL_NO_LIB 1 | |
14 | #endif // !defined(BOOST_ALL_NO_LIB) | |
15 | ||
16 | // Test that header file is self-contained. | |
17 | #include <boost/asio/execution/blocking_adaptation.hpp> | |
18 | ||
19 | #include <boost/asio/prefer.hpp> | |
20 | #include <boost/asio/query.hpp> | |
21 | #include <boost/asio/require.hpp> | |
22 | #include "../unit_test.hpp" | |
23 | ||
24 | namespace exec = boost::asio::execution; | |
25 | ||
26 | typedef exec::blocking_adaptation_t s; | |
27 | typedef exec::blocking_adaptation_t::disallowed_t n1; | |
28 | typedef exec::blocking_adaptation_t::allowed_t n2; | |
29 | ||
30 | struct ex_nq_nr | |
31 | { | |
32 | template <typename F> | |
33 | void execute(const F&) const | |
34 | { | |
35 | } | |
36 | ||
37 | friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) BOOST_ASIO_NOEXCEPT | |
38 | { | |
39 | return true; | |
40 | } | |
41 | ||
42 | friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) BOOST_ASIO_NOEXCEPT | |
43 | { | |
44 | return false; | |
45 | } | |
46 | }; | |
47 | ||
48 | namespace boost { | |
49 | namespace asio { | |
50 | namespace traits { | |
51 | ||
52 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
53 | ||
54 | template <> | |
55 | struct equality_comparable<ex_nq_nr> | |
56 | { | |
57 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
58 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
59 | }; | |
60 | ||
61 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
62 | ||
63 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
64 | ||
65 | template <typename Function> | |
66 | struct execute_member<ex_nq_nr, Function> | |
67 | { | |
68 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
69 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); | |
70 | ||
71 | typedef void result_type; | |
72 | }; | |
73 | ||
74 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
75 | ||
76 | } // namespace traits | |
77 | } // namespace asio | |
78 | } // namespace boost | |
79 | ||
80 | template <typename ResultType, typename ParamType, typename Result> | |
81 | struct ex_cq_nr | |
82 | { | |
83 | static BOOST_ASIO_CONSTEXPR ResultType query(ParamType) BOOST_ASIO_NOEXCEPT | |
84 | { | |
85 | return Result(); | |
86 | } | |
87 | ||
88 | template <typename F> | |
89 | void execute(const F&) const | |
90 | { | |
91 | } | |
92 | ||
93 | friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) BOOST_ASIO_NOEXCEPT | |
94 | { | |
95 | return true; | |
96 | } | |
97 | ||
98 | friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) BOOST_ASIO_NOEXCEPT | |
99 | { | |
100 | return false; | |
101 | } | |
102 | }; | |
103 | ||
104 | namespace boost { | |
105 | namespace asio { | |
106 | namespace traits { | |
107 | ||
108 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
109 | ||
110 | template <typename ResultType, typename ParamType, typename Result> | |
111 | struct equality_comparable<ex_cq_nr<ResultType, ParamType, Result> > | |
112 | { | |
113 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
114 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
115 | }; | |
116 | ||
117 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
118 | ||
119 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
120 | ||
121 | template <typename ResultType, typename ParamType, | |
122 | typename Result, typename Function> | |
123 | struct execute_member<ex_cq_nr<ResultType, ParamType, Result>, Function> | |
124 | { | |
125 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
126 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); | |
127 | ||
128 | typedef void result_type; | |
129 | }; | |
130 | ||
131 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
132 | ||
133 | #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) | |
134 | ||
135 | template <typename ResultType, typename ParamType, | |
136 | typename Result, typename Param> | |
137 | struct query_static_constexpr_member< | |
138 | ex_cq_nr<ResultType, ParamType, Result>, Param, | |
139 | typename boost::asio::enable_if< | |
140 | boost::asio::is_convertible<Param, ParamType>::value | |
141 | >::type> | |
142 | { | |
143 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
144 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
145 | ||
146 | typedef Result result_type; // Must return raw result type. | |
147 | ||
148 | static BOOST_ASIO_CONSTEXPR result_type value() | |
149 | { | |
150 | return Result(); | |
151 | } | |
152 | }; | |
153 | ||
154 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) | |
155 | ||
156 | } // namespace traits | |
157 | } // namespace asio | |
158 | } // namespace boost | |
159 | ||
160 | template <typename ResultType, typename ParamType, typename Result> | |
161 | struct ex_mq_nr | |
162 | { | |
163 | ResultType query(ParamType) const BOOST_ASIO_NOEXCEPT | |
164 | { | |
165 | return Result(); | |
166 | } | |
167 | ||
168 | template <typename F> | |
169 | void execute(const F&) const | |
170 | { | |
171 | } | |
172 | ||
173 | friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) BOOST_ASIO_NOEXCEPT | |
174 | { | |
175 | return true; | |
176 | } | |
177 | ||
178 | friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) BOOST_ASIO_NOEXCEPT | |
179 | { | |
180 | return false; | |
181 | } | |
182 | }; | |
183 | ||
184 | namespace boost { | |
185 | namespace asio { | |
186 | namespace traits { | |
187 | ||
188 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
189 | ||
190 | template <typename ResultType, typename ParamType, typename Result> | |
191 | struct equality_comparable<ex_mq_nr<ResultType, ParamType, Result> > | |
192 | { | |
193 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
194 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
195 | }; | |
196 | ||
197 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
198 | ||
199 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
200 | ||
201 | template <typename ResultType, typename ParamType, | |
202 | typename Result, typename Function> | |
203 | struct execute_member<ex_mq_nr<ResultType, ParamType, Result>, Function> | |
204 | { | |
205 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
206 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); | |
207 | ||
208 | typedef void result_type; | |
209 | }; | |
210 | ||
211 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
212 | ||
213 | #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) | |
214 | ||
215 | template <typename ResultType, typename ParamType, | |
216 | typename Result, typename Param> | |
217 | struct query_member< | |
218 | ex_mq_nr<ResultType, ParamType, Result>, Param, | |
219 | typename boost::asio::enable_if< | |
220 | boost::asio::is_convertible<Param, ParamType>::value | |
221 | >::type> | |
222 | { | |
223 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
224 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
225 | ||
226 | typedef ResultType result_type; | |
227 | }; | |
228 | ||
229 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) | |
230 | ||
231 | } // namespace traits | |
232 | } // namespace asio | |
233 | } // namespace boost | |
234 | ||
235 | template <typename ResultType, typename ParamType, typename Result> | |
236 | struct ex_fq_nr | |
237 | { | |
238 | friend ResultType query(const ex_fq_nr&, ParamType) BOOST_ASIO_NOEXCEPT | |
239 | { | |
240 | return Result(); | |
241 | } | |
242 | ||
243 | template <typename F> | |
244 | void execute(const F&) const | |
245 | { | |
246 | } | |
247 | ||
248 | friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) BOOST_ASIO_NOEXCEPT | |
249 | { | |
250 | return true; | |
251 | } | |
252 | ||
253 | friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) BOOST_ASIO_NOEXCEPT | |
254 | { | |
255 | return false; | |
256 | } | |
257 | }; | |
258 | ||
259 | namespace boost { | |
260 | namespace asio { | |
261 | namespace traits { | |
262 | ||
263 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
264 | ||
265 | template <typename ResultType, typename ParamType, typename Result> | |
266 | struct equality_comparable<ex_fq_nr<ResultType, ParamType, Result> > | |
267 | { | |
268 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
269 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
270 | }; | |
271 | ||
272 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
273 | ||
274 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
275 | ||
276 | template <typename ResultType, typename ParamType, | |
277 | typename Result, typename Function> | |
278 | struct execute_member<ex_fq_nr<ResultType, ParamType, Result>, Function> | |
279 | { | |
280 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
281 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); | |
282 | ||
283 | typedef void result_type; | |
284 | }; | |
285 | ||
286 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
287 | ||
288 | #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) | |
289 | ||
290 | template <typename ResultType, typename ParamType, | |
291 | typename Result, typename Param> | |
292 | struct query_free< | |
293 | ex_fq_nr<ResultType, ParamType, Result>, Param, | |
294 | typename boost::asio::enable_if< | |
295 | boost::asio::is_convertible<Param, ParamType>::value | |
296 | >::type> | |
297 | { | |
298 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
299 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
300 | ||
301 | typedef ResultType result_type; | |
302 | }; | |
303 | ||
304 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) | |
305 | ||
306 | } // namespace traits | |
307 | } // namespace asio | |
308 | } // namespace boost | |
309 | ||
310 | template <typename CurrentType, typename OtherType> | |
311 | struct ex_mq_mr | |
312 | { | |
313 | CurrentType query(CurrentType) const BOOST_ASIO_NOEXCEPT | |
314 | { | |
315 | return CurrentType(); | |
316 | } | |
317 | ||
318 | CurrentType query(OtherType) const BOOST_ASIO_NOEXCEPT | |
319 | { | |
320 | return CurrentType(); | |
321 | } | |
322 | ||
323 | ex_mq_mr<CurrentType, OtherType> require( | |
324 | CurrentType) const BOOST_ASIO_NOEXCEPT | |
325 | { | |
326 | return ex_mq_mr<CurrentType, OtherType>(); | |
327 | } | |
328 | ||
329 | ex_mq_mr<OtherType, CurrentType> require( | |
330 | OtherType) const BOOST_ASIO_NOEXCEPT | |
331 | { | |
332 | return ex_mq_mr<OtherType, CurrentType>(); | |
333 | } | |
334 | ||
335 | template <typename F> | |
336 | void execute(const F&) const | |
337 | { | |
338 | } | |
339 | ||
340 | friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT | |
341 | { | |
342 | return true; | |
343 | } | |
344 | ||
345 | friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT | |
346 | { | |
347 | return false; | |
348 | } | |
349 | }; | |
350 | ||
351 | template <typename CurrentType> | |
352 | struct ex_mq_mr<CurrentType, CurrentType> | |
353 | { | |
354 | CurrentType query(CurrentType) const BOOST_ASIO_NOEXCEPT | |
355 | { | |
356 | return CurrentType(); | |
357 | } | |
358 | ||
359 | ex_mq_mr<CurrentType, CurrentType> require( | |
360 | CurrentType) const BOOST_ASIO_NOEXCEPT | |
361 | { | |
362 | return ex_mq_mr<CurrentType, CurrentType>(); | |
363 | } | |
364 | ||
365 | template <typename F> | |
366 | void execute(const F&) const | |
367 | { | |
368 | } | |
369 | ||
370 | friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT | |
371 | { | |
372 | return true; | |
373 | } | |
374 | ||
375 | friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT | |
376 | { | |
377 | return false; | |
378 | } | |
379 | }; | |
380 | ||
381 | namespace boost { | |
382 | namespace asio { | |
383 | namespace traits { | |
384 | ||
385 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
386 | ||
387 | template <typename CurrentType, typename OtherType> | |
388 | struct equality_comparable<ex_mq_mr<CurrentType, OtherType> > | |
389 | { | |
390 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
391 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
392 | }; | |
393 | ||
394 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
395 | ||
396 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
397 | ||
398 | template <typename CurrentType, typename OtherType, typename Function> | |
399 | struct execute_member<ex_mq_mr<CurrentType, OtherType>, Function> | |
400 | { | |
401 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
402 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); | |
403 | ||
404 | typedef void result_type; | |
405 | }; | |
406 | ||
407 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
408 | ||
409 | #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) | |
410 | ||
411 | template <typename CurrentType, typename OtherType, typename Param> | |
412 | struct query_member< | |
413 | ex_mq_mr<CurrentType, OtherType>, Param, | |
414 | typename boost::asio::enable_if< | |
415 | boost::asio::is_convertible<Param, CurrentType>::value | |
416 | || boost::asio::is_convertible<Param, OtherType>::value | |
417 | >::type> | |
418 | { | |
419 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
420 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
421 | ||
422 | typedef CurrentType result_type; | |
423 | }; | |
424 | ||
425 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) | |
426 | ||
427 | #if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) | |
428 | ||
429 | template <typename CurrentType, typename OtherType, typename Param> | |
430 | struct require_member< | |
431 | ex_mq_mr<CurrentType, OtherType>, Param, | |
432 | typename boost::asio::enable_if< | |
433 | boost::asio::is_convertible<Param, CurrentType>::value | |
434 | >::type> | |
435 | { | |
436 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
437 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
438 | ||
439 | typedef ex_mq_mr<CurrentType, OtherType> result_type; | |
440 | }; | |
441 | ||
442 | template <typename CurrentType, typename OtherType, typename Param> | |
443 | struct require_member< | |
444 | ex_mq_mr<CurrentType, OtherType>, Param, | |
445 | typename boost::asio::enable_if< | |
446 | boost::asio::is_convertible<Param, OtherType>::value | |
447 | && !boost::asio::is_same<CurrentType, OtherType>::value | |
448 | >::type> | |
449 | { | |
450 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
451 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
452 | ||
453 | typedef ex_mq_mr<OtherType, CurrentType> result_type; | |
454 | }; | |
455 | ||
456 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) | |
457 | ||
458 | } // namespace traits | |
459 | } // namespace asio | |
460 | } // namespace boost | |
461 | ||
462 | template <typename CurrentType, typename OtherType> | |
463 | struct ex_fq_fr | |
464 | { | |
465 | friend CurrentType query(const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT | |
466 | { | |
467 | return CurrentType(); | |
468 | } | |
469 | ||
470 | friend CurrentType query(const ex_fq_fr&, OtherType) BOOST_ASIO_NOEXCEPT | |
471 | { | |
472 | return CurrentType(); | |
473 | } | |
474 | ||
475 | friend ex_fq_fr<CurrentType, OtherType> require( | |
476 | const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT | |
477 | { | |
478 | return ex_fq_fr<CurrentType, OtherType>(); | |
479 | } | |
480 | ||
481 | friend ex_fq_fr<OtherType, CurrentType> require( | |
482 | const ex_fq_fr&, OtherType) BOOST_ASIO_NOEXCEPT | |
483 | { | |
484 | return ex_fq_fr<OtherType, CurrentType>(); | |
485 | } | |
486 | ||
487 | friend ex_fq_fr<CurrentType, OtherType> prefer( | |
488 | const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT | |
489 | { | |
490 | return ex_fq_fr<CurrentType, OtherType>(); | |
491 | } | |
492 | ||
493 | friend ex_fq_fr<OtherType, CurrentType> prefer( | |
494 | const ex_fq_fr&, OtherType) BOOST_ASIO_NOEXCEPT | |
495 | { | |
496 | return ex_fq_fr<OtherType, CurrentType>(); | |
497 | } | |
498 | ||
499 | template <typename F> | |
500 | void execute(const F&) const | |
501 | { | |
502 | } | |
503 | ||
504 | friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT | |
505 | { | |
506 | return true; | |
507 | } | |
508 | ||
509 | friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT | |
510 | { | |
511 | return false; | |
512 | } | |
513 | }; | |
514 | ||
515 | template <typename CurrentType> | |
516 | struct ex_fq_fr<CurrentType, CurrentType> | |
517 | { | |
518 | friend CurrentType query(const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT | |
519 | { | |
520 | return CurrentType(); | |
521 | } | |
522 | ||
523 | friend ex_fq_fr<CurrentType, CurrentType> require( | |
524 | const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT | |
525 | { | |
526 | return ex_fq_fr<CurrentType, CurrentType>(); | |
527 | } | |
528 | ||
529 | friend ex_fq_fr<CurrentType, CurrentType> prefer( | |
530 | const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT | |
531 | { | |
532 | return ex_fq_fr<CurrentType, CurrentType>(); | |
533 | } | |
534 | ||
535 | template <typename F> | |
536 | void execute(const F&) const | |
537 | { | |
538 | } | |
539 | ||
540 | friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT | |
541 | { | |
542 | return true; | |
543 | } | |
544 | ||
545 | friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT | |
546 | { | |
547 | return false; | |
548 | } | |
549 | }; | |
550 | ||
551 | namespace boost { | |
552 | namespace asio { | |
553 | namespace traits { | |
554 | ||
555 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
556 | ||
557 | template <typename CurrentType, typename OtherType> | |
558 | struct equality_comparable<ex_fq_fr<CurrentType, OtherType> > | |
559 | { | |
560 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
561 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
562 | }; | |
563 | ||
564 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) | |
565 | ||
566 | #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
567 | ||
568 | template <typename CurrentType, typename OtherType, typename Function> | |
569 | struct execute_member<ex_fq_fr<CurrentType, OtherType>, Function> | |
570 | { | |
571 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
572 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false); | |
573 | ||
574 | typedef void result_type; | |
575 | }; | |
576 | ||
577 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) | |
578 | ||
579 | #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) | |
580 | ||
581 | template <typename CurrentType, typename OtherType, typename Param> | |
582 | struct query_free< | |
583 | ex_fq_fr<CurrentType, OtherType>, Param, | |
584 | typename boost::asio::enable_if< | |
585 | boost::asio::is_convertible<Param, CurrentType>::value | |
586 | || boost::asio::is_convertible<Param, OtherType>::value | |
587 | >::type> | |
588 | { | |
589 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
590 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
591 | ||
592 | typedef CurrentType result_type; | |
593 | }; | |
594 | ||
595 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT) | |
596 | ||
597 | #if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT) | |
598 | ||
599 | template <typename CurrentType, typename OtherType, typename Param> | |
600 | struct require_free< | |
601 | ex_fq_fr<CurrentType, OtherType>, Param, | |
602 | typename boost::asio::enable_if< | |
603 | boost::asio::is_convertible<Param, CurrentType>::value | |
604 | >::type> | |
605 | { | |
606 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
607 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
608 | ||
609 | typedef ex_fq_fr<CurrentType, OtherType> result_type; | |
610 | }; | |
611 | ||
612 | template <typename CurrentType, typename OtherType, typename Param> | |
613 | struct require_free< | |
614 | ex_fq_fr<CurrentType, OtherType>, Param, | |
615 | typename boost::asio::enable_if< | |
616 | boost::asio::is_convertible<Param, OtherType>::value | |
617 | && !boost::asio::is_same<CurrentType, OtherType>::value | |
618 | >::type> | |
619 | { | |
620 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
621 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
622 | ||
623 | typedef ex_fq_fr<OtherType, CurrentType> result_type; | |
624 | }; | |
625 | ||
626 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT) | |
627 | ||
628 | #if !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT) | |
629 | ||
630 | template <typename CurrentType, typename OtherType, typename Param> | |
631 | struct prefer_free< | |
632 | ex_fq_fr<CurrentType, OtherType>, Param, | |
633 | typename boost::asio::enable_if< | |
634 | boost::asio::is_convertible<Param, CurrentType>::value | |
635 | >::type> | |
636 | { | |
637 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
638 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
639 | ||
640 | typedef ex_fq_fr<CurrentType, OtherType> result_type; | |
641 | }; | |
642 | ||
643 | template <typename CurrentType, typename OtherType, typename Param> | |
644 | struct prefer_free< | |
645 | ex_fq_fr<CurrentType, OtherType>, Param, | |
646 | typename boost::asio::enable_if< | |
647 | boost::asio::is_convertible<Param, OtherType>::value | |
648 | && !boost::asio::is_same<CurrentType, OtherType>::value | |
649 | >::type> | |
650 | { | |
651 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true); | |
652 | BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true); | |
653 | ||
654 | typedef ex_fq_fr<OtherType, CurrentType> result_type; | |
655 | }; | |
656 | ||
657 | #endif // !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT) | |
658 | ||
659 | } // namespace traits | |
660 | } // namespace asio | |
661 | } // namespace boost | |
662 | ||
663 | template <typename Executor, typename Param, bool ExpectedResult> | |
664 | void test_can_query() | |
665 | { | |
666 | BOOST_ASIO_CONSTEXPR bool b1 = | |
667 | boost::asio::can_query<Executor, Param>::value; | |
668 | BOOST_ASIO_CHECK(b1 == ExpectedResult); | |
669 | ||
670 | BOOST_ASIO_CONSTEXPR bool b2 = | |
671 | boost::asio::can_query<const Executor, Param>::value; | |
672 | BOOST_ASIO_CHECK(b2 == ExpectedResult); | |
673 | ||
674 | BOOST_ASIO_CONSTEXPR bool b3 = | |
675 | boost::asio::can_query<Executor&, Param>::value; | |
676 | BOOST_ASIO_CHECK(b3 == ExpectedResult); | |
677 | ||
678 | BOOST_ASIO_CONSTEXPR bool b4 = | |
679 | boost::asio::can_query<const Executor&, Param>::value; | |
680 | BOOST_ASIO_CHECK(b4 == ExpectedResult); | |
681 | } | |
682 | ||
683 | template <typename Executor, typename Param, typename ExpectedResult> | |
684 | void test_query() | |
685 | { | |
686 | exec::blocking_adaptation_t result1 = boost::asio::query(Executor(), Param()); | |
687 | BOOST_ASIO_CHECK(result1 == ExpectedResult()); | |
688 | ||
689 | Executor ex1 = {}; | |
690 | exec::blocking_adaptation_t result2 = boost::asio::query(ex1, Param()); | |
691 | BOOST_ASIO_CHECK(result2 == ExpectedResult()); | |
692 | ||
693 | const Executor ex2 = {}; | |
694 | exec::blocking_adaptation_t result3 = boost::asio::query(ex2, Param()); | |
695 | BOOST_ASIO_CHECK(result3 == ExpectedResult()); | |
696 | } | |
697 | ||
698 | template <typename Executor, typename Param, typename ExpectedResult> | |
699 | void test_constexpr_query() | |
700 | { | |
701 | #if defined(BOOST_ASIO_HAS_CONSTEXPR) | |
702 | constexpr Executor ex1 = {}; | |
703 | constexpr exec::blocking_adaptation_t result1 = boost::asio::query(ex1, Param()); | |
704 | BOOST_ASIO_CHECK(result1 == ExpectedResult()); | |
705 | #endif // defined(BOOST_ASIO_HAS_CONSTEXPR) | |
706 | } | |
707 | ||
708 | template <typename Executor, typename Param, bool ExpectedResult> | |
709 | void test_can_require() | |
710 | { | |
711 | BOOST_ASIO_CONSTEXPR bool b1 = | |
712 | boost::asio::can_require<Executor, Param>::value; | |
713 | BOOST_ASIO_CHECK(b1 == ExpectedResult); | |
714 | ||
715 | BOOST_ASIO_CONSTEXPR bool b2 = | |
716 | boost::asio::can_require<const Executor, Param>::value; | |
717 | BOOST_ASIO_CHECK(b2 == ExpectedResult); | |
718 | ||
719 | BOOST_ASIO_CONSTEXPR bool b3 = | |
720 | boost::asio::can_require<Executor&, Param>::value; | |
721 | BOOST_ASIO_CHECK(b3 == ExpectedResult); | |
722 | ||
723 | BOOST_ASIO_CONSTEXPR bool b4 = | |
724 | boost::asio::can_require<const Executor&, Param>::value; | |
725 | BOOST_ASIO_CHECK(b4 == ExpectedResult); | |
726 | } | |
727 | ||
728 | void do_nothing() | |
729 | { | |
730 | } | |
731 | ||
732 | template <typename Executor, typename Param, typename ExpectedResult> | |
733 | void test_require() | |
734 | { | |
735 | BOOST_ASIO_CHECK( | |
736 | boost::asio::query( | |
737 | boost::asio::require(Executor(), Param()), | |
738 | Param()) == ExpectedResult()); | |
739 | ||
740 | Executor ex1 = {}; | |
741 | ||
742 | BOOST_ASIO_CHECK( | |
743 | boost::asio::query( | |
744 | boost::asio::require(ex1, Param()), | |
745 | Param()) == ExpectedResult()); | |
746 | ||
747 | BOOST_ASIO_CHECK(( | |
748 | boost::asio::execution::is_executor< | |
749 | typename boost::asio::decay< | |
750 | typename boost::asio::require_result<Executor&, Param>::type | |
751 | >::type | |
752 | >::value)); | |
753 | ||
754 | const Executor ex2 = {}; | |
755 | ||
756 | BOOST_ASIO_CHECK( | |
757 | boost::asio::query( | |
758 | boost::asio::require(ex2, Param()), | |
759 | Param()) == ExpectedResult()); | |
760 | ||
761 | BOOST_ASIO_CHECK(( | |
762 | boost::asio::execution::is_executor< | |
763 | typename boost::asio::decay< | |
764 | typename boost::asio::require_result<const Executor&, Param>::type | |
765 | >::type | |
766 | >::value)); | |
767 | } | |
768 | ||
769 | template <typename Executor, typename Param, bool ExpectedResult> | |
770 | void test_can_prefer() | |
771 | { | |
772 | BOOST_ASIO_CONSTEXPR bool b1 = | |
773 | boost::asio::can_prefer<Executor, Param>::value; | |
774 | BOOST_ASIO_CHECK(b1 == ExpectedResult); | |
775 | ||
776 | BOOST_ASIO_CONSTEXPR bool b2 = | |
777 | boost::asio::can_prefer<const Executor, Param>::value; | |
778 | BOOST_ASIO_CHECK(b2 == ExpectedResult); | |
779 | ||
780 | BOOST_ASIO_CONSTEXPR bool b3 = | |
781 | boost::asio::can_prefer<Executor&, Param>::value; | |
782 | BOOST_ASIO_CHECK(b3 == ExpectedResult); | |
783 | ||
784 | BOOST_ASIO_CONSTEXPR bool b4 = | |
785 | boost::asio::can_prefer<const Executor&, Param>::value; | |
786 | BOOST_ASIO_CHECK(b4 == ExpectedResult); | |
787 | } | |
788 | ||
789 | template <typename Executor, typename Param, typename ExpectedResult> | |
790 | void test_prefer() | |
791 | { | |
792 | BOOST_ASIO_CHECK( | |
793 | s(boost::asio::query( | |
794 | boost::asio::prefer(Executor(), Param()), | |
795 | s())) == s(ExpectedResult())); | |
796 | ||
797 | Executor ex1 = {}; | |
798 | BOOST_ASIO_CHECK( | |
799 | s(boost::asio::query( | |
800 | boost::asio::prefer(ex1, Param()), | |
801 | s())) == s(ExpectedResult())); | |
802 | ||
803 | const Executor ex2 = {}; | |
804 | BOOST_ASIO_CHECK( | |
805 | s(boost::asio::query( | |
806 | boost::asio::prefer(ex2, Param()), | |
807 | s())) == s(ExpectedResult())); | |
808 | } | |
809 | ||
810 | void test_vars() | |
811 | { | |
812 | BOOST_ASIO_CHECK(s() == exec::blocking_adaptation); | |
813 | BOOST_ASIO_CHECK(n1() == exec::blocking_adaptation.disallowed); | |
814 | BOOST_ASIO_CHECK(n2() == exec::blocking_adaptation.allowed); | |
815 | } | |
816 | ||
817 | BOOST_ASIO_TEST_SUITE | |
818 | ( | |
819 | "blocking_adaptation", | |
820 | ||
821 | BOOST_ASIO_TEST_CASE3(test_can_query<ex_nq_nr, s, true>) | |
822 | BOOST_ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n1, true>) | |
823 | BOOST_ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n2, false>) | |
824 | ||
825 | BOOST_ASIO_TEST_CASE3(test_query<ex_nq_nr, s, n1>) | |
826 | BOOST_ASIO_TEST_CASE3(test_query<ex_nq_nr, n1, n1>) | |
827 | ||
828 | BOOST_ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, s, n1>) | |
829 | BOOST_ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, n1, n1>) | |
830 | ||
831 | BOOST_ASIO_TEST_CASE3(test_can_require<ex_nq_nr, s, false>) | |
832 | BOOST_ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n1, true>) | |
833 | BOOST_ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n2, true>) | |
834 | ||
835 | BOOST_ASIO_TEST_CASE3(test_require<ex_nq_nr, n1, n1>) | |
836 | BOOST_ASIO_TEST_CASE3(test_require<ex_nq_nr, n2, n2>) | |
837 | ||
838 | BOOST_ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, s, false>) | |
839 | BOOST_ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n1, true>) | |
840 | BOOST_ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n2, false>) | |
841 | ||
842 | BOOST_ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n1, n1>) | |
843 | ||
844 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, s, true>) | |
845 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n1, true>) | |
846 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n2, true>) | |
847 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, s, true>) | |
848 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n1, true>) | |
849 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n2, true>) | |
850 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, s, true>) | |
851 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n1, true>) | |
852 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n2, false>) | |
853 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, s, true>) | |
854 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n1, true>) | |
855 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n2, false>) | |
856 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, s, true>) | |
857 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n1, false>) | |
858 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n2, true>) | |
859 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, s, true>) | |
860 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n1, false>) | |
861 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n2, true>) | |
862 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, s, true>) | |
863 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n1, true>) | |
864 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n2, true>) | |
865 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, s, true>) | |
866 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n1, true>) | |
867 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n2, true>) | |
868 | ||
869 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, s, n1>) | |
870 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n1, n1>) | |
871 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n2, n1>) | |
872 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, s, n2>) | |
873 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n1, n2>) | |
874 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n2, n2>) | |
875 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, s, n1>) | |
876 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, n1, n1>) | |
877 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, s, n2>) | |
878 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, n1, n2>) | |
879 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, s, n1>) | |
880 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, n2, n1>) | |
881 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, s, n2>) | |
882 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, n2, n2>) | |
883 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, s, n1>) | |
884 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n1, n1>) | |
885 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n2, n1>) | |
886 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, s, n2>) | |
887 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n1, n2>) | |
888 | BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n2, n2>) | |
889 | ||
890 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, s, n1>) | |
891 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n1, n1>) | |
892 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n2, n1>) | |
893 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, s, n2>) | |
894 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n1, n2>) | |
895 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n2, n2>) | |
896 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, s, n1>) | |
897 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, n1, n1>) | |
898 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, s, n2>) | |
899 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, n1, n2>) | |
900 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, s, n1>) | |
901 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, n2, n1>) | |
902 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, s, n2>) | |
903 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, n2, n2>) | |
904 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, s, n1>) | |
905 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n1, n1>) | |
906 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n2, n1>) | |
907 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, s, n2>) | |
908 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n1, n2>) | |
909 | BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n2, n2>) | |
910 | ||
911 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, s, false>) | |
912 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n1, true>) | |
913 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n2, true>) | |
914 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, s, false>) | |
915 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n1, false>) | |
916 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n2, true>) | |
917 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, s, false>) | |
918 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n1, true>) | |
919 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n2, true>) | |
920 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, s, false>) | |
921 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n1, false>) | |
922 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n2, true>) | |
923 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, s, false>) | |
924 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n1, false>) | |
925 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n2, true>) | |
926 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, s, false>) | |
927 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n1, false>) | |
928 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n2, true>) | |
929 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, s, false>) | |
930 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n1, true>) | |
931 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n2, true>) | |
932 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, s, false>) | |
933 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n1, false>) | |
934 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n2, true>) | |
935 | ||
936 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n1, n1>) | |
937 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n2, n2>) | |
938 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n2>, n2, n2>) | |
939 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n1, n1>) | |
940 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n2, n2>) | |
941 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n2>, n2, n2>) | |
942 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n1>, n2, n2>) | |
943 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n2>, n2, n2>) | |
944 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n1, n1>) | |
945 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n2, n2>) | |
946 | BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<n2, s, n2>, n2, n2>) | |
947 | ||
948 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, s, false>) | |
949 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n1, true>) | |
950 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n2, false>) | |
951 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, s, false>) | |
952 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n1, true>) | |
953 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n2, false>) | |
954 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, s, false>) | |
955 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n1, true>) | |
956 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n2, false>) | |
957 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, s, false>) | |
958 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n1, true>) | |
959 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n2, false>) | |
960 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, s, false>) | |
961 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n1, true>) | |
962 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n2, false>) | |
963 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, s, false>) | |
964 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n1, true>) | |
965 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n2, false>) | |
966 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, s, false>) | |
967 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n1, true>) | |
968 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n2, false>) | |
969 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, s, false>) | |
970 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n1, true>) | |
971 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n2, false>) | |
972 | ||
973 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n1, n1>) | |
974 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n1, n2>) | |
975 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n1, n1>) | |
976 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n1, n2>) | |
977 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n1, n1>) | |
978 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n1, n2>) | |
979 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n1, n1>) | |
980 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n1, n2>) | |
981 | ||
982 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, s, true>) | |
983 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n1, true>) | |
984 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n2, true>) | |
985 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, s, true>) | |
986 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n1, true>) | |
987 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n2, true>) | |
988 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, s, true>) | |
989 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n1, true>) | |
990 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n2, false>) | |
991 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, s, true>) | |
992 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n1, true>) | |
993 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n2, false>) | |
994 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, s, true>) | |
995 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n1, false>) | |
996 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n2, true>) | |
997 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, s, true>) | |
998 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n1, false>) | |
999 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n2, true>) | |
1000 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, s, true>) | |
1001 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n1, true>) | |
1002 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n2, true>) | |
1003 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, s, true>) | |
1004 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n1, true>) | |
1005 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n2, true>) | |
1006 | ||
1007 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, s, n1>) | |
1008 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n1, n1>) | |
1009 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n2, n1>) | |
1010 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, s, n2>) | |
1011 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n1, n2>) | |
1012 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n2, n2>) | |
1013 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, s, n1>) | |
1014 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, n1, n1>) | |
1015 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, s, n2>) | |
1016 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, n1, n2>) | |
1017 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, s, n1>) | |
1018 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, n2, n1>) | |
1019 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, s, n2>) | |
1020 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, n2, n2>) | |
1021 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, s, n1>) | |
1022 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n1, n1>) | |
1023 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n2, n1>) | |
1024 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, s, n2>) | |
1025 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n1, n2>) | |
1026 | BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n2, n2>) | |
1027 | ||
1028 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, s, false>) | |
1029 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n1, false>) | |
1030 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n2, true>) | |
1031 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, s, false>) | |
1032 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n1, false>) | |
1033 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n2, true>) | |
1034 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, s, false>) | |
1035 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n1, false>) | |
1036 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n2, true>) | |
1037 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, s, false>) | |
1038 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n1, false>) | |
1039 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n2, true>) | |
1040 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, s, false>) | |
1041 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n1, false>) | |
1042 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n2, true>) | |
1043 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, s, false>) | |
1044 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n1, false>) | |
1045 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n2, true>) | |
1046 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, s, false>) | |
1047 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n1, false>) | |
1048 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n2, true>) | |
1049 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, s, false>) | |
1050 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n1, false>) | |
1051 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n2, true>) | |
1052 | ||
1053 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, s, n1>, n2, n2>) | |
1054 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, s, n2>, n2, n2>) | |
1055 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n1, n1>, n2, n2>) | |
1056 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n1, n2>, n2, n2>) | |
1057 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n2, n1>, n2, n2>) | |
1058 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n2, n2>, n2, n2>) | |
1059 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<n1, s, n1>, n2, n2>) | |
1060 | BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<n2, s, n2>, n2, n2>) | |
1061 | ||
1062 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, s, false>) | |
1063 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n1, true>) | |
1064 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n2, false>) | |
1065 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, s, false>) | |
1066 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n1, true>) | |
1067 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n2, false>) | |
1068 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, s, false>) | |
1069 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n1, true>) | |
1070 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n2, false>) | |
1071 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, s, false>) | |
1072 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n1, true>) | |
1073 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n2, false>) | |
1074 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, s, false>) | |
1075 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n1, true>) | |
1076 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n2, false>) | |
1077 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, s, false>) | |
1078 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n1, true>) | |
1079 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n2, false>) | |
1080 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, s, false>) | |
1081 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n1, true>) | |
1082 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n2, false>) | |
1083 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, s, false>) | |
1084 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n1, true>) | |
1085 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n2, false>) | |
1086 | ||
1087 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n1, n1>) | |
1088 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n1, n2>) | |
1089 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n1, n1>) | |
1090 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n1, n2>) | |
1091 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n1, n1>) | |
1092 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n1, n2>) | |
1093 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n1, n1>) | |
1094 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n1, n2>) | |
1095 | ||
1096 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, s, true>) | |
1097 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n1, true>) | |
1098 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n2, true>) | |
1099 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, s, true>) | |
1100 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n1, true>) | |
1101 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n2, true>) | |
1102 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, s, true>) | |
1103 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n1, true>) | |
1104 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n2, false>) | |
1105 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, s, true>) | |
1106 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n1, true>) | |
1107 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n2, false>) | |
1108 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, s, true>) | |
1109 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n1, false>) | |
1110 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n2, true>) | |
1111 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, s, true>) | |
1112 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n1, false>) | |
1113 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n2, true>) | |
1114 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, s, true>) | |
1115 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n1, true>) | |
1116 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n2, true>) | |
1117 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, s, true>) | |
1118 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n1, true>) | |
1119 | BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n2, true>) | |
1120 | ||
1121 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, s, n1>) | |
1122 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n1, n1>) | |
1123 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n2, n1>) | |
1124 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, s, n2>) | |
1125 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n1, n2>) | |
1126 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n2, n2>) | |
1127 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, s, n1>) | |
1128 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, n1, n1>) | |
1129 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, s, n2>) | |
1130 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, n1, n2>) | |
1131 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, s, n1>) | |
1132 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, n2, n1>) | |
1133 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, s, n2>) | |
1134 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, n2, n2>) | |
1135 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, s, n1>) | |
1136 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n1, n1>) | |
1137 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n2, n1>) | |
1138 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, s, n2>) | |
1139 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n1, n2>) | |
1140 | BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n2, n2>) | |
1141 | ||
1142 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, s, false>) | |
1143 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n1, false>) | |
1144 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n2, true>) | |
1145 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, s, false>) | |
1146 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n1, false>) | |
1147 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n2, true>) | |
1148 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, s, false>) | |
1149 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n1, false>) | |
1150 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n2, true>) | |
1151 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, s, false>) | |
1152 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n1, false>) | |
1153 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n2, true>) | |
1154 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, s, false>) | |
1155 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n1, false>) | |
1156 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n2, true>) | |
1157 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, s, false>) | |
1158 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n1, false>) | |
1159 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n2, true>) | |
1160 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, s, false>) | |
1161 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n1, false>) | |
1162 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n2, true>) | |
1163 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, s, false>) | |
1164 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n1, false>) | |
1165 | BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n2, true>) | |
1166 | ||
1167 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, s, n1>, n2, n2>) | |
1168 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, s, n2>, n2, n2>) | |
1169 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n1, n1>, n2, n2>) | |
1170 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n1, n2>, n2, n2>) | |
1171 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n2, n1>, n2, n2>) | |
1172 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n2, n2>, n2, n2>) | |
1173 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<n1, s, n1>, n2, n2>) | |
1174 | BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<n2, s, n2>, n2, n2>) | |
1175 | ||
1176 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, s, false>) | |
1177 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n1, true>) | |
1178 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n2, false>) | |
1179 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, s, false>) | |
1180 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n1, true>) | |
1181 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n2, false>) | |
1182 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, s, false>) | |
1183 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n1, true>) | |
1184 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n2, false>) | |
1185 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, s, false>) | |
1186 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n1, true>) | |
1187 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n2, false>) | |
1188 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, s, false>) | |
1189 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n1, true>) | |
1190 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n2, false>) | |
1191 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, s, false>) | |
1192 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n1, true>) | |
1193 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n2, false>) | |
1194 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, s, false>) | |
1195 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n1, true>) | |
1196 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n2, false>) | |
1197 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, s, false>) | |
1198 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n1, true>) | |
1199 | BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n2, false>) | |
1200 | ||
1201 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n1, n1>) | |
1202 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n1, n2>) | |
1203 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n1, n1>) | |
1204 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n1, n2>) | |
1205 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n1, n1>) | |
1206 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n1, n2>) | |
1207 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n1, n1>) | |
1208 | BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n1, n2>) | |
1209 | ||
1210 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, s, true>) | |
1211 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n1, true>) | |
1212 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n2, false>) | |
1213 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, s, true>) | |
1214 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n1, true>) | |
1215 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n2, true>) | |
1216 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, s, true>) | |
1217 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n1, true>) | |
1218 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n2, true>) | |
1219 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, s, true>) | |
1220 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n1, false>) | |
1221 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n2, true>) | |
1222 | ||
1223 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, s, n1>) | |
1224 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, n1, n1>) | |
1225 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, s, n1>) | |
1226 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, n1, n1>) | |
1227 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, s, n2>) | |
1228 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, n2, n2>) | |
1229 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, s, n2>) | |
1230 | BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, n2, n2>) | |
1231 | ||
1232 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, s, false>) | |
1233 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n1, true>) | |
1234 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n2, true>) | |
1235 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, s, false>) | |
1236 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n1, true>) | |
1237 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n2, true>) | |
1238 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, s, false>) | |
1239 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n1, true>) | |
1240 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n2, true>) | |
1241 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, s, false>) | |
1242 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n1, false>) | |
1243 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n2, true>) | |
1244 | ||
1245 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n1, n1>) | |
1246 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n2, n2>) | |
1247 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n1, n1>) | |
1248 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n2, n2>) | |
1249 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n1, n1>) | |
1250 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n2, n2>) | |
1251 | BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n2>, n2, n2>) | |
1252 | ||
1253 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, s, false>) | |
1254 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n1, true>) | |
1255 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n2, false>) | |
1256 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, s, false>) | |
1257 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n1, true>) | |
1258 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n2, false>) | |
1259 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, s, false>) | |
1260 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n1, true>) | |
1261 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n2, false>) | |
1262 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, s, false>) | |
1263 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n1, true>) | |
1264 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n2, false>) | |
1265 | ||
1266 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n1, n1>) | |
1267 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n1, n1>) | |
1268 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n1, n1>) | |
1269 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n1, n2>) | |
1270 | ||
1271 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, s, true>) | |
1272 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n1, true>) | |
1273 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n2, false>) | |
1274 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, s, true>) | |
1275 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n1, true>) | |
1276 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n2, true>) | |
1277 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, s, true>) | |
1278 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n1, true>) | |
1279 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n2, true>) | |
1280 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, s, true>) | |
1281 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n1, false>) | |
1282 | BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n2, true>) | |
1283 | ||
1284 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, s, n1>) | |
1285 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, n1, n1>) | |
1286 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, s, n1>) | |
1287 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, n1, n1>) | |
1288 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, s, n2>) | |
1289 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, n2, n2>) | |
1290 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, s, n2>) | |
1291 | BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, n2, n2>) | |
1292 | ||
1293 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, s, false>) | |
1294 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n1, true>) | |
1295 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n2, true>) | |
1296 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, s, false>) | |
1297 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n1, true>) | |
1298 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n2, true>) | |
1299 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, s, false>) | |
1300 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n1, true>) | |
1301 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n2, true>) | |
1302 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, s, false>) | |
1303 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n1, false>) | |
1304 | BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n2, true>) | |
1305 | ||
1306 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n1, n1>) | |
1307 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n2, n2>) | |
1308 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n1, n1>) | |
1309 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n2, n2>) | |
1310 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n1, n1>) | |
1311 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n2, n2>) | |
1312 | BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n2>, n2, n2>) | |
1313 | ||
1314 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, s, false>) | |
1315 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n1, true>) | |
1316 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n2, false>) | |
1317 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, s, false>) | |
1318 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n1, true>) | |
1319 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n2, false>) | |
1320 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, s, false>) | |
1321 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n1, true>) | |
1322 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n2, false>) | |
1323 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, s, false>) | |
1324 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n1, true>) | |
1325 | BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n2, false>) | |
1326 | ||
1327 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n1, n1>) | |
1328 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n1, n1>) | |
1329 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n1, n1>) | |
1330 | BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n1, n2>) | |
1331 | ||
1332 | BOOST_ASIO_TEST_CASE(test_vars) | |
1333 | ) |