1 //
2 // blocking.cpp
3 // ~~~~~~~~~~~~
4 //
5 // Copyright (c) 2003-2021 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 "asio/execution/blocking.hpp"
18 
19 #include "asio/prefer.hpp"
20 #include "asio/query.hpp"
21 #include "asio/require.hpp"
22 #include "../unit_test.hpp"
23 
24 namespace exec = asio::execution;
25 
26 typedef exec::blocking_t s;
27 typedef exec::blocking_t::possibly_t n1;
28 typedef exec::blocking_t::always_t n2;
29 typedef exec::blocking_t::never_t n3;
30 
31 struct ex_nq_nr
32 {
33   template <typename F>
executeex_nq_nr34   void execute(const F&) const
35   {
36   }
37 
operator ==(const ex_nq_nr &,const ex_nq_nr &)38   friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
39   {
40     return true;
41   }
42 
operator !=(const ex_nq_nr &,const ex_nq_nr &)43   friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) ASIO_NOEXCEPT
44   {
45     return false;
46   }
47 };
48 
49 #if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
50 
51 namespace asio {
52 namespace execution {
53 
54 template <>
55 struct is_executor<ex_nq_nr> : asio::true_type
56 {
57 };
58 
59 } // namespace execution
60 } // namespace asio
61 
62 #endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
63 
64 template <typename ResultType, typename ParamType, typename Result>
65 struct ex_cq_nr
66 {
queryex_cq_nr67   static ASIO_CONSTEXPR ResultType query(ParamType) ASIO_NOEXCEPT
68   {
69     return Result();
70   }
71 
72   template <typename F>
executeex_cq_nr73   void execute(const F&) const
74   {
75   }
76 
operator ==(const ex_cq_nr &,const ex_cq_nr &)77   friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
78   {
79     return true;
80   }
81 
operator !=(const ex_cq_nr &,const ex_cq_nr &)82   friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) ASIO_NOEXCEPT
83   {
84     return false;
85   }
86 };
87 
88 #if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
89 
90 namespace asio {
91 namespace execution {
92 
93 template <typename ResultType, typename ParamType, typename Result>
94 struct is_executor<ex_cq_nr<ResultType, ParamType, Result> >
95   : asio::true_type
96 {
97 };
98 
99 } // namespace execution
100 } // namespace asio
101 
102 #endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
103 
104 namespace asio {
105 namespace traits {
106 
107 #if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
108 
109 template <typename ResultType, typename ParamType,
110   typename Result, typename Param>
111 struct query_static_constexpr_member<
112   ex_cq_nr<ResultType, ParamType, Result>, Param,
113   typename asio::enable_if<
114     asio::is_convertible<Param, ParamType>::value
115   >::type>
116 {
117   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
118   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
119 
120   typedef Result result_type; // Must return raw result type.
121 
valueasio::traits::query_static_constexpr_member122   static ASIO_CONSTEXPR result_type value()
123   {
124     return Result();
125   }
126 };
127 
128 #endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
129 
130 } // namespace traits
131 } // namespace asio
132 
133 template <typename ResultType, typename ParamType, typename Result>
134 struct ex_mq_nr
135 {
queryex_mq_nr136   ResultType query(ParamType) const ASIO_NOEXCEPT
137   {
138     return Result();
139   }
140 
141   template <typename F>
executeex_mq_nr142   void execute(const F&) const
143   {
144   }
145 
operator ==(const ex_mq_nr &,const ex_mq_nr &)146   friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
147   {
148     return true;
149   }
150 
operator !=(const ex_mq_nr &,const ex_mq_nr &)151   friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) ASIO_NOEXCEPT
152   {
153     return false;
154   }
155 };
156 
157 #if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
158 
159 namespace asio {
160 namespace execution {
161 
162 template <typename ResultType, typename ParamType, typename Result>
163 struct is_executor<ex_mq_nr<ResultType, ParamType, Result> >
164   : asio::true_type
165 {
166 };
167 
168 } // namespace execution
169 } // namespace asio
170 
171 #endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
172 
173 namespace asio {
174 namespace traits {
175 
176 #if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
177 
178 template <typename ResultType, typename ParamType,
179   typename Result, typename Param>
180 struct query_member<
181   ex_mq_nr<ResultType, ParamType, Result>, Param,
182   typename asio::enable_if<
183     asio::is_convertible<Param, ParamType>::value
184   >::type>
185 {
186   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
187   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
188 
189   typedef ResultType result_type;
190 };
191 
192 #endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
193 
194 } // namespace traits
195 } // namespace asio
196 
197 template <typename ResultType, typename ParamType, typename Result>
198 struct ex_fq_nr
199 {
query(const ex_fq_nr &,ParamType)200   friend ResultType query(const ex_fq_nr&, ParamType) ASIO_NOEXCEPT
201   {
202     return Result();
203   }
204 
205   template <typename F>
executeex_fq_nr206   void execute(const F&) const
207   {
208   }
209 
operator ==(const ex_fq_nr &,const ex_fq_nr &)210   friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
211   {
212     return true;
213   }
214 
operator !=(const ex_fq_nr &,const ex_fq_nr &)215   friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) ASIO_NOEXCEPT
216   {
217     return false;
218   }
219 };
220 
221 #if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
222 
223 namespace asio {
224 namespace execution {
225 
226 template <typename ResultType, typename ParamType, typename Result>
227 struct is_executor<ex_fq_nr<ResultType, ParamType, Result> >
228   : asio::true_type
229 {
230 };
231 
232 } // namespace execution
233 } // namespace asio
234 
235 #endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
236 
237 namespace asio {
238 namespace traits {
239 
240 #if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
241 
242 template <typename ResultType, typename ParamType,
243   typename Result, typename Param>
244 struct query_free<
245   ex_fq_nr<ResultType, ParamType, Result>, Param,
246   typename asio::enable_if<
247     asio::is_convertible<Param, ParamType>::value
248   >::type>
249 {
250   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
251   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
252 
253   typedef ResultType result_type;
254 };
255 
256 #endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
257 
258 } // namespace traits
259 } // namespace asio
260 
261 template <typename CurrentType, typename OtherType>
262 struct ex_mq_mr
263 {
queryex_mq_mr264   CurrentType query(CurrentType) const ASIO_NOEXCEPT
265   {
266     return CurrentType();
267   }
268 
queryex_mq_mr269   CurrentType query(OtherType) const ASIO_NOEXCEPT
270   {
271     return CurrentType();
272   }
273 
requireex_mq_mr274   ex_mq_mr<CurrentType, OtherType> require(
275       CurrentType) const ASIO_NOEXCEPT
276   {
277     return ex_mq_mr<CurrentType, OtherType>();
278   }
279 
requireex_mq_mr280   ex_mq_mr<OtherType, CurrentType> require(
281       OtherType) const ASIO_NOEXCEPT
282   {
283     return ex_mq_mr<OtherType, CurrentType>();
284   }
285 
286   template <typename F>
executeex_mq_mr287   void execute(const F&) const
288   {
289   }
290 
operator ==(const ex_mq_mr &,const ex_mq_mr &)291   friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
292   {
293     return true;
294   }
295 
operator !=(const ex_mq_mr &,const ex_mq_mr &)296   friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
297   {
298     return false;
299   }
300 };
301 
302 template <typename CurrentType>
303 struct ex_mq_mr<CurrentType, CurrentType>
304 {
queryex_mq_mr305   CurrentType query(CurrentType) const ASIO_NOEXCEPT
306   {
307     return CurrentType();
308   }
309 
requireex_mq_mr310   ex_mq_mr<CurrentType, CurrentType> require(
311       CurrentType) const ASIO_NOEXCEPT
312   {
313     return ex_mq_mr<CurrentType, CurrentType>();
314   }
315 
316   template <typename F>
executeex_mq_mr317   void execute(const F&) const
318   {
319   }
320 
operator ==(const ex_mq_mr &,const ex_mq_mr &)321   friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
322   {
323     return true;
324   }
325 
operator !=(const ex_mq_mr &,const ex_mq_mr &)326   friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) ASIO_NOEXCEPT
327   {
328     return false;
329   }
330 };
331 
332 #if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
333 
334 namespace asio {
335 namespace execution {
336 
337 template <typename CurrentType, typename OtherType>
338 struct is_executor<ex_mq_mr<CurrentType, OtherType> >
339   : asio::true_type
340 {
341 };
342 
343 } // namespace execution
344 } // namespace asio
345 
346 #endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
347 
348 namespace asio {
349 namespace traits {
350 
351 #if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
352 
353 template <typename CurrentType, typename OtherType, typename Param>
354 struct query_member<
355   ex_mq_mr<CurrentType, OtherType>, Param,
356   typename asio::enable_if<
357     asio::is_convertible<Param, CurrentType>::value
358       || asio::is_convertible<Param, OtherType>::value
359   >::type>
360 {
361   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
362   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
363 
364   typedef CurrentType result_type;
365 };
366 
367 #endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
368 
369 #if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
370 
371 template <typename CurrentType, typename OtherType, typename Param>
372 struct require_member<
373   ex_mq_mr<CurrentType, OtherType>, Param,
374   typename asio::enable_if<
375     asio::is_convertible<Param, CurrentType>::value
376   >::type>
377 {
378   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
379   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
380 
381   typedef ex_mq_mr<CurrentType, OtherType> result_type;
382 };
383 
384 template <typename CurrentType, typename OtherType, typename Param>
385 struct require_member<
386   ex_mq_mr<CurrentType, OtherType>, Param,
387   typename asio::enable_if<
388     asio::is_convertible<Param, OtherType>::value
389       && !asio::is_same<CurrentType, OtherType>::value
390   >::type>
391 {
392   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
393   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
394 
395   typedef ex_mq_mr<OtherType, CurrentType> result_type;
396 };
397 
398 #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
399 
400 } // namespace traits
401 } // namespace asio
402 
403 template <typename CurrentType, typename OtherType>
404 struct ex_fq_fr
405 {
query(const ex_fq_fr &,CurrentType)406   friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
407   {
408     return CurrentType();
409   }
410 
query(const ex_fq_fr &,OtherType)411   friend CurrentType query(const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
412   {
413     return CurrentType();
414   }
415 
require(const ex_fq_fr &,CurrentType)416   friend ex_fq_fr<CurrentType, OtherType> require(
417       const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
418   {
419     return ex_fq_fr<CurrentType, OtherType>();
420   }
421 
require(const ex_fq_fr &,OtherType)422   friend ex_fq_fr<OtherType, CurrentType> require(
423       const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
424   {
425     return ex_fq_fr<OtherType, CurrentType>();
426   }
427 
prefer(const ex_fq_fr &,CurrentType)428   friend ex_fq_fr<CurrentType, OtherType> prefer(
429       const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
430   {
431     return ex_fq_fr<CurrentType, OtherType>();
432   }
433 
prefer(const ex_fq_fr &,OtherType)434   friend ex_fq_fr<OtherType, CurrentType> prefer(
435       const ex_fq_fr&, OtherType) ASIO_NOEXCEPT
436   {
437     return ex_fq_fr<OtherType, CurrentType>();
438   }
439 
440   template <typename F>
executeex_fq_fr441   void execute(const F&) const
442   {
443   }
444 
operator ==(const ex_fq_fr &,const ex_fq_fr &)445   friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
446   {
447     return true;
448   }
449 
operator !=(const ex_fq_fr &,const ex_fq_fr &)450   friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
451   {
452     return false;
453   }
454 };
455 
456 template <typename CurrentType>
457 struct ex_fq_fr<CurrentType, CurrentType>
458 {
query(const ex_fq_fr &,CurrentType)459   friend CurrentType query(const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
460   {
461     return CurrentType();
462   }
463 
require(const ex_fq_fr &,CurrentType)464   friend ex_fq_fr<CurrentType, CurrentType> require(
465       const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
466   {
467     return ex_fq_fr<CurrentType, CurrentType>();
468   }
469 
prefer(const ex_fq_fr &,CurrentType)470   friend ex_fq_fr<CurrentType, CurrentType> prefer(
471       const ex_fq_fr&, CurrentType) ASIO_NOEXCEPT
472   {
473     return ex_fq_fr<CurrentType, CurrentType>();
474   }
475 
476   template <typename F>
executeex_fq_fr477   void execute(const F&) const
478   {
479   }
480 
operator ==(const ex_fq_fr &,const ex_fq_fr &)481   friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
482   {
483     return true;
484   }
485 
operator !=(const ex_fq_fr &,const ex_fq_fr &)486   friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) ASIO_NOEXCEPT
487   {
488     return false;
489   }
490 };
491 
492 #if !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
493 
494 namespace asio {
495 namespace execution {
496 
497 template <typename CurrentType, typename OtherType>
498 struct is_executor<ex_fq_fr<CurrentType, OtherType> >
499   : asio::true_type
500 {
501 };
502 
503 } // namespace execution
504 } // namespace asio
505 
506 #endif // !defined(ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT)
507 
508 namespace asio {
509 namespace traits {
510 
511 #if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
512 
513 template <typename CurrentType, typename OtherType, typename Param>
514 struct query_free<
515   ex_fq_fr<CurrentType, OtherType>, Param,
516   typename asio::enable_if<
517     asio::is_convertible<Param, CurrentType>::value
518       || asio::is_convertible<Param, OtherType>::value
519   >::type>
520 {
521   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
522   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
523 
524   typedef CurrentType result_type;
525 };
526 
527 #endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
528 
529 #if !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
530 
531 template <typename CurrentType, typename OtherType, typename Param>
532 struct require_free<
533   ex_fq_fr<CurrentType, OtherType>, Param,
534   typename asio::enable_if<
535     asio::is_convertible<Param, CurrentType>::value
536   >::type>
537 {
538   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
539   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
540 
541   typedef ex_fq_fr<CurrentType, OtherType> result_type;
542 };
543 
544 template <typename CurrentType, typename OtherType, typename Param>
545 struct require_free<
546   ex_fq_fr<CurrentType, OtherType>, Param,
547   typename asio::enable_if<
548     asio::is_convertible<Param, OtherType>::value
549       && !asio::is_same<CurrentType, OtherType>::value
550   >::type>
551 {
552   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
553   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
554 
555   typedef ex_fq_fr<OtherType, CurrentType> result_type;
556 };
557 
558 #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
559 
560 #if !defined(ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
561 
562 template <typename CurrentType, typename OtherType, typename Param>
563 struct prefer_free<
564   ex_fq_fr<CurrentType, OtherType>, Param,
565   typename asio::enable_if<
566     asio::is_convertible<Param, CurrentType>::value
567   >::type>
568 {
569   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
570   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
571 
572   typedef ex_fq_fr<CurrentType, OtherType> result_type;
573 };
574 
575 template <typename CurrentType, typename OtherType, typename Param>
576 struct prefer_free<
577   ex_fq_fr<CurrentType, OtherType>, Param,
578   typename asio::enable_if<
579     asio::is_convertible<Param, OtherType>::value
580       && !asio::is_same<CurrentType, OtherType>::value
581   >::type>
582 {
583   ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
584   ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
585 
586   typedef ex_fq_fr<OtherType, CurrentType> result_type;
587 };
588 
589 #endif // !defined(ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
590 
591 } // namespace traits
592 } // namespace asio
593 
594 template <typename Executor, typename Param, bool ExpectedResult>
test_can_query()595 void test_can_query()
596 {
597   ASIO_CONSTEXPR bool b1 =
598     asio::can_query<Executor, Param>::value;
599   ASIO_CHECK(b1 == ExpectedResult);
600 
601   ASIO_CONSTEXPR bool b2 =
602     asio::can_query<const Executor, Param>::value;
603   ASIO_CHECK(b2 == ExpectedResult);
604 
605   ASIO_CONSTEXPR bool b3 =
606     asio::can_query<Executor&, Param>::value;
607   ASIO_CHECK(b3 == ExpectedResult);
608 
609   ASIO_CONSTEXPR bool b4 =
610     asio::can_query<const Executor&, Param>::value;
611   ASIO_CHECK(b4 == ExpectedResult);
612 }
613 
614 template <typename Executor, typename Param, typename ExpectedResult>
test_query()615 void test_query()
616 {
617   exec::blocking_t result1 = asio::query(Executor(), Param());
618   ASIO_CHECK(result1 == ExpectedResult());
619 
620   Executor ex1 = {};
621   exec::blocking_t result2 = asio::query(ex1, Param());
622   ASIO_CHECK(result2 == ExpectedResult());
623 
624   const Executor ex2 = {};
625   exec::blocking_t result3 = asio::query(ex2, Param());
626   ASIO_CHECK(result3 == ExpectedResult());
627 }
628 
629 template <typename Executor, typename Param, typename ExpectedResult>
test_constexpr_query()630 void test_constexpr_query()
631 {
632 #if defined(ASIO_HAS_CONSTEXPR)
633   constexpr Executor ex1 = {};
634   constexpr exec::blocking_t result1 = asio::query(ex1, Param());
635   ASIO_CHECK(result1 == ExpectedResult());
636 #endif // defined(ASIO_HAS_CONSTEXPR)
637 }
638 
639 template <typename Executor, typename Param, bool ExpectedResult>
test_can_require()640 void test_can_require()
641 {
642   ASIO_CONSTEXPR bool b1 =
643     asio::can_require<Executor, Param>::value;
644   ASIO_CHECK(b1 == ExpectedResult);
645 
646   ASIO_CONSTEXPR bool b2 =
647     asio::can_require<const Executor, Param>::value;
648   ASIO_CHECK(b2 == ExpectedResult);
649 
650   ASIO_CONSTEXPR bool b3 =
651     asio::can_require<Executor&, Param>::value;
652   ASIO_CHECK(b3 == ExpectedResult);
653 
654   ASIO_CONSTEXPR bool b4 =
655     asio::can_require<const Executor&, Param>::value;
656   ASIO_CHECK(b4 == ExpectedResult);
657 }
658 
659 template <typename Executor, typename Param, typename ExpectedResult>
test_require()660 void test_require()
661 {
662   ASIO_CHECK(
663       asio::query(
664         asio::require(Executor(), Param()),
665         Param()) == ExpectedResult());
666 
667   Executor ex1 = {};
668   ASIO_CHECK(
669       asio::query(
670         asio::require(ex1, Param()),
671         Param()) == ExpectedResult());
672 
673   const Executor ex2 = {};
674   ASIO_CHECK(
675       asio::query(
676         asio::require(ex2, Param()),
677         Param()) == ExpectedResult());
678 }
679 
680 template <typename Executor, typename Param, bool ExpectedResult>
test_can_prefer()681 void test_can_prefer()
682 {
683   ASIO_CONSTEXPR bool b1 =
684     asio::can_prefer<Executor, Param>::value;
685   ASIO_CHECK(b1 == ExpectedResult);
686 
687   ASIO_CONSTEXPR bool b2 =
688     asio::can_prefer<const Executor, Param>::value;
689   ASIO_CHECK(b2 == ExpectedResult);
690 
691   ASIO_CONSTEXPR bool b3 =
692     asio::can_prefer<Executor&, Param>::value;
693   ASIO_CHECK(b3 == ExpectedResult);
694 
695   ASIO_CONSTEXPR bool b4 =
696     asio::can_prefer<const Executor&, Param>::value;
697   ASIO_CHECK(b4 == ExpectedResult);
698 }
699 
700 template <typename Executor, typename Param, typename ExpectedResult>
test_prefer()701 void test_prefer()
702 {
703   ASIO_CHECK(
704       s(asio::query(
705         asio::prefer(Executor(), Param()),
706           s())) == s(ExpectedResult()));
707 
708   Executor ex1 = {};
709   ASIO_CHECK(
710       s(asio::query(
711         asio::prefer(ex1, Param()),
712           s())) == s(ExpectedResult()));
713 
714   const Executor ex2 = {};
715   ASIO_CHECK(
716       s(asio::query(
717         asio::prefer(ex2, Param()),
718           s())) == s(ExpectedResult()));
719 }
720 
test_vars()721 void test_vars()
722 {
723   ASIO_CHECK(s() == exec::blocking);
724   ASIO_CHECK(n1() == exec::blocking.possibly);
725   ASIO_CHECK(n2() == exec::blocking.always);
726   ASIO_CHECK(n3() == exec::blocking.never);
727 }
728 
729 ASIO_TEST_SUITE
730 (
731   "blocking",
732 
733   ASIO_TEST_CASE3(test_can_query<ex_nq_nr, s, true>)
734   ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n1, true>)
735   ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n2, false>)
736   ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n3, false>)
737 
738   ASIO_TEST_CASE3(test_query<ex_nq_nr, s, n1>)
739   ASIO_TEST_CASE3(test_query<ex_nq_nr, n1, n1>)
740 
741   ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, s, n1>)
742   ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, n1, n1>)
743 
744   ASIO_TEST_CASE3(test_can_require<ex_nq_nr, s, false>)
745   ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n1, true>)
746   ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n2, false>)
747   ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n3, false>)
748 
749   ASIO_TEST_CASE3(test_require<ex_nq_nr, n1, n1>)
750 
751   ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, s, false>)
752   ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n1, true>)
753   ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n2, false>)
754   ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n3, true>)
755 
756   ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n1, n1>)
757   ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n3, n1>)
758 
759   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, s, true>)
760   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n1, true>)
761   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n2, true>)
762   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n3, true>)
763   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, s, true>)
764   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n1, true>)
765   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n2, true>)
766   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n3, true>)
767   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, s, true>)
768   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n1, true>)
769   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n2, true>)
770   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n3>, n3, true>)
771   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, s, true>)
772   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n1, true>)
773   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n2, false>)
774   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n3, false>)
775   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, s, true>)
776   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n1, true>)
777   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n2, false>)
778   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n3, false>)
779   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, s, true>)
780   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n1, true>)
781   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n2, false>)
782   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n3>, n3, false>)
783   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, s, true>)
784   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n1, false>)
785   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n2, true>)
786   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n3, false>)
787   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, s, true>)
788   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n1, false>)
789   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n2, true>)
790   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n3, false>)
791   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, s, true>)
792   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n1, false>)
793   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n2, true>)
794   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n3>, n3, false>)
795   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, s, true>)
796   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n1, false>)
797   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n2, false>)
798   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n1>, n3, true>)
799   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, s, true>)
800   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n1, false>)
801   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n2, false>)
802   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n2>, n3, true>)
803   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, s, true>)
804   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n1, false>)
805   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n2, false>)
806   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n3, n3>, n3, true>)
807   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, s, true>)
808   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n1, true>)
809   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n2, true>)
810   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n3, true>)
811   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, s, true>)
812   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n1, true>)
813   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n2, true>)
814   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n3, true>)
815   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, s, true>)
816   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n1, true>)
817   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n2, true>)
818   ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n3, s, n3>, n3, true>)
819 
820   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, s, n1>)
821   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n1, n1>)
822   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n2, n1>)
823   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n3, n1>)
824   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, s, n2>)
825   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n1, n2>)
826   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n2, n2>)
827   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n3, n2>)
828   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, s, n3>)
829   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n1, n3>)
830   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n2, n3>)
831   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n3>, n3, n3>)
832   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, s, n1>)
833   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, n1, n1>)
834   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, s, n2>)
835   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, n1, n2>)
836   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n3>, s, n3>)
837   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n3>, n1, n3>)
838   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, s, n1>)
839   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, n2, n1>)
840   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, s, n2>)
841   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, n2, n2>)
842   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n3>, s, n3>)
843   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n3>, n2, n3>)
844   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n1>, s, n1>)
845   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n1>, n3, n1>)
846   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n2>, s, n2>)
847   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n2>, n3, n2>)
848   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n3>, s, n3>)
849   ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n3, n3>, n3, n3>)
850   ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, s, n1>)
851   ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n1, n1>)
852   ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n2, n1>)
853   ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n3, n1>)
854   ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, s, n2>)
855   ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n1, n2>)
856   ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n2, n2>)
857   ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n3, n2>)
858   ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, s, n3>)
859   ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n1, n3>)
860   ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n2, n3>)
861   ASIO_TEST_CASE5(test_query<ex_cq_nr<n3, s, n3>, n3, n3>)
862 
863   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, s, n1>)
864   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n1, n1>)
865   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n2, n1>)
866   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n3, n1>)
867   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, s, n2>)
868   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n1, n2>)
869   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n2, n2>)
870   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n3, n2>)
871   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, s, n3>)
872   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n1, n3>)
873   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n2, n3>)
874   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n3>, n3, n3>)
875   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, s, n1>)
876   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, n1, n1>)
877   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, s, n2>)
878   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, n1, n2>)
879   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n3>, s, n3>)
880   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n3>, n1, n3>)
881   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, s, n1>)
882   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, n2, n1>)
883   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, s, n2>)
884   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, n2, n2>)
885   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n3>, s, n3>)
886   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n3>, n2, n3>)
887   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n1>, s, n1>)
888   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n1>, n3, n1>)
889   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n2>, s, n2>)
890   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n2>, n3, n2>)
891   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n3>, s, n3>)
892   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n3, n3>, n3, n3>)
893   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, s, n1>)
894   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n1, n1>)
895   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n2, n1>)
896   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n3, n1>)
897   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, s, n2>)
898   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n1, n2>)
899   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n2, n2>)
900   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n3, n2>)
901   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, s, n3>)
902   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n1, n3>)
903   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n2, n3>)
904   ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n3, s, n3>, n3, n3>)
905 
906   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, s, false>)
907   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n1, true>)
908   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n2, false>)
909   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n3, false>)
910   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, s, false>)
911   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n1, false>)
912   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n2, true>)
913   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n3, false>)
914   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, s, false>)
915   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n1, false>)
916   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n2, false>)
917   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n3>, n3, true>)
918   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, s, false>)
919   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n1, true>)
920   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n2, false>)
921   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n3, false>)
922   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, s, false>)
923   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n1, false>)
924   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n2, false>)
925   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n3, false>)
926   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, s, false>)
927   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n1, false>)
928   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n2, false>)
929   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n3>, n3, false>)
930   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, s, false>)
931   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n1, false>)
932   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n2, false>)
933   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n3, false>)
934   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, s, false>)
935   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n1, false>)
936   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n2, true>)
937   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n3, false>)
938   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, s, false>)
939   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n1, false>)
940   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n2, false>)
941   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n3>, n3, false>)
942   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, s, false>)
943   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n1, false>)
944   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n2, false>)
945   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n1>, n3, false>)
946   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, s, false>)
947   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n1, false>)
948   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n2, false>)
949   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n2>, n3, false>)
950   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, s, false>)
951   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n1, false>)
952   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n2, false>)
953   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n3, n3>, n3, true>)
954   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, s, false>)
955   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n1, true>)
956   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n2, false>)
957   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n3, false>)
958   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, s, false>)
959   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n1, false>)
960   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n2, true>)
961   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n3, false>)
962   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, s, false>)
963   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n1, false>)
964   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n2, false>)
965   ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n3, s, n3>, n3, true>)
966 
967   ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n1, n1>)
968   ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n2>, n2, n2>)
969   ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n3>, n3, n3>)
970   ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n1, n1>)
971   ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n2>, n2, n2>)
972   ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n3, n3>, n3, n3>)
973   ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n1, n1>)
974   ASIO_TEST_CASE5(test_require<ex_cq_nr<n2, s, n2>, n2, n2>)
975   ASIO_TEST_CASE5(test_require<ex_cq_nr<n3, s, n3>, n3, n3>)
976 
977   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, s, false>)
978   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n1, true>)
979   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n2, false>)
980   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n3, true>)
981   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, s, false>)
982   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n1, true>)
983   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n2, false>)
984   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n3, true>)
985   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, s, false>)
986   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n1, true>)
987   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n2, false>)
988   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n3>, n3, true>)
989   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, s, false>)
990   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n1, true>)
991   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n2, false>)
992   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n3, true>)
993   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, s, false>)
994   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n1, true>)
995   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n2, false>)
996   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n3, true>)
997   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, s, false>)
998   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n1, true>)
999   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n2, false>)
1000   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n3>, n3, true>)
1001   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, s, false>)
1002   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n1, true>)
1003   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n2, false>)
1004   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n3, true>)
1005   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, s, false>)
1006   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n1, true>)
1007   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n2, false>)
1008   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n3, true>)
1009   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, s, false>)
1010   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n1, true>)
1011   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n2, false>)
1012   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n3>, n3, true>)
1013   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, s, false>)
1014   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n1, true>)
1015   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n2, false>)
1016   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n1>, n3, true>)
1017   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, s, false>)
1018   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n1, true>)
1019   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n2, false>)
1020   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n2>, n3, true>)
1021   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, s, false>)
1022   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n1, true>)
1023   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n2, false>)
1024   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n3, n3>, n3, true>)
1025   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, s, false>)
1026   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n1, true>)
1027   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n2, false>)
1028   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n3, true>)
1029   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, s, false>)
1030   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n1, true>)
1031   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n2, false>)
1032   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n3, true>)
1033   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, s, false>)
1034   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n1, true>)
1035   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n2, false>)
1036   ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n3, s, n3>, n3, true>)
1037 
1038   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n1, n1>)
1039   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n3, n1>)
1040   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n1, n2>)
1041   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n3, n2>)
1042   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n1, n3>)
1043   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n3>, n3, n3>)
1044   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n1, n1>)
1045   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n3, n1>)
1046   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n1, n2>)
1047   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n3, n2>)
1048   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n1, n3>)
1049   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n3>, n3, n3>)
1050   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n1, n1>)
1051   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n3, n1>)
1052   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n1, n2>)
1053   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n3, n2>)
1054   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n1, n3>)
1055   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n3>, n3, n3>)
1056   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n1, n1>)
1057   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n1>, n3, n1>)
1058   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n1, n2>)
1059   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n2>, n3, n2>)
1060   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n1, n3>)
1061   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n3, n3>, n3, n3>)
1062   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n1, n1>)
1063   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n3, n1>)
1064   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n1, n2>)
1065   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n3, n2>)
1066   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n1, n3>)
1067   ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n3, s, n3>, n3, n3>)
1068 
1069   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, s, true>)
1070   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n1, true>)
1071   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n2, true>)
1072   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n3, true>)
1073   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, s, true>)
1074   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n1, true>)
1075   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n2, true>)
1076   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n3, true>)
1077   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, s, true>)
1078   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n1, true>)
1079   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n2, true>)
1080   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n3>, n3, true>)
1081   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, s, true>)
1082   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n1, true>)
1083   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n2, false>)
1084   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n3, false>)
1085   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, s, true>)
1086   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n1, true>)
1087   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n2, false>)
1088   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n3, false>)
1089   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, s, true>)
1090   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n1, true>)
1091   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n2, false>)
1092   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n3>, n3, false>)
1093   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, s, true>)
1094   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n1, false>)
1095   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n2, true>)
1096   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n3, false>)
1097   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, s, true>)
1098   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n1, false>)
1099   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n2, true>)
1100   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n3, false>)
1101   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, s, true>)
1102   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n1, false>)
1103   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n2, true>)
1104   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n3>, n3, false>)
1105   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, s, true>)
1106   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n1, false>)
1107   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n2, false>)
1108   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n1>, n3, true>)
1109   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, s, true>)
1110   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n1, false>)
1111   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n2, false>)
1112   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n2>, n3, true>)
1113   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, s, true>)
1114   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n1, false>)
1115   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n2, false>)
1116   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n3, n3>, n3, true>)
1117   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, s, true>)
1118   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n1, true>)
1119   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n2, true>)
1120   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n3, true>)
1121   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, s, true>)
1122   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n1, true>)
1123   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n2, true>)
1124   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n3, true>)
1125   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, s, true>)
1126   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n1, true>)
1127   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n2, true>)
1128   ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n3, s, n3>, n3, true>)
1129 
1130   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, s, n1>)
1131   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n1, n1>)
1132   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n2, n1>)
1133   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n3, n1>)
1134   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, s, n2>)
1135   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n1, n2>)
1136   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n2, n2>)
1137   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n3, n2>)
1138   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, s, n3>)
1139   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n1, n3>)
1140   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n2, n3>)
1141   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n3>, n3, n3>)
1142   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, s, n1>)
1143   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, n1, n1>)
1144   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, s, n2>)
1145   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, n1, n2>)
1146   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n3>, s, n3>)
1147   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n3>, n1, n3>)
1148   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, s, n1>)
1149   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, n2, n1>)
1150   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, s, n2>)
1151   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, n2, n2>)
1152   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n3>, s, n3>)
1153   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n3>, n2, n3>)
1154   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n1>, s, n1>)
1155   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n1>, n3, n1>)
1156   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n2>, s, n2>)
1157   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n2>, n3, n2>)
1158   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n3>, s, n3>)
1159   ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n3, n3>, n3, n3>)
1160   ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, s, n1>)
1161   ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n1, n1>)
1162   ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n2, n1>)
1163   ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n3, n1>)
1164   ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, s, n2>)
1165   ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n1, n2>)
1166   ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n2, n2>)
1167   ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n3, n2>)
1168   ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, s, n3>)
1169   ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n1, n3>)
1170   ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n2, n3>)
1171   ASIO_TEST_CASE5(test_query<ex_mq_nr<n3, s, n3>, n3, n3>)
1172 
1173   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, s, false>)
1174   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n1, false>)
1175   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n2, false>)
1176   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n3, false>)
1177   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, s, false>)
1178   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n1, false>)
1179   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n2, false>)
1180   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n3, false>)
1181   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, s, false>)
1182   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n1, false>)
1183   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n2, false>)
1184   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n3>, n3, false>)
1185   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, s, false>)
1186   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n1, false>)
1187   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n2, false>)
1188   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n3, false>)
1189   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, s, false>)
1190   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n1, false>)
1191   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n2, false>)
1192   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n3, false>)
1193   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, s, false>)
1194   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n1, false>)
1195   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n2, false>)
1196   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n3>, n3, false>)
1197   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, s, false>)
1198   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n1, false>)
1199   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n2, false>)
1200   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n3, false>)
1201   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, s, false>)
1202   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n1, false>)
1203   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n2, false>)
1204   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n3, false>)
1205   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, s, false>)
1206   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n1, false>)
1207   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n2, false>)
1208   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n3>, n3, false>)
1209   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, s, false>)
1210   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n1, false>)
1211   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n2, false>)
1212   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n1>, n3, false>)
1213   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, s, false>)
1214   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n1, false>)
1215   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n2, false>)
1216   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n2>, n3, false>)
1217   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, s, false>)
1218   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n1, false>)
1219   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n2, false>)
1220   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n3, n3>, n3, false>)
1221   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, s, false>)
1222   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n1, false>)
1223   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n2, false>)
1224   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n3, false>)
1225   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, s, false>)
1226   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n1, false>)
1227   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n2, false>)
1228   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n3, false>)
1229   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, s, false>)
1230   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n1, false>)
1231   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n2, false>)
1232   ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n3, s, n3>, n3, false>)
1233 
1234   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, s, false>)
1235   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n1, true>)
1236   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n2, false>)
1237   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n3, true>)
1238   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, s, false>)
1239   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n1, true>)
1240   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n2, false>)
1241   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n3, true>)
1242   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, s, false>)
1243   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n1, true>)
1244   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n2, false>)
1245   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n3>, n3, true>)
1246   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, s, false>)
1247   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n1, true>)
1248   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n2, false>)
1249   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n3, true>)
1250   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, s, false>)
1251   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n1, true>)
1252   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n2, false>)
1253   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n3, true>)
1254   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, s, false>)
1255   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n1, true>)
1256   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n2, false>)
1257   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n3>, n3, true>)
1258   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, s, false>)
1259   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n1, true>)
1260   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n2, false>)
1261   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n3, true>)
1262   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, s, false>)
1263   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n1, true>)
1264   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n2, false>)
1265   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n3, true>)
1266   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, s, false>)
1267   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n1, true>)
1268   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n2, false>)
1269   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n3>, n3, true>)
1270   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, s, false>)
1271   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n1, true>)
1272   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n2, false>)
1273   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n1>, n3, true>)
1274   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, s, false>)
1275   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n1, true>)
1276   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n2, false>)
1277   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n2>, n3, true>)
1278   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, s, false>)
1279   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n1, true>)
1280   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n2, false>)
1281   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n3, n3>, n3, true>)
1282   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, s, false>)
1283   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n1, true>)
1284   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n2, false>)
1285   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n3, true>)
1286   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, s, false>)
1287   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n1, true>)
1288   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n2, false>)
1289   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n3, true>)
1290   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, s, false>)
1291   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n1, true>)
1292   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n2, false>)
1293   ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n3, s, n3>, n3, true>)
1294 
1295   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n1, n1>)
1296   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n3, n1>)
1297   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n1, n2>)
1298   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n3, n2>)
1299   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n1, n3>)
1300   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n3>, n3, n3>)
1301   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n1, n1>)
1302   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n3, n1>)
1303   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n1, n2>)
1304   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n3, n2>)
1305   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n1, n3>)
1306   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n3>, n3, n3>)
1307   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n1, n1>)
1308   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n3, n1>)
1309   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n1, n2>)
1310   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n3, n2>)
1311   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n1, n3>)
1312   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n3>, n3, n3>)
1313   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n1, n1>)
1314   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n1>, n3, n1>)
1315   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n1, n2>)
1316   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n2>, n3, n2>)
1317   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n1, n3>)
1318   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n3, n3>, n3, n3>)
1319   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n1, n1>)
1320   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n3, n1>)
1321   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n1, n2>)
1322   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n3, n2>)
1323   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n1, n3>)
1324   ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n3, s, n3>, n3, n3>)
1325 
1326   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, s, true>)
1327   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n1, true>)
1328   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n2, true>)
1329   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n3, true>)
1330   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, s, true>)
1331   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n1, true>)
1332   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n2, true>)
1333   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n3, true>)
1334   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, s, true>)
1335   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n1, true>)
1336   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n2, true>)
1337   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n3>, n3, true>)
1338   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, s, true>)
1339   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n1, true>)
1340   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n2, false>)
1341   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n3, false>)
1342   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, s, true>)
1343   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n1, true>)
1344   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n2, false>)
1345   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n3, false>)
1346   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, s, true>)
1347   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n1, true>)
1348   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n2, false>)
1349   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n3>, n3, false>)
1350   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, s, true>)
1351   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n1, false>)
1352   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n2, true>)
1353   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n3, false>)
1354   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, s, true>)
1355   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n1, false>)
1356   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n2, true>)
1357   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n3, false>)
1358   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, s, true>)
1359   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n1, false>)
1360   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n2, true>)
1361   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n3>, n3, false>)
1362   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, s, true>)
1363   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n1, false>)
1364   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n2, false>)
1365   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n1>, n3, true>)
1366   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, s, true>)
1367   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n1, false>)
1368   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n2, false>)
1369   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n2>, n3, true>)
1370   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, s, true>)
1371   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n1, false>)
1372   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n2, false>)
1373   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n3, n3>, n3, true>)
1374   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, s, true>)
1375   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n1, true>)
1376   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n2, true>)
1377   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n3, true>)
1378   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, s, true>)
1379   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n1, true>)
1380   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n2, true>)
1381   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n3, true>)
1382   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, s, true>)
1383   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n1, true>)
1384   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n2, true>)
1385   ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n3, s, n3>, n3, true>)
1386 
1387   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, s, n1>)
1388   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n1, n1>)
1389   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n2, n1>)
1390   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n3, n1>)
1391   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, s, n2>)
1392   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n1, n2>)
1393   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n2, n2>)
1394   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n3, n2>)
1395   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, s, n3>)
1396   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n1, n3>)
1397   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n2, n3>)
1398   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n3>, n3, n3>)
1399   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, s, n1>)
1400   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, n1, n1>)
1401   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, s, n2>)
1402   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, n1, n2>)
1403   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n3>, s, n3>)
1404   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n3>, n1, n3>)
1405   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, s, n1>)
1406   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, n2, n1>)
1407   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, s, n2>)
1408   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, n2, n2>)
1409   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n3>, s, n3>)
1410   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n3>, n2, n3>)
1411   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n1>, s, n1>)
1412   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n1>, n3, n1>)
1413   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n2>, s, n2>)
1414   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n2>, n3, n2>)
1415   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n3>, s, n3>)
1416   ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n3, n3>, n3, n3>)
1417   ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, s, n1>)
1418   ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n1, n1>)
1419   ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n2, n1>)
1420   ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n3, n1>)
1421   ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, s, n2>)
1422   ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n1, n2>)
1423   ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n2, n2>)
1424   ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n3, n2>)
1425   ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, s, n3>)
1426   ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n1, n3>)
1427   ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n2, n3>)
1428   ASIO_TEST_CASE5(test_query<ex_fq_nr<n3, s, n3>, n3, n3>)
1429 
1430   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, s, false>)
1431   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n1, false>)
1432   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n2, false>)
1433   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n3, false>)
1434   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, s, false>)
1435   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n1, false>)
1436   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n2, false>)
1437   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n3, false>)
1438   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, s, false>)
1439   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n1, false>)
1440   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n2, false>)
1441   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n3>, n3, false>)
1442   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, s, false>)
1443   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n1, false>)
1444   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n2, false>)
1445   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n3, false>)
1446   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, s, false>)
1447   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n1, false>)
1448   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n2, false>)
1449   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n3, false>)
1450   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, s, false>)
1451   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n1, false>)
1452   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n2, false>)
1453   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n3>, n3, false>)
1454   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, s, false>)
1455   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n1, false>)
1456   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n2, false>)
1457   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n3, false>)
1458   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, s, false>)
1459   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n1, false>)
1460   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n2, false>)
1461   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n3, false>)
1462   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, s, false>)
1463   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n1, false>)
1464   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n2, false>)
1465   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n3>, n3, false>)
1466   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, s, false>)
1467   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n1, false>)
1468   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n2, false>)
1469   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n1>, n3, false>)
1470   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, s, false>)
1471   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n1, false>)
1472   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n2, false>)
1473   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n2>, n3, false>)
1474   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, s, false>)
1475   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n1, false>)
1476   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n2, false>)
1477   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n3, n3>, n3, false>)
1478   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, s, false>)
1479   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n1, false>)
1480   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n2, false>)
1481   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n3, false>)
1482   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, s, false>)
1483   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n1, false>)
1484   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n2, false>)
1485   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n3, false>)
1486   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, s, false>)
1487   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n1, false>)
1488   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n2, false>)
1489   ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n3, s, n3>, n3, false>)
1490 
1491   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, s, false>)
1492   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n1, true>)
1493   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n2, false>)
1494   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n3, true>)
1495   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, s, false>)
1496   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n1, true>)
1497   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n2, false>)
1498   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n3, true>)
1499   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, s, false>)
1500   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n1, true>)
1501   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n2, false>)
1502   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n3>, n3, true>)
1503   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, s, false>)
1504   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n1, true>)
1505   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n2, false>)
1506   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n3, true>)
1507   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, s, false>)
1508   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n1, true>)
1509   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n2, false>)
1510   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n3, true>)
1511   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, s, false>)
1512   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n1, true>)
1513   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n2, false>)
1514   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n3>, n3, true>)
1515   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, s, false>)
1516   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n1, true>)
1517   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n2, false>)
1518   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n3, true>)
1519   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, s, false>)
1520   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n1, true>)
1521   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n2, false>)
1522   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n3, true>)
1523   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, s, false>)
1524   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n1, true>)
1525   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n2, false>)
1526   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n3>, n3, true>)
1527   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, s, false>)
1528   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n1, true>)
1529   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n2, false>)
1530   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n1>, n3, true>)
1531   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, s, false>)
1532   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n1, true>)
1533   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n2, false>)
1534   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n2>, n3, true>)
1535   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, s, false>)
1536   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n1, true>)
1537   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n2, false>)
1538   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n3, n3>, n3, true>)
1539   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, s, false>)
1540   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n1, true>)
1541   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n2, false>)
1542   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n3, true>)
1543   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, s, false>)
1544   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n1, true>)
1545   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n2, false>)
1546   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n3, true>)
1547   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, s, false>)
1548   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n1, true>)
1549   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n2, false>)
1550   ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n3, s, n3>, n3, true>)
1551 
1552   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n1, n1>)
1553   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n3, n1>)
1554   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n1, n2>)
1555   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n3, n2>)
1556   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n1, n3>)
1557   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n3>, n3, n3>)
1558   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n1, n1>)
1559   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n3, n1>)
1560   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n1, n2>)
1561   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n3, n2>)
1562   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n1, n3>)
1563   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n3>, n3, n3>)
1564   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n1, n1>)
1565   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n3, n1>)
1566   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n1, n2>)
1567   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n3, n2>)
1568   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n1, n3>)
1569   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n3>, n3, n3>)
1570   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n1, n1>)
1571   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n1>, n3, n1>)
1572   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n1, n2>)
1573   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n2>, n3, n2>)
1574   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n1, n3>)
1575   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n3, n3>, n3, n3>)
1576   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n1, n1>)
1577   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n3, n1>)
1578   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n1, n2>)
1579   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n3, n2>)
1580   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n1, n3>)
1581   ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n3, s, n3>, n3, n3>)
1582 
1583   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, s, true>)
1584   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n1, true>)
1585   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n2, false>)
1586   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n3, false>)
1587   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, s, true>)
1588   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n1, true>)
1589   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n2, true>)
1590   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n3, false>)
1591   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, s, true>)
1592   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n1, true>)
1593   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n2, false>)
1594   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n3>, n3, true>)
1595   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, s, true>)
1596   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n1, true>)
1597   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n2, true>)
1598   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n3, false>)
1599   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, s, true>)
1600   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n1, false>)
1601   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n2, true>)
1602   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n3, false>)
1603   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, s, true>)
1604   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n1, false>)
1605   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n2, true>)
1606   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n3>, n3, true>)
1607   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, s, true>)
1608   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n1, true>)
1609   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n2, false>)
1610   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n1>, n3, true>)
1611   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, s, true>)
1612   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n1, false>)
1613   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n2, true>)
1614   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n2>, n3, true>)
1615   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, s, true>)
1616   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n1, false>)
1617   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n2, false>)
1618   ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n3, n3>, n3, true>)
1619 
1620   ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, s, n1>)
1621   ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, n1, n1>)
1622   ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, s, n1>)
1623   ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, n1, n1>)
1624   ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n3>, s, n1>)
1625   ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n3>, n1, n1>)
1626   ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, s, n2>)
1627   ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, n2, n2>)
1628   ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, s, n2>)
1629   ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, n2, n2>)
1630   ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n3>, s, n2>)
1631   ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n3>, n2, n2>)
1632   ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n1>, s, n3>)
1633   ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n1>, n3, n3>)
1634   ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n2>, s, n3>)
1635   ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n2>, n3, n3>)
1636   ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n3>, s, n3>)
1637   ASIO_TEST_CASE4(test_query<ex_mq_mr<n3, n3>, n3, n3>)
1638 
1639   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, s, false>)
1640   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n1, true>)
1641   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n2, false>)
1642   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n3, false>)
1643   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, s, false>)
1644   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n1, true>)
1645   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n2, true>)
1646   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n3, false>)
1647   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, s, false>)
1648   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n1, true>)
1649   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n2, false>)
1650   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n3>, n3, true>)
1651   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, s, false>)
1652   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n1, true>)
1653   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n2, true>)
1654   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n3, false>)
1655   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, s, false>)
1656   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n1, false>)
1657   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n2, true>)
1658   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n3, false>)
1659   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, s, false>)
1660   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n1, false>)
1661   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n2, true>)
1662   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n3>, n3, true>)
1663   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, s, false>)
1664   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n1, true>)
1665   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n2, false>)
1666   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n1>, n3, true>)
1667   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, s, false>)
1668   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n1, false>)
1669   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n2, true>)
1670   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n2>, n3, true>)
1671   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, s, false>)
1672   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n1, false>)
1673   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n2, false>)
1674   ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n3, n3>, n3, true>)
1675 
1676   ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n1, n1>)
1677   ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n1, n1>)
1678   ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n2, n2>)
1679   ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n3>, n1, n1>)
1680   ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n3>, n3, n3>)
1681   ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n1, n1>)
1682   ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n2, n2>)
1683   ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n2>, n2, n2>)
1684   ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n3>, n2, n2>)
1685   ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n3>, n3, n3>)
1686   ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n1>, n1, n1>)
1687   ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n1>, n3, n3>)
1688   ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n2>, n2, n2>)
1689   ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n2>, n3, n3>)
1690   ASIO_TEST_CASE4(test_require<ex_mq_mr<n3, n3>, n3, n3>)
1691 
1692   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, s, false>)
1693   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n1, true>)
1694   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n2, false>)
1695   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n3, true>)
1696   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, s, false>)
1697   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n1, true>)
1698   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n2, false>)
1699   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n3, true>)
1700   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, s, false>)
1701   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n1, true>)
1702   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n2, false>)
1703   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n3>, n3, true>)
1704   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, s, false>)
1705   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n1, true>)
1706   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n2, false>)
1707   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n3, true>)
1708   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, s, false>)
1709   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n1, true>)
1710   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n2, false>)
1711   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n3, true>)
1712   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, s, false>)
1713   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n1, true>)
1714   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n2, false>)
1715   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n3>, n3, true>)
1716   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, s, false>)
1717   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n1, true>)
1718   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n2, false>)
1719   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n1>, n3, true>)
1720   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, s, false>)
1721   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n1, true>)
1722   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n2, false>)
1723   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n2>, n3, true>)
1724   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, s, false>)
1725   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n1, true>)
1726   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n2, false>)
1727   ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n3, n3>, n3, true>)
1728 
1729   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n1, n1>)
1730   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n3, n1>)
1731   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n1, n1>)
1732   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n3, n1>)
1733   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n1, n1>)
1734   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n3>, n3, n3>)
1735   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n1, n1>)
1736   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n3, n2>)
1737   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n1, n2>)
1738   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n3, n2>)
1739   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n1, n2>)
1740   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n3>, n3, n3>)
1741   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n1, n1>)
1742   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n1>, n3, n3>)
1743   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n1, n3>)
1744   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n2>, n3, n3>)
1745   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n1, n3>)
1746   ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n3, n3>, n3, n3>)
1747 
1748   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, s, true>)
1749   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n1, true>)
1750   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n2, false>)
1751   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n3, false>)
1752   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, s, true>)
1753   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n1, true>)
1754   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n2, true>)
1755   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n3, false>)
1756   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, s, true>)
1757   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n1, true>)
1758   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n2, false>)
1759   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n3>, n3, true>)
1760   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, s, true>)
1761   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n1, true>)
1762   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n2, true>)
1763   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n3, false>)
1764   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, s, true>)
1765   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n1, false>)
1766   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n2, true>)
1767   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n3, false>)
1768   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, s, true>)
1769   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n1, false>)
1770   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n2, true>)
1771   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n3>, n3, true>)
1772   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, s, true>)
1773   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n1, true>)
1774   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n2, false>)
1775   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n1>, n3, true>)
1776   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, s, true>)
1777   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n1, false>)
1778   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n2, true>)
1779   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n2>, n3, true>)
1780   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, s, true>)
1781   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n1, false>)
1782   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n2, false>)
1783   ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n3, n3>, n3, true>)
1784 
1785   ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, s, n1>)
1786   ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, n1, n1>)
1787   ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, s, n1>)
1788   ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, n1, n1>)
1789   ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n3>, s, n1>)
1790   ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n3>, n1, n1>)
1791   ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, s, n2>)
1792   ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, n2, n2>)
1793   ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, s, n2>)
1794   ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, n2, n2>)
1795   ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n3>, s, n2>)
1796   ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n3>, n2, n2>)
1797   ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n1>, s, n3>)
1798   ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n1>, n3, n3>)
1799   ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n2>, s, n3>)
1800   ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n2>, n3, n3>)
1801   ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n3>, s, n3>)
1802   ASIO_TEST_CASE4(test_query<ex_fq_fr<n3, n3>, n3, n3>)
1803 
1804   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, s, false>)
1805   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n1, true>)
1806   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n2, false>)
1807   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n3, false>)
1808   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, s, false>)
1809   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n1, true>)
1810   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n2, true>)
1811   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n3, false>)
1812   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, s, false>)
1813   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n1, true>)
1814   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n2, false>)
1815   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n3>, n3, true>)
1816   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, s, false>)
1817   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n1, true>)
1818   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n2, true>)
1819   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n3, false>)
1820   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, s, false>)
1821   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n1, false>)
1822   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n2, true>)
1823   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n3, false>)
1824   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, s, false>)
1825   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n1, false>)
1826   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n2, true>)
1827   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n3>, n3, true>)
1828   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, s, false>)
1829   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n1, true>)
1830   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n2, false>)
1831   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n1>, n3, true>)
1832   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, s, false>)
1833   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n1, false>)
1834   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n2, true>)
1835   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n2>, n3, true>)
1836   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, s, false>)
1837   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n1, false>)
1838   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n2, false>)
1839   ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n3, n3>, n3, true>)
1840 
1841   ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n1, n1>)
1842   ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n1, n1>)
1843   ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n2, n2>)
1844   ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n3>, n1, n1>)
1845   ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n3>, n3, n3>)
1846   ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n1, n1>)
1847   ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n2, n2>)
1848   ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n2>, n2, n2>)
1849   ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n3>, n2, n2>)
1850   ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n3>, n3, n3>)
1851   ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n1>, n1, n1>)
1852   ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n1>, n3, n3>)
1853   ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n2>, n2, n2>)
1854   ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n2>, n3, n3>)
1855   ASIO_TEST_CASE4(test_require<ex_fq_fr<n3, n3>, n3, n3>)
1856 
1857   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, s, false>)
1858   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n1, true>)
1859   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n2, false>)
1860   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n3, true>)
1861   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, s, false>)
1862   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n1, true>)
1863   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n2, false>)
1864   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n3, true>)
1865   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, s, false>)
1866   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n1, true>)
1867   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n2, false>)
1868   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n3>, n3, true>)
1869   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, s, false>)
1870   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n1, true>)
1871   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n2, false>)
1872   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n3, true>)
1873   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, s, false>)
1874   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n1, true>)
1875   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n2, false>)
1876   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n3, true>)
1877   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, s, false>)
1878   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n1, true>)
1879   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n2, false>)
1880   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n3>, n3, true>)
1881   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, s, false>)
1882   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n1, true>)
1883   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n2, false>)
1884   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n1>, n3, true>)
1885   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, s, false>)
1886   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n1, true>)
1887   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n2, false>)
1888   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n2>, n3, true>)
1889   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, s, false>)
1890   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n1, true>)
1891   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n2, false>)
1892   ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n3, n3>, n3, true>)
1893 
1894   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n1, n1>)
1895   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n3, n1>)
1896   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n1, n1>)
1897   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n3, n1>)
1898   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n1, n1>)
1899   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n3>, n3, n3>)
1900   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n1, n1>)
1901   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n3, n2>)
1902   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n1, n2>)
1903   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n3, n2>)
1904   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n1, n2>)
1905   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n3>, n3, n3>)
1906   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n1, n1>)
1907   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n1>, n3, n3>)
1908   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n1, n3>)
1909   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n2>, n3, n3>)
1910   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n1, n3>)
1911   ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n3, n3>, n3, n3>)
1912 
1913   ASIO_TEST_CASE(test_vars)
1914 )
1915