From db2c00ea83e79c53449dae3d0a78e89b9570cf30 Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Thu, 23 Jan 2025 04:26:43 +0900 Subject: [PATCH] test: remove cxx files --- include/boost/preprocessor/tuple/elem.hpp | 2 +- test/arithmetic.c | 2 +- test/arithmetic.cpp | 314 ++++++++- test/arithmetic.cxx | 324 --------- test/array.c | 2 +- test/array.cpp | 447 +++++++++++- test/array.cxx | 457 ------------- test/checkempty.cpp | 51 +- test/checkempty.cxx | 61 -- test/comparison.c | 2 +- test/comparison.cpp | 126 +++- test/comparison.cxx | 136 ---- test/control.c | 2 +- test/control.cpp | 37 +- test/control.cxx | 47 -- test/debug.c | 2 +- test/debug.cpp | 11 +- test/debug.cxx | 21 - test/facilities.c | 2 +- test/facilities.cpp | 41 +- test/facilities.cxx | 51 -- test/isempty.c | 2 +- test/isempty.cpp | 91 ++- test/isempty.cxx | 101 --- test/isempty_variadic_standard_failure.c | 2 +- test/isempty_variadic_standard_failure.cpp | 25 +- test/isempty_variadic_standard_failure.cxx | 35 - test/isempty_variadic_standard_failure2.c | 2 +- test/isempty_variadic_standard_failure2.cpp | 25 +- test/isempty_variadic_standard_failure2.cxx | 35 - test/list.c | 2 +- test/list.cpp | 446 +++++++++++- test/list.cxx | 458 ------------- test/logical.c | 2 +- test/logical.cpp | 101 ++- test/logical.cxx | 111 --- test/punctuation.c | 2 +- test/punctuation.cpp | 44 +- test/punctuation.cxx | 50 -- test/selection.c | 2 +- test/selection.cpp | 36 +- test/selection.cxx | 46 -- test/seq.c | 2 +- test/seq.cpp | 646 +++++++++++++++++- test/seq.cxx | 656 ------------------ test/slot.c | 2 +- test/slot.cpp | 43 +- test/slot.cxx | 53 -- test/stringize.c | 2 +- test/stringize.cpp | 26 +- test/stringize.cxx | 36 - test/tuple.c | 2 +- test/tuple.cpp | 709 +++++++++++++++++++- test/tuple.cxx | 697 ------------------- test/tuple_elem_bug_test.cxx | 38 -- test/vaopt.cpp | 78 ++- test/vaopt.cxx | 88 --- test/variadic.c | 2 +- test/variadic.cpp | 153 ++++- test/variadic.cxx | 163 ----- 60 files changed, 3443 insertions(+), 3709 deletions(-) delete mode 100644 test/arithmetic.cxx delete mode 100644 test/array.cxx delete mode 100644 test/checkempty.cxx delete mode 100644 test/comparison.cxx delete mode 100644 test/control.cxx delete mode 100644 test/debug.cxx delete mode 100644 test/facilities.cxx delete mode 100644 test/isempty.cxx delete mode 100644 test/isempty_variadic_standard_failure.cxx delete mode 100644 test/isempty_variadic_standard_failure2.cxx delete mode 100644 test/list.cxx delete mode 100644 test/logical.cxx delete mode 100644 test/punctuation.cxx delete mode 100644 test/selection.cxx delete mode 100644 test/seq.cxx delete mode 100644 test/slot.cxx delete mode 100644 test/stringize.cxx delete mode 100644 test/tuple.cxx delete mode 100644 test/tuple_elem_bug_test.cxx delete mode 100644 test/vaopt.cxx delete mode 100644 test/variadic.cxx diff --git a/include/boost/preprocessor/tuple/elem.hpp b/include/boost/preprocessor/tuple/elem.hpp index 7f6b3d13..7eea189f 100644 --- a/include/boost/preprocessor/tuple/elem.hpp +++ b/include/boost/preprocessor/tuple/elem.hpp @@ -30,7 +30,7 @@ /* Use BOOST_PP_REM_CAT if it is a single element tuple ( which might be empty ) else use BOOST_PP_REM. This fixes a VC++ problem with an empty tuple and BOOST_PP_TUPLE_ELEM - functionality. See tuple_elem_bug_test.cxx. + functionality. See tuple.cpp. */ # define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) \ BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_EXPAND(BOOST_PP_TUPLE_IS_SINGLE_RETURN(BOOST_PP_REM_CAT,BOOST_PP_REM,tuple) tuple)) \ diff --git a/test/arithmetic.c b/test/arithmetic.c index f9bcc938..018d08d7 100644 --- a/test/arithmetic.c +++ b/test/arithmetic.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "arithmetic.cxx" +# include "arithmetic.cpp" diff --git a/test/arithmetic.cpp b/test/arithmetic.cpp index f9bcc938..caf509b1 100644 --- a/test/arithmetic.cpp +++ b/test/arithmetic.cpp @@ -9,4 +9,316 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "arithmetic.cxx" +# include +# include +# include "test.h" + +/* addition */ + +BEGIN BOOST_PP_ADD(2, 3) == 5 END + +BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), 2) == 6 END +BEGIN BOOST_PP_ADD(2, BOOST_PP_ADD(1, 4)) == 7 END +BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), BOOST_PP_ADD(2, 2)) == 8 END + +#if BOOST_PP_LIMIT_MAG == 256 && BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_ADD(1, 256) == 256 END +BEGIN BOOST_PP_ADD(256, 1) == 256 END +BEGIN BOOST_PP_ADD(2, 255) == 256 END +BEGIN BOOST_PP_ADD(255, 2) == 256 END +BEGIN BOOST_PP_ADD(1, 255) == 256 END +BEGIN BOOST_PP_ADD(255, 1) == 256 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_ADD(374, 129) == 503 END + +BEGIN BOOST_PP_ADD(1, 512) == 512 END +BEGIN BOOST_PP_ADD(512, 1) == 512 END +BEGIN BOOST_PP_ADD(2, 511) == 512 END +BEGIN BOOST_PP_ADD(511, 2) == 512 END + +BEGIN BOOST_PP_ADD(BOOST_PP_ADD(134, 187), 95) == 416 END +BEGIN BOOST_PP_ADD(BOOST_PP_ADD(83, 120), BOOST_PP_ADD(204, 51)) == 458 END +BEGIN BOOST_PP_ADD(149, BOOST_PP_ADD(102, 137)) == 388 END +BEGIN BOOST_PP_ADD(357, BOOST_PP_ADD(102, 137)) == 512 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_ADD(732, 188) == 920 END + +BEGIN BOOST_PP_ADD(1, 1024) == 1024 END +BEGIN BOOST_PP_ADD(1024, 1) == 1024 END +BEGIN BOOST_PP_ADD(2, 1023) == 1024 END +BEGIN BOOST_PP_ADD(1023, 2) == 1024 END + +BEGIN BOOST_PP_ADD(BOOST_PP_ADD(254, 525), 149) == 928 END +BEGIN BOOST_PP_ADD(BOOST_PP_ADD(241, 96), BOOST_PP_ADD(373, 175)) == 885 END +BEGIN BOOST_PP_ADD(792, BOOST_PP_ADD(356, 410)) == 1024 END + +#endif + +/* subtraction */ + +BEGIN BOOST_PP_SUB(11, 0) == 11 END +BEGIN BOOST_PP_SUB(12, 1) == 11 END +BEGIN BOOST_PP_SUB(3, 4) == 0 END + +BEGIN BOOST_PP_SUB(5, BOOST_PP_SUB(3, 2)) == 4 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(10, 5), 2) == 3 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(7, 3), BOOST_PP_SUB(10, 8)) == 2 END + +#if BOOST_PP_LIMIT_MAG == 256 && BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_SUB(1, 256) == 0 END +BEGIN BOOST_PP_SUB(256, 255) == 1 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_SUB(315, 412) == 0 END +BEGIN BOOST_PP_SUB(511, 510) == 1 END +BEGIN BOOST_PP_SUB(463, 317) == 146 END +BEGIN BOOST_PP_SUB(272, 195) == 77 END + +BEGIN BOOST_PP_SUB(1, 512) == 0 END +BEGIN BOOST_PP_SUB(512, 511) == 1 END + +BEGIN BOOST_PP_SUB(371, BOOST_PP_SUB(3, 2)) == 370 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(478, 211), 58) == 209 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(395, 277), BOOST_PP_SUB(10, 7)) == 115 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(412, 383), BOOST_PP_SUB(512, 506)) == 23 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_SUB(782, 849) == 0 END +BEGIN BOOST_PP_SUB(1023, 1022) == 1 END +BEGIN BOOST_PP_SUB(654, 538) == 116 END + +BEGIN BOOST_PP_SUB(1, 1024) == 0 END +BEGIN BOOST_PP_SUB(1024, 1023) == 1 END + +BEGIN BOOST_PP_SUB(829, BOOST_PP_SUB(3, 2)) == 828 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(616, 439), 92) == 85 END +BEGIN BOOST_PP_SUB(BOOST_PP_SUB(822, 547), BOOST_PP_SUB(1024, 1011)) == 262 END + +#endif + +/* multiplication */ + +BEGIN BOOST_PP_MUL(0, 1) == 0 END +BEGIN BOOST_PP_MUL(1, 0) == 0 END +BEGIN BOOST_PP_MUL(1, 1) == 1 END +BEGIN BOOST_PP_MUL(4, 3) == 12 END + +BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), 2) == 8 END +BEGIN BOOST_PP_MUL(2, BOOST_PP_MUL(2, 2)) == 8 END +BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), BOOST_PP_MUL(2, 2)) == 16 END + +#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_MUL(0, BOOST_PP_LIMIT_MAG) == 0 END +BEGIN BOOST_PP_MUL(1, BOOST_PP_LIMIT_MAG) == BOOST_PP_LIMIT_MAG END +BEGIN BOOST_PP_MUL(2, BOOST_PP_LIMIT_MAG) == BOOST_PP_LIMIT_MAG END +BEGIN BOOST_PP_MUL(BOOST_PP_LIMIT_MAG, 0) == 0 END +BEGIN BOOST_PP_MUL(BOOST_PP_LIMIT_MAG, 1) == BOOST_PP_LIMIT_MAG END +BEGIN BOOST_PP_MUL(BOOST_PP_LIMIT_MAG, 2) == BOOST_PP_LIMIT_MAG END + +#endif + +#if BOOST_PP_LIMIT_MAG == 256 && BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_MUL(17, 17) == 256 END +BEGIN BOOST_PP_MUL(0, 255) == 0 END +BEGIN BOOST_PP_MUL(1, 255) == 255 END +BEGIN BOOST_PP_MUL(2, 255) == 256 END +BEGIN BOOST_PP_MUL(255, 0) == 0 END +BEGIN BOOST_PP_MUL(255, 1) == 255 END +BEGIN BOOST_PP_MUL(255, 2) == 256 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_MUL(0, 351) == 0 END +BEGIN BOOST_PP_MUL(489, 0) == 0 END +BEGIN BOOST_PP_MUL(1, 272) == 272 END +BEGIN BOOST_PP_MUL(34, 11) == 374 END + +BEGIN BOOST_PP_MUL(BOOST_PP_MUL(7, 7), 7) == 343 END +BEGIN BOOST_PP_MUL(7, BOOST_PP_MUL(7, 7)) == 343 END +BEGIN BOOST_PP_MUL(BOOST_PP_MUL(5, 5), BOOST_PP_MUL(4, 4)) == 400 END + +BEGIN BOOST_PP_MUL(24, 24) == 512 END +BEGIN BOOST_PP_MUL(0, 511) == 0 END +BEGIN BOOST_PP_MUL(1, 511) == 511 END +BEGIN BOOST_PP_MUL(2, 511) == 512 END +BEGIN BOOST_PP_MUL(511, 0) == 0 END +BEGIN BOOST_PP_MUL(511, 1) == 511 END +BEGIN BOOST_PP_MUL(511, 2) == 512 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_MUL(0, 653) == 0 END +BEGIN BOOST_PP_MUL(926, 0) == 0 END +BEGIN BOOST_PP_MUL(1, 849) == 849 END +BEGIN BOOST_PP_MUL(42, 17) == 714 END + +BEGIN BOOST_PP_MUL(BOOST_PP_MUL(9, 9), 9) == 729 END +BEGIN BOOST_PP_MUL(9, BOOST_PP_MUL(9, 9)) == 729 END +BEGIN BOOST_PP_MUL(BOOST_PP_MUL(6, 6), BOOST_PP_MUL(5, 5)) == 900 END + +BEGIN BOOST_PP_MUL(35, 35) == 1024 END +BEGIN BOOST_PP_MUL(0, 1024) == 0 END +BEGIN BOOST_PP_MUL(1, 1024) == 1024 END +BEGIN BOOST_PP_MUL(2, 1024) == 1024 END +BEGIN BOOST_PP_MUL(1023, 0) == 0 END +BEGIN BOOST_PP_MUL(1023, 1) == 1023 END +BEGIN BOOST_PP_MUL(1023, 2) == 1024 END + +#endif + +/* division */ + +BEGIN BOOST_PP_DIV(2, 1) == 2 END +BEGIN BOOST_PP_DIV(0, 5) == 0 END +BEGIN BOOST_PP_DIV(7, 3) == 2 END + +BEGIN BOOST_PP_DIV(BOOST_PP_DIV(4, 2), 2) == 1 END +BEGIN BOOST_PP_DIV(10, BOOST_PP_DIV(10, 2)) == 2 END +BEGIN BOOST_PP_DIV(BOOST_PP_DIV(10, 2), BOOST_PP_DIV(4, 2)) == 2 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_DIV(468, 3) == 156 END +BEGIN BOOST_PP_DIV(0, 272) == 0 END +BEGIN BOOST_PP_DIV(335, 6) == 55 END + +BEGIN BOOST_PP_DIV(BOOST_PP_DIV(498, 2), 2) == 124 END +BEGIN BOOST_PP_DIV(375, BOOST_PP_DIV(279, 3)) == 4 END +BEGIN BOOST_PP_DIV(BOOST_PP_DIV(486, 2), BOOST_PP_DIV(17, 4)) == 60 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_DIV(849, 36) == 23 END +BEGIN BOOST_PP_DIV(0, 638) == 0 END +BEGIN BOOST_PP_DIV(467, 17) == 27 END + +BEGIN BOOST_PP_DIV(BOOST_PP_DIV(1004, 10), 5) == 20 END +BEGIN BOOST_PP_DIV(593, BOOST_PP_DIV(925, 25)) == 16 END +BEGIN BOOST_PP_DIV(BOOST_PP_DIV(746, 12), BOOST_PP_DIV(848, 424)) == 31 END + +#endif + +/* modulus */ + +BEGIN BOOST_PP_MOD(5, 5) == 0 END +BEGIN BOOST_PP_MOD(9, 5) == 4 END +BEGIN BOOST_PP_MOD(7, 4) == 3 END + +BEGIN BOOST_PP_MOD(BOOST_PP_MOD(5, 3), 3) == 2 END +BEGIN BOOST_PP_MOD(5, BOOST_PP_MOD(4, 3)) == 0 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_MOD(473, 473) == 0 END +BEGIN BOOST_PP_MOD(381, 126) == 3 END +BEGIN BOOST_PP_MOD(262, 27) == 19 END + +BEGIN BOOST_PP_MOD(BOOST_PP_MOD(368, 65), 7) == 1 END +BEGIN BOOST_PP_MOD(194, BOOST_PP_MOD(411, 205)) == 0 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_MOD(831, 831) == 0 END +BEGIN BOOST_PP_MOD(935, 73) == 59 END +BEGIN BOOST_PP_MOD(610, 84) == 22 END + +BEGIN BOOST_PP_MOD(BOOST_PP_MOD(732, 27), 2) == 1 END +BEGIN BOOST_PP_MOD(1023, BOOST_PP_MOD(544, 29)) == 11 END + +#endif + +/* increment */ + +BEGIN BOOST_PP_INC(0) == 1 END +BEGIN BOOST_PP_INC(22) == 23 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(0)) == 2 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(17)) == 19 END + +#if BOOST_PP_LIMIT_MAG == 256 + +BEGIN BOOST_PP_INC(256) == 256 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(255)) == 256 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_INC(349) == 350 END +BEGIN BOOST_PP_INC(426) == 427 END +BEGIN BOOST_PP_INC(256) == 257 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(505)) == 507 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(272)) == 274 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(255)) == 257 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_INC(593) == 594 END +BEGIN BOOST_PP_INC(821) == 822 END +BEGIN BOOST_PP_INC(512) == 513 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(924)) == 926 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(732)) == 734 END +BEGIN BOOST_PP_INC(BOOST_PP_INC(511)) == 513 END + +#endif + +/* decrement */ + +BEGIN BOOST_PP_DEC(256) == 255 END +BEGIN BOOST_PP_DEC(47) == 46 END +BEGIN BOOST_PP_DEC(0) == 0 END + +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(256)) == 254 END +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(85)) == 83 END +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1)) == 0 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_DEC(257) == 256 END +BEGIN BOOST_PP_DEC(473) == 472 END +BEGIN BOOST_PP_DEC(512) == 511 END + +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(257)) == 255 END +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(329)) == 327 END +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(512)) == 510 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_DEC(1025) == 1024 END +BEGIN BOOST_PP_DEC(770) == 769 END +BEGIN BOOST_PP_DEC(1024) == 1023 END + +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1025)) == 1023 END +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(959)) == 957 END +BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1024)) == 1022 END + +#endif diff --git a/test/arithmetic.cxx b/test/arithmetic.cxx deleted file mode 100644 index caf509b1..00000000 --- a/test/arithmetic.cxx +++ /dev/null @@ -1,324 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include "test.h" - -/* addition */ - -BEGIN BOOST_PP_ADD(2, 3) == 5 END - -BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), 2) == 6 END -BEGIN BOOST_PP_ADD(2, BOOST_PP_ADD(1, 4)) == 7 END -BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), BOOST_PP_ADD(2, 2)) == 8 END - -#if BOOST_PP_LIMIT_MAG == 256 && BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_ADD(1, 256) == 256 END -BEGIN BOOST_PP_ADD(256, 1) == 256 END -BEGIN BOOST_PP_ADD(2, 255) == 256 END -BEGIN BOOST_PP_ADD(255, 2) == 256 END -BEGIN BOOST_PP_ADD(1, 255) == 256 END -BEGIN BOOST_PP_ADD(255, 1) == 256 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_ADD(374, 129) == 503 END - -BEGIN BOOST_PP_ADD(1, 512) == 512 END -BEGIN BOOST_PP_ADD(512, 1) == 512 END -BEGIN BOOST_PP_ADD(2, 511) == 512 END -BEGIN BOOST_PP_ADD(511, 2) == 512 END - -BEGIN BOOST_PP_ADD(BOOST_PP_ADD(134, 187), 95) == 416 END -BEGIN BOOST_PP_ADD(BOOST_PP_ADD(83, 120), BOOST_PP_ADD(204, 51)) == 458 END -BEGIN BOOST_PP_ADD(149, BOOST_PP_ADD(102, 137)) == 388 END -BEGIN BOOST_PP_ADD(357, BOOST_PP_ADD(102, 137)) == 512 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_ADD(732, 188) == 920 END - -BEGIN BOOST_PP_ADD(1, 1024) == 1024 END -BEGIN BOOST_PP_ADD(1024, 1) == 1024 END -BEGIN BOOST_PP_ADD(2, 1023) == 1024 END -BEGIN BOOST_PP_ADD(1023, 2) == 1024 END - -BEGIN BOOST_PP_ADD(BOOST_PP_ADD(254, 525), 149) == 928 END -BEGIN BOOST_PP_ADD(BOOST_PP_ADD(241, 96), BOOST_PP_ADD(373, 175)) == 885 END -BEGIN BOOST_PP_ADD(792, BOOST_PP_ADD(356, 410)) == 1024 END - -#endif - -/* subtraction */ - -BEGIN BOOST_PP_SUB(11, 0) == 11 END -BEGIN BOOST_PP_SUB(12, 1) == 11 END -BEGIN BOOST_PP_SUB(3, 4) == 0 END - -BEGIN BOOST_PP_SUB(5, BOOST_PP_SUB(3, 2)) == 4 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(10, 5), 2) == 3 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(7, 3), BOOST_PP_SUB(10, 8)) == 2 END - -#if BOOST_PP_LIMIT_MAG == 256 && BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_SUB(1, 256) == 0 END -BEGIN BOOST_PP_SUB(256, 255) == 1 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_SUB(315, 412) == 0 END -BEGIN BOOST_PP_SUB(511, 510) == 1 END -BEGIN BOOST_PP_SUB(463, 317) == 146 END -BEGIN BOOST_PP_SUB(272, 195) == 77 END - -BEGIN BOOST_PP_SUB(1, 512) == 0 END -BEGIN BOOST_PP_SUB(512, 511) == 1 END - -BEGIN BOOST_PP_SUB(371, BOOST_PP_SUB(3, 2)) == 370 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(478, 211), 58) == 209 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(395, 277), BOOST_PP_SUB(10, 7)) == 115 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(412, 383), BOOST_PP_SUB(512, 506)) == 23 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_SUB(782, 849) == 0 END -BEGIN BOOST_PP_SUB(1023, 1022) == 1 END -BEGIN BOOST_PP_SUB(654, 538) == 116 END - -BEGIN BOOST_PP_SUB(1, 1024) == 0 END -BEGIN BOOST_PP_SUB(1024, 1023) == 1 END - -BEGIN BOOST_PP_SUB(829, BOOST_PP_SUB(3, 2)) == 828 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(616, 439), 92) == 85 END -BEGIN BOOST_PP_SUB(BOOST_PP_SUB(822, 547), BOOST_PP_SUB(1024, 1011)) == 262 END - -#endif - -/* multiplication */ - -BEGIN BOOST_PP_MUL(0, 1) == 0 END -BEGIN BOOST_PP_MUL(1, 0) == 0 END -BEGIN BOOST_PP_MUL(1, 1) == 1 END -BEGIN BOOST_PP_MUL(4, 3) == 12 END - -BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), 2) == 8 END -BEGIN BOOST_PP_MUL(2, BOOST_PP_MUL(2, 2)) == 8 END -BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), BOOST_PP_MUL(2, 2)) == 16 END - -#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_MUL(0, BOOST_PP_LIMIT_MAG) == 0 END -BEGIN BOOST_PP_MUL(1, BOOST_PP_LIMIT_MAG) == BOOST_PP_LIMIT_MAG END -BEGIN BOOST_PP_MUL(2, BOOST_PP_LIMIT_MAG) == BOOST_PP_LIMIT_MAG END -BEGIN BOOST_PP_MUL(BOOST_PP_LIMIT_MAG, 0) == 0 END -BEGIN BOOST_PP_MUL(BOOST_PP_LIMIT_MAG, 1) == BOOST_PP_LIMIT_MAG END -BEGIN BOOST_PP_MUL(BOOST_PP_LIMIT_MAG, 2) == BOOST_PP_LIMIT_MAG END - -#endif - -#if BOOST_PP_LIMIT_MAG == 256 && BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_MUL(17, 17) == 256 END -BEGIN BOOST_PP_MUL(0, 255) == 0 END -BEGIN BOOST_PP_MUL(1, 255) == 255 END -BEGIN BOOST_PP_MUL(2, 255) == 256 END -BEGIN BOOST_PP_MUL(255, 0) == 0 END -BEGIN BOOST_PP_MUL(255, 1) == 255 END -BEGIN BOOST_PP_MUL(255, 2) == 256 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_MUL(0, 351) == 0 END -BEGIN BOOST_PP_MUL(489, 0) == 0 END -BEGIN BOOST_PP_MUL(1, 272) == 272 END -BEGIN BOOST_PP_MUL(34, 11) == 374 END - -BEGIN BOOST_PP_MUL(BOOST_PP_MUL(7, 7), 7) == 343 END -BEGIN BOOST_PP_MUL(7, BOOST_PP_MUL(7, 7)) == 343 END -BEGIN BOOST_PP_MUL(BOOST_PP_MUL(5, 5), BOOST_PP_MUL(4, 4)) == 400 END - -BEGIN BOOST_PP_MUL(24, 24) == 512 END -BEGIN BOOST_PP_MUL(0, 511) == 0 END -BEGIN BOOST_PP_MUL(1, 511) == 511 END -BEGIN BOOST_PP_MUL(2, 511) == 512 END -BEGIN BOOST_PP_MUL(511, 0) == 0 END -BEGIN BOOST_PP_MUL(511, 1) == 511 END -BEGIN BOOST_PP_MUL(511, 2) == 512 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_MUL(0, 653) == 0 END -BEGIN BOOST_PP_MUL(926, 0) == 0 END -BEGIN BOOST_PP_MUL(1, 849) == 849 END -BEGIN BOOST_PP_MUL(42, 17) == 714 END - -BEGIN BOOST_PP_MUL(BOOST_PP_MUL(9, 9), 9) == 729 END -BEGIN BOOST_PP_MUL(9, BOOST_PP_MUL(9, 9)) == 729 END -BEGIN BOOST_PP_MUL(BOOST_PP_MUL(6, 6), BOOST_PP_MUL(5, 5)) == 900 END - -BEGIN BOOST_PP_MUL(35, 35) == 1024 END -BEGIN BOOST_PP_MUL(0, 1024) == 0 END -BEGIN BOOST_PP_MUL(1, 1024) == 1024 END -BEGIN BOOST_PP_MUL(2, 1024) == 1024 END -BEGIN BOOST_PP_MUL(1023, 0) == 0 END -BEGIN BOOST_PP_MUL(1023, 1) == 1023 END -BEGIN BOOST_PP_MUL(1023, 2) == 1024 END - -#endif - -/* division */ - -BEGIN BOOST_PP_DIV(2, 1) == 2 END -BEGIN BOOST_PP_DIV(0, 5) == 0 END -BEGIN BOOST_PP_DIV(7, 3) == 2 END - -BEGIN BOOST_PP_DIV(BOOST_PP_DIV(4, 2), 2) == 1 END -BEGIN BOOST_PP_DIV(10, BOOST_PP_DIV(10, 2)) == 2 END -BEGIN BOOST_PP_DIV(BOOST_PP_DIV(10, 2), BOOST_PP_DIV(4, 2)) == 2 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_DIV(468, 3) == 156 END -BEGIN BOOST_PP_DIV(0, 272) == 0 END -BEGIN BOOST_PP_DIV(335, 6) == 55 END - -BEGIN BOOST_PP_DIV(BOOST_PP_DIV(498, 2), 2) == 124 END -BEGIN BOOST_PP_DIV(375, BOOST_PP_DIV(279, 3)) == 4 END -BEGIN BOOST_PP_DIV(BOOST_PP_DIV(486, 2), BOOST_PP_DIV(17, 4)) == 60 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_DIV(849, 36) == 23 END -BEGIN BOOST_PP_DIV(0, 638) == 0 END -BEGIN BOOST_PP_DIV(467, 17) == 27 END - -BEGIN BOOST_PP_DIV(BOOST_PP_DIV(1004, 10), 5) == 20 END -BEGIN BOOST_PP_DIV(593, BOOST_PP_DIV(925, 25)) == 16 END -BEGIN BOOST_PP_DIV(BOOST_PP_DIV(746, 12), BOOST_PP_DIV(848, 424)) == 31 END - -#endif - -/* modulus */ - -BEGIN BOOST_PP_MOD(5, 5) == 0 END -BEGIN BOOST_PP_MOD(9, 5) == 4 END -BEGIN BOOST_PP_MOD(7, 4) == 3 END - -BEGIN BOOST_PP_MOD(BOOST_PP_MOD(5, 3), 3) == 2 END -BEGIN BOOST_PP_MOD(5, BOOST_PP_MOD(4, 3)) == 0 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_MOD(473, 473) == 0 END -BEGIN BOOST_PP_MOD(381, 126) == 3 END -BEGIN BOOST_PP_MOD(262, 27) == 19 END - -BEGIN BOOST_PP_MOD(BOOST_PP_MOD(368, 65), 7) == 1 END -BEGIN BOOST_PP_MOD(194, BOOST_PP_MOD(411, 205)) == 0 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_MOD(831, 831) == 0 END -BEGIN BOOST_PP_MOD(935, 73) == 59 END -BEGIN BOOST_PP_MOD(610, 84) == 22 END - -BEGIN BOOST_PP_MOD(BOOST_PP_MOD(732, 27), 2) == 1 END -BEGIN BOOST_PP_MOD(1023, BOOST_PP_MOD(544, 29)) == 11 END - -#endif - -/* increment */ - -BEGIN BOOST_PP_INC(0) == 1 END -BEGIN BOOST_PP_INC(22) == 23 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(0)) == 2 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(17)) == 19 END - -#if BOOST_PP_LIMIT_MAG == 256 - -BEGIN BOOST_PP_INC(256) == 256 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(255)) == 256 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_INC(349) == 350 END -BEGIN BOOST_PP_INC(426) == 427 END -BEGIN BOOST_PP_INC(256) == 257 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(505)) == 507 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(272)) == 274 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(255)) == 257 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_INC(593) == 594 END -BEGIN BOOST_PP_INC(821) == 822 END -BEGIN BOOST_PP_INC(512) == 513 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(924)) == 926 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(732)) == 734 END -BEGIN BOOST_PP_INC(BOOST_PP_INC(511)) == 513 END - -#endif - -/* decrement */ - -BEGIN BOOST_PP_DEC(256) == 255 END -BEGIN BOOST_PP_DEC(47) == 46 END -BEGIN BOOST_PP_DEC(0) == 0 END - -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(256)) == 254 END -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(85)) == 83 END -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1)) == 0 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_DEC(257) == 256 END -BEGIN BOOST_PP_DEC(473) == 472 END -BEGIN BOOST_PP_DEC(512) == 511 END - -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(257)) == 255 END -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(329)) == 327 END -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(512)) == 510 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_DEC(1025) == 1024 END -BEGIN BOOST_PP_DEC(770) == 769 END -BEGIN BOOST_PP_DEC(1024) == 1023 END - -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1025)) == 1023 END -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(959)) == 957 END -BEGIN BOOST_PP_DEC(BOOST_PP_DEC(1024)) == 1022 END - -#endif diff --git a/test/array.c b/test/array.c index 725a6f18..c0430a59 100644 --- a/test/array.c +++ b/test/array.c @@ -11,4 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "array.cxx" +# include "array.cpp" diff --git a/test/array.cpp b/test/array.cpp index 725a6f18..c7e3be94 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -7,8 +7,451 @@ # * * # ************************************************************************** */ # -# /* Revised by Edward Diener (2011) */ +# /* Revised by Edward Diener (2011,2013) */ # # /* See http://www.boost.org for most recent version. */ # -# include "array.cxx" +# include +# include +# include "test.h" +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# define ARRAY_EMPTY (0, ()) +# define ARRAY_ONE (1, ()) +# define ARRAY (3, (0, 1, 2)) +# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) +# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) + +#if BOOST_PP_LIMIT_TUPLE > 64 + +# define ARRAY_LARGE_128 \ + ( 104, \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103 ) \ + ) + +# define ARRAY_VERY_LARGE_128 \ + ( 128, \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 ) \ + ) + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +# define ARRAY_LARGE_256 \ + ( 142, \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141 ) \ + ) + +# define ARRAY_VERY_LARGE_256 \ + ( 256, \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ) \ + ) + +# define ARRAY_VERY_LARGE_255 \ + ( 255, \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ) \ + ) + +#endif + +// element access + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, ARRAY_ONE)) == 1 END +BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END +BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END +BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END +BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END +BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END +BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END + +// size + +BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END +BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END +BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END +BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END +BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END +BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END +BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_EMPTY) == 0 END +BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_ONE) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_ELEM(73, ARRAY_LARGE_128) == 73 END +BEGIN BOOST_PP_ARRAY_ELEM(89, ARRAY_LARGE_128) == 89 END +BEGIN BOOST_PP_ARRAY_ELEM(101, ARRAY_LARGE_128) == 101 END +BEGIN BOOST_PP_ARRAY_ELEM(95, ARRAY_VERY_LARGE_128) == 95 END +BEGIN BOOST_PP_ARRAY_ELEM(110, ARRAY_VERY_LARGE_128) == 110 END +BEGIN BOOST_PP_ARRAY_ELEM(126, ARRAY_VERY_LARGE_128) == 126 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_ELEM(83, ARRAY_LARGE_256) == 83 END +BEGIN BOOST_PP_ARRAY_ELEM(131, ARRAY_LARGE_256) == 131 END +BEGIN BOOST_PP_ARRAY_ELEM(140, ARRAY_LARGE_256) == 140 END +BEGIN BOOST_PP_ARRAY_ELEM(174, ARRAY_VERY_LARGE_256) == 174 END +BEGIN BOOST_PP_ARRAY_ELEM(226, ARRAY_VERY_LARGE_256) == 226 END +BEGIN BOOST_PP_ARRAY_ELEM(253, ARRAY_VERY_LARGE_256) == 253 END + +#endif + +// enum + +BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END +BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END +BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END +BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END +BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END +BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END + +# if BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_ONE)) == 0 END + +# else + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_ONE)) == 1 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE_128)) == 104 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE_128)) == 128 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE_256)) == 142 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE_256)) == 256 END + +#endif + +// to_list + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_ARRAY_TO_LIST(ARRAY_EMPTY)) == 0 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_ARRAY_TO_LIST(ARRAY_ONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_LARGE_128), 88) == 88 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE_128), 113) == 113 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_LARGE_256), 137) == 137 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE_256), 235) == 235 END + +#endif + +// to_seq + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY_ONE))) == 1 END +BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END +BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END +BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END +BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_SEQ_ELEM(97,BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE_128)) == 97 END +BEGIN BOOST_PP_SEQ_ELEM(123,BOOST_PP_ARRAY_TO_SEQ(ARRAY_VERY_LARGE_128)) == 123 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_SEQ_ELEM(53,BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE_256)) == 53 END +BEGIN BOOST_PP_SEQ_ELEM(181,BOOST_PP_ARRAY_TO_SEQ(ARRAY_VERY_LARGE_256)) == 181 END + +#endif + +// to_tuple + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(0, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_ONE))) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END +BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END +BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_ELEM(97,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE_128)) == 97 END +BEGIN BOOST_PP_TUPLE_ELEM(123,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_VERY_LARGE_128)) == 123 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_ELEM(53,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE_256)) == 53 END +BEGIN BOOST_PP_TUPLE_ELEM(181,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_VERY_LARGE_256)) == 181 END + +#endif + +// insert + +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY_ONE,0,63)) == 63 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY,2,40)) == 0 END +BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 40 END +BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 4 END + +BEGIN BOOST_PP_ARRAY_ELEM(8, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 8 END +BEGIN BOOST_PP_ARRAY_ELEM(22, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 1000 END +BEGIN BOOST_PP_ARRAY_ELEM(26, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 25 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 34 END + +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY_EMPTY,0,25)) == 25 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_EMPTY,0,1000)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_ELEM(69, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,76,1000)) == 69 END +BEGIN BOOST_PP_ARRAY_ELEM(101, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,101,1000)) == 1000 END +BEGIN BOOST_PP_ARRAY_ELEM(98, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,96,1000)) == 97 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,84,1000)) == 105 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_ELEM(73, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,134,1000)) == 73 END +BEGIN BOOST_PP_ARRAY_ELEM(141, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,141,1000)) == 1000 END +BEGIN BOOST_PP_ARRAY_ELEM(133, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,39,1000)) == 132 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,121,1000)) == 143 END +BEGIN BOOST_PP_ARRAY_ELEM(227,BOOST_PP_ARRAY_INSERT(ARRAY_VERY_LARGE_255,212,1000)) == 226 END +BEGIN BOOST_PP_ARRAY_ELEM(212,BOOST_PP_ARRAY_INSERT(ARRAY_VERY_LARGE_255,212,1000)) == 1000 END + +#endif + +// pop_back + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY)) == 2 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE)) == 32 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE)) == 63 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE_128)) == 103 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE_128)) == 127 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE_256)) == 141 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE_256)) == 255 END + +#endif + +// pop_front + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY)) == 2 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE)) == 32 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE)) == 63 END + +BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_POP_FRONT(ARRAY)) == 2 END +BEGIN BOOST_PP_ARRAY_ELEM(31, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE)) == 32 END +BEGIN BOOST_PP_ARRAY_ELEM(55, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE)) == 56 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_128)) == 103 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_128)) == 127 END +BEGIN BOOST_PP_ARRAY_ELEM(84, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_128)) == 85 END +BEGIN BOOST_PP_ARRAY_ELEM(117, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_128)) == 118 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_256)) == 141 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_256)) == 255 END +BEGIN BOOST_PP_ARRAY_ELEM(129, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_256)) == 130 END +BEGIN BOOST_PP_ARRAY_ELEM(248, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_256)) == 249 END + +#endif + +// push_back + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 3)) == 4 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE, 33)) == 34 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_EMPTY, 10)) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_ONE, 44)) == 2 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 3)) == 0 END +BEGIN BOOST_PP_ARRAY_ELEM(33, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE, 33)) == 33 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_EMPTY, 136)) == 136 END +BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_ONE, 245)) == 245 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_128, 66)) == 105 END +BEGIN BOOST_PP_ARRAY_ELEM(104, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_128, 101)) == 101 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_256, 192)) == 143 END +BEGIN BOOST_PP_ARRAY_ELEM(142, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_256, 77)) == 77 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_VERY_LARGE_255, 255)) == 256 END + +#endif + +// push_front + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY, 555)) == 4 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE, 666)) == 34 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_EMPTY, 10)) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_ONE, 131)) == 2 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY, 555)) == 555 END +BEGIN BOOST_PP_ARRAY_ELEM(33, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE, 33)) == 32 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_EMPTY, 136)) == 136 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_ONE, 56)) == 56 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_128, 666)) == 105 END +BEGIN BOOST_PP_ARRAY_ELEM(103, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_128, 29)) == 102 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_256, 333)) == 143 END +BEGIN BOOST_PP_ARRAY_ELEM(136, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_256, 47)) == 135 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_VERY_LARGE_255, 4)) == 256 END + +#endif + +// remove + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_ONE, 0)) == 0 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY, 1)) == 2 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE, 17)) == 32 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE, 27)) == 63 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REMOVE(ARRAY, 2)) == 0 END +BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE, 25)) == 30 END +BEGIN BOOST_PP_ARRAY_ELEM(62, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE, 48)) == 63 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_128, 100)) == 103 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_128, 123)) == 127 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_128, 0)) == 127 END +BEGIN BOOST_PP_ARRAY_ELEM(102, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_128, 97)) == 103 END +BEGIN BOOST_PP_ARRAY_ELEM(76, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_128, 0)) == 77 END +BEGIN BOOST_PP_ARRAY_ELEM(119, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_128, 115)) == 120 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_256, 133)) == 141 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_256, 0)) == 141 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_256, 241)) == 255 END +BEGIN BOOST_PP_ARRAY_ELEM(140, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_256, 138)) == 141 END +BEGIN BOOST_PP_ARRAY_ELEM(181, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_256, 166)) == 182 END +BEGIN BOOST_PP_ARRAY_ELEM(236, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_256, 0)) == 237 END + +#endif + +// replace + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_ONE, 0, 3)) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 27, 1000)) == 64 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY_ONE, 0, 68)) == 68 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY, 1, 44)) == 0 END +BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE, 29, 999)) == 999 END +BEGIN BOOST_PP_ARRAY_ELEM(38, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 37, 1)) == 38 END +BEGIN BOOST_PP_ARRAY_ELEM(28, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 28, 1)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 93, 1000)) == 128 END +BEGIN BOOST_PP_ARRAY_ELEM(89, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE_128, 89, 111)) == 111 END +BEGIN BOOST_PP_ARRAY_ELEM(73, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 66, 1)) == 73 END +BEGIN BOOST_PP_ARRAY_ELEM(122, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 122, 1)) == 1 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 0, 128)) == 128 END +BEGIN BOOST_PP_ARRAY_ELEM(95, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 0, 128)) == 95 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 217, 1000)) == 256 END +BEGIN BOOST_PP_ARRAY_ELEM(136, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE_256, 136, 999)) == 999 END +BEGIN BOOST_PP_ARRAY_ELEM(192, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 185, 1)) == 192 END +BEGIN BOOST_PP_ARRAY_ELEM(237, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 237, 1)) == 1 END +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 0, 256)) == 256 END +BEGIN BOOST_PP_ARRAY_ELEM(167, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 0, 256)) == 167 END + +#endif + +// reverse + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE)) == 64 END + +#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY_ONE))) == 1 END + +#else + +// BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY_ONE))) == 1 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, ARRAY_ONE)) == 1 END + +#endif + +BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY)) == 2 END +BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE)) == 3 END +BEGIN BOOST_PP_ARRAY_ELEM(38, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE)) == 25 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_EMPTY)) == 0 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_ONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_ELEM(83, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE_128)) == 20 END +BEGIN BOOST_PP_ARRAY_ELEM(119, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE_128)) == 8 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_ELEM(56, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE_256)) == 85 END +BEGIN BOOST_PP_ARRAY_ELEM(212, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE_256)) == 43 END + +#endif diff --git a/test/array.cxx b/test/array.cxx deleted file mode 100644 index c7e3be94..00000000 --- a/test/array.cxx +++ /dev/null @@ -1,457 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* Revised by Edward Diener (2011,2013) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include "test.h" -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# define ARRAY_EMPTY (0, ()) -# define ARRAY_ONE (1, ()) -# define ARRAY (3, (0, 1, 2)) -# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) -# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) - -#if BOOST_PP_LIMIT_TUPLE > 64 - -# define ARRAY_LARGE_128 \ - ( 104, \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103 ) \ - ) - -# define ARRAY_VERY_LARGE_128 \ - ( 128, \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 ) \ - ) - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -# define ARRAY_LARGE_256 \ - ( 142, \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141 ) \ - ) - -# define ARRAY_VERY_LARGE_256 \ - ( 256, \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ) \ - ) - -# define ARRAY_VERY_LARGE_255 \ - ( 255, \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ) \ - ) - -#endif - -// element access - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, ARRAY_ONE)) == 1 END -BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END -BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END -BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END -BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END -BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END -BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END - -// size - -BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END -BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END -BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END -BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END -BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END -BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END -BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_EMPTY) == 0 END -BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_ONE) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_ELEM(73, ARRAY_LARGE_128) == 73 END -BEGIN BOOST_PP_ARRAY_ELEM(89, ARRAY_LARGE_128) == 89 END -BEGIN BOOST_PP_ARRAY_ELEM(101, ARRAY_LARGE_128) == 101 END -BEGIN BOOST_PP_ARRAY_ELEM(95, ARRAY_VERY_LARGE_128) == 95 END -BEGIN BOOST_PP_ARRAY_ELEM(110, ARRAY_VERY_LARGE_128) == 110 END -BEGIN BOOST_PP_ARRAY_ELEM(126, ARRAY_VERY_LARGE_128) == 126 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_ELEM(83, ARRAY_LARGE_256) == 83 END -BEGIN BOOST_PP_ARRAY_ELEM(131, ARRAY_LARGE_256) == 131 END -BEGIN BOOST_PP_ARRAY_ELEM(140, ARRAY_LARGE_256) == 140 END -BEGIN BOOST_PP_ARRAY_ELEM(174, ARRAY_VERY_LARGE_256) == 174 END -BEGIN BOOST_PP_ARRAY_ELEM(226, ARRAY_VERY_LARGE_256) == 226 END -BEGIN BOOST_PP_ARRAY_ELEM(253, ARRAY_VERY_LARGE_256) == 253 END - -#endif - -// enum - -BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END -BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END -BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END -BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END -BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END -BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END - -# if BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_ONE)) == 0 END - -# else - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_ONE)) == 1 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE_128)) == 104 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE_128)) == 128 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE_256)) == 142 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE_256)) == 256 END - -#endif - -// to_list - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_ARRAY_TO_LIST(ARRAY_EMPTY)) == 0 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_ARRAY_TO_LIST(ARRAY_ONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_LARGE_128), 88) == 88 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE_128), 113) == 113 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_LARGE_256), 137) == 137 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE_256), 235) == 235 END - -#endif - -// to_seq - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY_ONE))) == 1 END -BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END -BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END -BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END -BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_SEQ_ELEM(97,BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE_128)) == 97 END -BEGIN BOOST_PP_SEQ_ELEM(123,BOOST_PP_ARRAY_TO_SEQ(ARRAY_VERY_LARGE_128)) == 123 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_SEQ_ELEM(53,BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE_256)) == 53 END -BEGIN BOOST_PP_SEQ_ELEM(181,BOOST_PP_ARRAY_TO_SEQ(ARRAY_VERY_LARGE_256)) == 181 END - -#endif - -// to_tuple - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(0, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_ONE))) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END -BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END -BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_ELEM(97,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE_128)) == 97 END -BEGIN BOOST_PP_TUPLE_ELEM(123,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_VERY_LARGE_128)) == 123 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_ELEM(53,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE_256)) == 53 END -BEGIN BOOST_PP_TUPLE_ELEM(181,BOOST_PP_ARRAY_TO_TUPLE(ARRAY_VERY_LARGE_256)) == 181 END - -#endif - -// insert - -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY_ONE,0,63)) == 63 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY,2,40)) == 0 END -BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 40 END -BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY,1,40)) == 4 END - -BEGIN BOOST_PP_ARRAY_ELEM(8, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 8 END -BEGIN BOOST_PP_ARRAY_ELEM(22, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 1000 END -BEGIN BOOST_PP_ARRAY_ELEM(26, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 25 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE,22,1000)) == 34 END - -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_INSERT(ARRAY_EMPTY,0,25)) == 25 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_EMPTY,0,1000)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_ELEM(69, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,76,1000)) == 69 END -BEGIN BOOST_PP_ARRAY_ELEM(101, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,101,1000)) == 1000 END -BEGIN BOOST_PP_ARRAY_ELEM(98, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,96,1000)) == 97 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_128,84,1000)) == 105 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_ELEM(73, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,134,1000)) == 73 END -BEGIN BOOST_PP_ARRAY_ELEM(141, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,141,1000)) == 1000 END -BEGIN BOOST_PP_ARRAY_ELEM(133, BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,39,1000)) == 132 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_INSERT(ARRAY_LARGE_256,121,1000)) == 143 END -BEGIN BOOST_PP_ARRAY_ELEM(227,BOOST_PP_ARRAY_INSERT(ARRAY_VERY_LARGE_255,212,1000)) == 226 END -BEGIN BOOST_PP_ARRAY_ELEM(212,BOOST_PP_ARRAY_INSERT(ARRAY_VERY_LARGE_255,212,1000)) == 1000 END - -#endif - -// pop_back - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY)) == 2 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE)) == 32 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE)) == 63 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE_128)) == 103 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE_128)) == 127 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_LARGE_256)) == 141 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_BACK(ARRAY_VERY_LARGE_256)) == 255 END - -#endif - -// pop_front - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY)) == 2 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE)) == 32 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE)) == 63 END - -BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_POP_FRONT(ARRAY)) == 2 END -BEGIN BOOST_PP_ARRAY_ELEM(31, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE)) == 32 END -BEGIN BOOST_PP_ARRAY_ELEM(55, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE)) == 56 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_128)) == 103 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_128)) == 127 END -BEGIN BOOST_PP_ARRAY_ELEM(84, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_128)) == 85 END -BEGIN BOOST_PP_ARRAY_ELEM(117, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_128)) == 118 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_256)) == 141 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_256)) == 255 END -BEGIN BOOST_PP_ARRAY_ELEM(129, BOOST_PP_ARRAY_POP_FRONT(ARRAY_LARGE_256)) == 130 END -BEGIN BOOST_PP_ARRAY_ELEM(248, BOOST_PP_ARRAY_POP_FRONT(ARRAY_VERY_LARGE_256)) == 249 END - -#endif - -// push_back - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 3)) == 4 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE, 33)) == 34 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_EMPTY, 10)) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_ONE, 44)) == 2 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 3)) == 0 END -BEGIN BOOST_PP_ARRAY_ELEM(33, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE, 33)) == 33 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_EMPTY, 136)) == 136 END -BEGIN BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_ONE, 245)) == 245 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_128, 66)) == 105 END -BEGIN BOOST_PP_ARRAY_ELEM(104, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_128, 101)) == 101 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_256, 192)) == 143 END -BEGIN BOOST_PP_ARRAY_ELEM(142, BOOST_PP_ARRAY_PUSH_BACK(ARRAY_LARGE_256, 77)) == 77 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_BACK(ARRAY_VERY_LARGE_255, 255)) == 256 END - -#endif - -// push_front - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY, 555)) == 4 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE, 666)) == 34 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_EMPTY, 10)) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_ONE, 131)) == 2 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY, 555)) == 555 END -BEGIN BOOST_PP_ARRAY_ELEM(33, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE, 33)) == 32 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_EMPTY, 136)) == 136 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_ONE, 56)) == 56 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_128, 666)) == 105 END -BEGIN BOOST_PP_ARRAY_ELEM(103, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_128, 29)) == 102 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_256, 333)) == 143 END -BEGIN BOOST_PP_ARRAY_ELEM(136, BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_LARGE_256, 47)) == 135 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_PUSH_FRONT(ARRAY_VERY_LARGE_255, 4)) == 256 END - -#endif - -// remove - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_ONE, 0)) == 0 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY, 1)) == 2 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE, 17)) == 32 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE, 27)) == 63 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REMOVE(ARRAY, 2)) == 0 END -BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE, 25)) == 30 END -BEGIN BOOST_PP_ARRAY_ELEM(62, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE, 48)) == 63 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_128, 100)) == 103 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_128, 123)) == 127 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_128, 0)) == 127 END -BEGIN BOOST_PP_ARRAY_ELEM(102, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_128, 97)) == 103 END -BEGIN BOOST_PP_ARRAY_ELEM(76, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_128, 0)) == 77 END -BEGIN BOOST_PP_ARRAY_ELEM(119, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_128, 115)) == 120 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_256, 133)) == 141 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_256, 0)) == 141 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_256, 241)) == 255 END -BEGIN BOOST_PP_ARRAY_ELEM(140, BOOST_PP_ARRAY_REMOVE(ARRAY_LARGE_256, 138)) == 141 END -BEGIN BOOST_PP_ARRAY_ELEM(181, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_256, 166)) == 182 END -BEGIN BOOST_PP_ARRAY_ELEM(236, BOOST_PP_ARRAY_REMOVE(ARRAY_VERY_LARGE_256, 0)) == 237 END - -#endif - -// replace - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_ONE, 0, 3)) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 27, 1000)) == 64 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY_ONE, 0, 68)) == 68 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY, 1, 44)) == 0 END -BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE, 29, 999)) == 999 END -BEGIN BOOST_PP_ARRAY_ELEM(38, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 37, 1)) == 38 END -BEGIN BOOST_PP_ARRAY_ELEM(28, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE, 28, 1)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 93, 1000)) == 128 END -BEGIN BOOST_PP_ARRAY_ELEM(89, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE_128, 89, 111)) == 111 END -BEGIN BOOST_PP_ARRAY_ELEM(73, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 66, 1)) == 73 END -BEGIN BOOST_PP_ARRAY_ELEM(122, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 122, 1)) == 1 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 0, 128)) == 128 END -BEGIN BOOST_PP_ARRAY_ELEM(95, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_128, 0, 128)) == 95 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 217, 1000)) == 256 END -BEGIN BOOST_PP_ARRAY_ELEM(136, BOOST_PP_ARRAY_REPLACE(ARRAY_LARGE_256, 136, 999)) == 999 END -BEGIN BOOST_PP_ARRAY_ELEM(192, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 185, 1)) == 192 END -BEGIN BOOST_PP_ARRAY_ELEM(237, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 237, 1)) == 1 END -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 0, 256)) == 256 END -BEGIN BOOST_PP_ARRAY_ELEM(167, BOOST_PP_ARRAY_REPLACE(ARRAY_VERY_LARGE_256, 0, 256)) == 167 END - -#endif - -// reverse - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE)) == 64 END - -#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY_ONE))) == 1 END - -#else - -// BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY_ONE))) == 1 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, ARRAY_ONE)) == 1 END - -#endif - -BEGIN BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ARRAY_REVERSE(ARRAY)) == 2 END -BEGIN BOOST_PP_ARRAY_ELEM(29, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE)) == 3 END -BEGIN BOOST_PP_ARRAY_ELEM(38, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE)) == 25 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_EMPTY)) == 0 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_REVERSE(ARRAY_ONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_ELEM(83, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE_128)) == 20 END -BEGIN BOOST_PP_ARRAY_ELEM(119, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE_128)) == 8 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_ELEM(56, BOOST_PP_ARRAY_REVERSE(ARRAY_LARGE_256)) == 85 END -BEGIN BOOST_PP_ARRAY_ELEM(212, BOOST_PP_ARRAY_REVERSE(ARRAY_VERY_LARGE_256)) == 43 END - -#endif diff --git a/test/checkempty.cpp b/test/checkempty.cpp index 62a55fd5..c6421118 100644 --- a/test/checkempty.cpp +++ b/test/checkempty.cpp @@ -9,4 +9,53 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "checkempty.cxx" +# include "test.h" +# include + +# if BOOST_PP_VARIADIC_HAS_OPT() + +# include + +#define DATA +#define OBJECT OBJECT2 +#define OBJECT2 +#define FUNC(x) FUNC2(x) +#define FUNC2(x) +#define FUNC_GEN() () +#define FUNC_GEN2(x) () +#define FUNC_GEN3() (&) +#define FUNC_GEN4(x) (y) +#define FUNC_GEN5() (y,z) +#define FUNC_GEN6() anything +#define FUNC_GEN7(x) anything +#define FUNC_GEN8(x,y) (1,2,3) +#define FUNC_GEN9(x,y,z) anything +#define FUNC_GEN10(x) (y) data +#define NAME &name +#define ATUPLE (atuple) +#define ATUPLE_PLUS (atuple) data + +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN2) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN3) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN4) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN5) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN8) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN9) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN10) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_CHECK_EMPTY(DATA BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_CHECK_EMPTY(x BOOST_PP_EMPTY()) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(OBJECT BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC(z) BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN6) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN7) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(NAME) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(ATUPLE) == 0 END +BEGIN BOOST_PP_CHECK_EMPTY(ATUPLE_PLUS) == 0 END + +# else + +BEGIN 1 == 1 END + +# endif diff --git a/test/checkempty.cxx b/test/checkempty.cxx deleted file mode 100644 index c6421118..00000000 --- a/test/checkempty.cxx +++ /dev/null @@ -1,61 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2019. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include "test.h" -# include - -# if BOOST_PP_VARIADIC_HAS_OPT() - -# include - -#define DATA -#define OBJECT OBJECT2 -#define OBJECT2 -#define FUNC(x) FUNC2(x) -#define FUNC2(x) -#define FUNC_GEN() () -#define FUNC_GEN2(x) () -#define FUNC_GEN3() (&) -#define FUNC_GEN4(x) (y) -#define FUNC_GEN5() (y,z) -#define FUNC_GEN6() anything -#define FUNC_GEN7(x) anything -#define FUNC_GEN8(x,y) (1,2,3) -#define FUNC_GEN9(x,y,z) anything -#define FUNC_GEN10(x) (y) data -#define NAME &name -#define ATUPLE (atuple) -#define ATUPLE_PLUS (atuple) data - -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN2) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN3) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN4) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN5) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN8) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN9) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN10) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_CHECK_EMPTY(DATA BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_CHECK_EMPTY(x BOOST_PP_EMPTY()) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(OBJECT BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC(z) BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN6) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(FUNC_GEN7) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(NAME) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(ATUPLE) == 0 END -BEGIN BOOST_PP_CHECK_EMPTY(ATUPLE_PLUS) == 0 END - -# else - -BEGIN 1 == 1 END - -# endif diff --git a/test/comparison.c b/test/comparison.c index 170b6361..148ec322 100644 --- a/test/comparison.c +++ b/test/comparison.c @@ -9,5 +9,5 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "comparison.cxx" +# include "comparison.cpp" diff --git a/test/comparison.cpp b/test/comparison.cpp index c812b2dd..65ae94d3 100644 --- a/test/comparison.cpp +++ b/test/comparison.cpp @@ -9,4 +9,128 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "comparison.cxx" +# include +# include +# include "test.h" + +/* equality */ + +BEGIN BOOST_PP_EQUAL(2, 0) == 0 END +BEGIN BOOST_PP_EQUAL(2, 2) == 1 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_EQUAL(135, 487) == 0 END +BEGIN BOOST_PP_EQUAL(367, 367) == 1 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_EQUAL(749, 832) == 0 END +BEGIN BOOST_PP_EQUAL(955, 955) == 1 END + +#endif + +/* inequality */ + +BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END +BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_NOT_EQUAL(375, 126) == 1 END +BEGIN BOOST_PP_NOT_EQUAL(439, 439) == 0 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_NOT_EQUAL(684, 674) == 1 END +BEGIN BOOST_PP_NOT_EQUAL(1011, 1011) == 0 END + +#endif + +/* less */ + +BEGIN BOOST_PP_LESS(2, 1) == 0 END +BEGIN BOOST_PP_LESS(1, 2) == 1 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LESS(265, 241) == 0 END +BEGIN BOOST_PP_LESS(510, 511) == 1 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LESS(753, 629) == 0 END +BEGIN BOOST_PP_LESS(1022, 1024) == 1 END + +#endif + +/* less_equal */ + +BEGIN BOOST_PP_LESS_EQUAL(2, 1) == 0 END +BEGIN BOOST_PP_LESS_EQUAL(1, 2) == 1 END +BEGIN BOOST_PP_LESS_EQUAL(2, 2) == 1 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LESS_EQUAL(327, 211) == 0 END +BEGIN BOOST_PP_LESS_EQUAL(489, 502) == 1 END +BEGIN BOOST_PP_LESS_EQUAL(327, 327) == 1 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LESS_EQUAL(951, 632) == 0 END +BEGIN BOOST_PP_LESS_EQUAL(875, 1002) == 1 END +BEGIN BOOST_PP_LESS_EQUAL(727, 727) == 1 END + +#endif + +/* greater */ + +BEGIN BOOST_PP_GREATER(2, 1) == 1 END +BEGIN BOOST_PP_GREATER(1, 2) == 0 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_GREATER(348, 259) == 1 END +BEGIN BOOST_PP_GREATER(411, 411) == 0 END +BEGIN BOOST_PP_GREATER(327, 373) == 0 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_GREATER(846, 523) == 1 END +BEGIN BOOST_PP_GREATER(574, 574) == 0 END +BEGIN BOOST_PP_GREATER(749, 811) == 0 END + +#endif + +/* greater_equal */ + +BEGIN BOOST_PP_GREATER_EQUAL(2, 1) == 1 END +BEGIN BOOST_PP_GREATER_EQUAL(1, 2) == 0 END +BEGIN BOOST_PP_GREATER_EQUAL(2, 2) == 1 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_GREATER_EQUAL(341, 27) == 1 END +BEGIN BOOST_PP_GREATER_EQUAL(289, 470) == 0 END +BEGIN BOOST_PP_GREATER_EQUAL(296, 296) == 1 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_GREATER_EQUAL(946, 852) == 1 END +BEGIN BOOST_PP_GREATER_EQUAL(685, 717) == 0 END +BEGIN BOOST_PP_GREATER_EQUAL(1001, 1001) == 1 END + +#endif diff --git a/test/comparison.cxx b/test/comparison.cxx deleted file mode 100644 index 65ae94d3..00000000 --- a/test/comparison.cxx +++ /dev/null @@ -1,136 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include "test.h" - -/* equality */ - -BEGIN BOOST_PP_EQUAL(2, 0) == 0 END -BEGIN BOOST_PP_EQUAL(2, 2) == 1 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_EQUAL(135, 487) == 0 END -BEGIN BOOST_PP_EQUAL(367, 367) == 1 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_EQUAL(749, 832) == 0 END -BEGIN BOOST_PP_EQUAL(955, 955) == 1 END - -#endif - -/* inequality */ - -BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END -BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_NOT_EQUAL(375, 126) == 1 END -BEGIN BOOST_PP_NOT_EQUAL(439, 439) == 0 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_NOT_EQUAL(684, 674) == 1 END -BEGIN BOOST_PP_NOT_EQUAL(1011, 1011) == 0 END - -#endif - -/* less */ - -BEGIN BOOST_PP_LESS(2, 1) == 0 END -BEGIN BOOST_PP_LESS(1, 2) == 1 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LESS(265, 241) == 0 END -BEGIN BOOST_PP_LESS(510, 511) == 1 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LESS(753, 629) == 0 END -BEGIN BOOST_PP_LESS(1022, 1024) == 1 END - -#endif - -/* less_equal */ - -BEGIN BOOST_PP_LESS_EQUAL(2, 1) == 0 END -BEGIN BOOST_PP_LESS_EQUAL(1, 2) == 1 END -BEGIN BOOST_PP_LESS_EQUAL(2, 2) == 1 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LESS_EQUAL(327, 211) == 0 END -BEGIN BOOST_PP_LESS_EQUAL(489, 502) == 1 END -BEGIN BOOST_PP_LESS_EQUAL(327, 327) == 1 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LESS_EQUAL(951, 632) == 0 END -BEGIN BOOST_PP_LESS_EQUAL(875, 1002) == 1 END -BEGIN BOOST_PP_LESS_EQUAL(727, 727) == 1 END - -#endif - -/* greater */ - -BEGIN BOOST_PP_GREATER(2, 1) == 1 END -BEGIN BOOST_PP_GREATER(1, 2) == 0 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_GREATER(348, 259) == 1 END -BEGIN BOOST_PP_GREATER(411, 411) == 0 END -BEGIN BOOST_PP_GREATER(327, 373) == 0 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_GREATER(846, 523) == 1 END -BEGIN BOOST_PP_GREATER(574, 574) == 0 END -BEGIN BOOST_PP_GREATER(749, 811) == 0 END - -#endif - -/* greater_equal */ - -BEGIN BOOST_PP_GREATER_EQUAL(2, 1) == 1 END -BEGIN BOOST_PP_GREATER_EQUAL(1, 2) == 0 END -BEGIN BOOST_PP_GREATER_EQUAL(2, 2) == 1 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_GREATER_EQUAL(341, 27) == 1 END -BEGIN BOOST_PP_GREATER_EQUAL(289, 470) == 0 END -BEGIN BOOST_PP_GREATER_EQUAL(296, 296) == 1 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_GREATER_EQUAL(946, 852) == 1 END -BEGIN BOOST_PP_GREATER_EQUAL(685, 717) == 0 END -BEGIN BOOST_PP_GREATER_EQUAL(1001, 1001) == 1 END - -#endif diff --git a/test/control.c b/test/control.c index 786b4dcc..972e1287 100644 --- a/test/control.c +++ b/test/control.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "control.cxx" +# include "control.cpp" diff --git a/test/control.cpp b/test/control.cpp index 786b4dcc..8a2b7c8d 100644 --- a/test/control.cpp +++ b/test/control.cpp @@ -9,4 +9,39 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "control.cxx" +# include +# include +# include +# include +# include "test.h" + +# define TR(x) 1 + +BEGIN BOOST_PP_EXPR_IIF(0, TR)(0) == 0 END +BEGIN BOOST_PP_EXPR_IIF(1, TR)(0) == 1 END + +BEGIN BOOST_PP_EXPR_IF(3, TR)(0) == 1 END +BEGIN BOOST_PP_EXPR_IF(0, TR)(0) == 0 END + +BEGIN BOOST_PP_IIF(0, 1, 0) == 0 END +BEGIN BOOST_PP_IIF(1, 1, 0) == 1 END + +BEGIN BOOST_PP_IF(0, 1, 0) == 0 END +BEGIN BOOST_PP_IF(9, 1, 0) == 1 END + +# define PRED(d, state) state +# define OP_1(d, state) BOOST_PP_DEC(state) + +BEGIN BOOST_PP_WHILE(PRED, OP_1, 50) == 0 END + +# define OP_2(d, state) BOOST_PP_DEC(BOOST_PP_ADD(BOOST_PP_WHILE(PRED, OP_1, state), state)) +# define OP_3(d, state) BOOST_PP_DEC(BOOST_PP_ADD_D(d, BOOST_PP_WHILE_ ## d(PRED, OP_1, state), state)) + +BEGIN BOOST_PP_WHILE(PRED, OP_2, 10) == 0 END +BEGIN BOOST_PP_WHILE(PRED, OP_3, 10) == 0 END + +#if BOOST_PP_LIMIT_MAG != 256 + +BEGIN BOOST_PP_WHILE(PRED, OP_1, BOOST_PP_LIMIT_MAG) == 0 END + +#endif diff --git a/test/control.cxx b/test/control.cxx deleted file mode 100644 index 8a2b7c8d..00000000 --- a/test/control.cxx +++ /dev/null @@ -1,47 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include -# include "test.h" - -# define TR(x) 1 - -BEGIN BOOST_PP_EXPR_IIF(0, TR)(0) == 0 END -BEGIN BOOST_PP_EXPR_IIF(1, TR)(0) == 1 END - -BEGIN BOOST_PP_EXPR_IF(3, TR)(0) == 1 END -BEGIN BOOST_PP_EXPR_IF(0, TR)(0) == 0 END - -BEGIN BOOST_PP_IIF(0, 1, 0) == 0 END -BEGIN BOOST_PP_IIF(1, 1, 0) == 1 END - -BEGIN BOOST_PP_IF(0, 1, 0) == 0 END -BEGIN BOOST_PP_IF(9, 1, 0) == 1 END - -# define PRED(d, state) state -# define OP_1(d, state) BOOST_PP_DEC(state) - -BEGIN BOOST_PP_WHILE(PRED, OP_1, 50) == 0 END - -# define OP_2(d, state) BOOST_PP_DEC(BOOST_PP_ADD(BOOST_PP_WHILE(PRED, OP_1, state), state)) -# define OP_3(d, state) BOOST_PP_DEC(BOOST_PP_ADD_D(d, BOOST_PP_WHILE_ ## d(PRED, OP_1, state), state)) - -BEGIN BOOST_PP_WHILE(PRED, OP_2, 10) == 0 END -BEGIN BOOST_PP_WHILE(PRED, OP_3, 10) == 0 END - -#if BOOST_PP_LIMIT_MAG != 256 - -BEGIN BOOST_PP_WHILE(PRED, OP_1, BOOST_PP_LIMIT_MAG) == 0 END - -#endif diff --git a/test/debug.c b/test/debug.c index 82504987..48f75c01 100644 --- a/test/debug.c +++ b/test/debug.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "debug.cxx" +# include "debug.cpp" diff --git a/test/debug.cpp b/test/debug.cpp index 82504987..6495fc8f 100644 --- a/test/debug.cpp +++ b/test/debug.cpp @@ -9,4 +9,13 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "debug.cxx" +# include +# include "test.h" + +BEGIN sizeof(BOOST_PP_ASSERT_MSG(0, "text") "") / sizeof(char) != 1 END +BEGIN sizeof(BOOST_PP_ASSERT_MSG(1, "text") "") / sizeof(char) == 1 END + +BOOST_PP_ASSERT(10) + +# line BOOST_PP_LINE(100, __FILE__) +BEGIN __LINE__ == 100 END diff --git a/test/debug.cxx b/test/debug.cxx deleted file mode 100644 index 6495fc8f..00000000 --- a/test/debug.cxx +++ /dev/null @@ -1,21 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include "test.h" - -BEGIN sizeof(BOOST_PP_ASSERT_MSG(0, "text") "") / sizeof(char) != 1 END -BEGIN sizeof(BOOST_PP_ASSERT_MSG(1, "text") "") / sizeof(char) == 1 END - -BOOST_PP_ASSERT(10) - -# line BOOST_PP_LINE(100, __FILE__) -BEGIN __LINE__ == 100 END diff --git a/test/facilities.c b/test/facilities.c index 5a56359e..13135543 100644 --- a/test/facilities.c +++ b/test/facilities.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "facilities.cxx" +# include "facilities.cpp" diff --git a/test/facilities.cpp b/test/facilities.cpp index 5a56359e..0c402fd0 100644 --- a/test/facilities.cpp +++ b/test/facilities.cpp @@ -9,4 +9,43 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "facilities.cxx" +# include +# include +# include +# include +# include "test.h" + +BEGIN BOOST_PP_APPLY(BOOST_PP_NIL) 0 == 0 END +BEGIN BOOST_PP_APPLY((0)) == 0 END + +BEGIN BOOST_PP_APPLY((BOOST_PP_EMPTY))() 0 == 0 END + +# define MACRO(x, y, z) 1 +# define ARGS (1, 2, 3) + +BEGIN BOOST_PP_EXPAND(MACRO ARGS) == 1 END + +BEGIN BOOST_PP_IDENTITY(1)() == 1 END +BEGIN BOOST_PP_IDENTITY_N(36,10)(0,1,2,3,4,5,6,7,8,9) == 36 END + +BEGIN BOOST_PP_CAT(BOOST_PP_INTERCEPT, 2) 1 == 1 END + +#define OVMAC_1(x) BOOST_PP_ADD(x,5) +#define OVMAC_2(x,y) BOOST_PP_ADD(x,y) +#define OVMAC_3(x,y,z) BOOST_PP_ADD(BOOST_PP_MUL(x,y),z) +#define OVMAC_4(x,y,z,a) BOOST_PP_ADD(BOOST_PP_MUL(x,y),BOOST_PP_MUL(a,z)) + +#if BOOST_PP_VARIADICS_MSVC + +#define OVTEST(...) BOOST_PP_CAT(BOOST_PP_OVERLOAD(OVMAC_,__VA_ARGS__)(__VA_ARGS__),BOOST_PP_EMPTY()) + +#else + +#define OVTEST(...) BOOST_PP_OVERLOAD(OVMAC_,__VA_ARGS__)(__VA_ARGS__) + +#endif + +BEGIN OVTEST(3,4,5) == 17 END +BEGIN OVTEST(9,3,2,7) == 41 END +BEGIN OVTEST(8) == 13 END +BEGIN OVTEST(24,61) == 85 END diff --git a/test/facilities.cxx b/test/facilities.cxx deleted file mode 100644 index 0c402fd0..00000000 --- a/test/facilities.cxx +++ /dev/null @@ -1,51 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include -# include "test.h" - -BEGIN BOOST_PP_APPLY(BOOST_PP_NIL) 0 == 0 END -BEGIN BOOST_PP_APPLY((0)) == 0 END - -BEGIN BOOST_PP_APPLY((BOOST_PP_EMPTY))() 0 == 0 END - -# define MACRO(x, y, z) 1 -# define ARGS (1, 2, 3) - -BEGIN BOOST_PP_EXPAND(MACRO ARGS) == 1 END - -BEGIN BOOST_PP_IDENTITY(1)() == 1 END -BEGIN BOOST_PP_IDENTITY_N(36,10)(0,1,2,3,4,5,6,7,8,9) == 36 END - -BEGIN BOOST_PP_CAT(BOOST_PP_INTERCEPT, 2) 1 == 1 END - -#define OVMAC_1(x) BOOST_PP_ADD(x,5) -#define OVMAC_2(x,y) BOOST_PP_ADD(x,y) -#define OVMAC_3(x,y,z) BOOST_PP_ADD(BOOST_PP_MUL(x,y),z) -#define OVMAC_4(x,y,z,a) BOOST_PP_ADD(BOOST_PP_MUL(x,y),BOOST_PP_MUL(a,z)) - -#if BOOST_PP_VARIADICS_MSVC - -#define OVTEST(...) BOOST_PP_CAT(BOOST_PP_OVERLOAD(OVMAC_,__VA_ARGS__)(__VA_ARGS__),BOOST_PP_EMPTY()) - -#else - -#define OVTEST(...) BOOST_PP_OVERLOAD(OVMAC_,__VA_ARGS__)(__VA_ARGS__) - -#endif - -BEGIN OVTEST(3,4,5) == 17 END -BEGIN OVTEST(9,3,2,7) == 41 END -BEGIN OVTEST(8) == 13 END -BEGIN OVTEST(24,61) == 85 END diff --git a/test/isempty.c b/test/isempty.c index d0a41339..ac51e017 100644 --- a/test/isempty.c +++ b/test/isempty.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "isempty.cxx" +# include "isempty.cpp" diff --git a/test/isempty.cpp b/test/isempty.cpp index d0a41339..f6e3aa78 100644 --- a/test/isempty.cpp +++ b/test/isempty.cpp @@ -9,4 +9,93 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "isempty.cxx" +# include +# +#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()) || (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()) + +# include +# include +# include "test.h" + +#define DATA +#define OBJECT OBJECT2 +#define OBJECT2 +#define FUNC(x) FUNC2(x) +#define FUNC2(x) +#define FUNC_GEN() () +#define FUNC_GEN2(x) () +#define FUNC_GEN3() (&) +#define FUNC_GEN4(x) (y) +#define FUNC_GEN5() (y,z) +#define FUNC_GEN6() anything +#define FUNC_GEN7(x) anything +#define FUNC_GEN8(x,y) (1,2,3) +#define FUNC_GEN9(x,y,z) anything +#define FUNC_GEN10(x) (y) data +#define NAME &name +#define ATUPLE (atuple) +#define ATUPLE_PLUS (atuple) data + +# include + +#if defined(__cplusplus) && __cplusplus > 201703L && BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN2) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN3) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN4) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN5) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN10) == 0 END + +#elif BOOST_PP_VARIADICS_MSVC /* Testing the VC++ variadic version */ + +/* INCORRECT */ + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN2) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN3) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN4) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN5) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN10) == 1 END + +/* CORRECT */ + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END + +#else /* Testing the non-VC++ variadic version */ + +/* CORRECT */ + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN2) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN3) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN4) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN5) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN10) == 0 END + +/* COMPILER ERROR */ + +// BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 0 END +// BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END + +#endif + +/* Testing the variadic version */ + +/* CORRECT */ + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_IS_EMPTY(DATA BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_IS_EMPTY(x BOOST_PP_EMPTY()) == 0 END +BEGIN BOOST_PP_IS_EMPTY(OBJECT BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC(z) BOOST_PP_EMPTY()) == 1 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN6) == 0 END +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN7) == 0 END +BEGIN BOOST_PP_IS_EMPTY(NAME) == 0 END +BEGIN BOOST_PP_IS_EMPTY(ATUPLE) == 0 END +BEGIN BOOST_PP_IS_EMPTY(ATUPLE_PLUS) == 0 END + +#endif diff --git a/test/isempty.cxx b/test/isempty.cxx deleted file mode 100644 index f6e3aa78..00000000 --- a/test/isempty.cxx +++ /dev/null @@ -1,101 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2014. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()) || (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()) - -# include -# include -# include "test.h" - -#define DATA -#define OBJECT OBJECT2 -#define OBJECT2 -#define FUNC(x) FUNC2(x) -#define FUNC2(x) -#define FUNC_GEN() () -#define FUNC_GEN2(x) () -#define FUNC_GEN3() (&) -#define FUNC_GEN4(x) (y) -#define FUNC_GEN5() (y,z) -#define FUNC_GEN6() anything -#define FUNC_GEN7(x) anything -#define FUNC_GEN8(x,y) (1,2,3) -#define FUNC_GEN9(x,y,z) anything -#define FUNC_GEN10(x) (y) data -#define NAME &name -#define ATUPLE (atuple) -#define ATUPLE_PLUS (atuple) data - -# include - -#if defined(__cplusplus) && __cplusplus > 201703L && BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN2) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN3) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN4) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN5) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN10) == 0 END - -#elif BOOST_PP_VARIADICS_MSVC /* Testing the VC++ variadic version */ - -/* INCORRECT */ - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN2) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN3) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN4) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN5) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN10) == 1 END - -/* CORRECT */ - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END - -#else /* Testing the non-VC++ variadic version */ - -/* CORRECT */ - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN2) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN3) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN4) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN5) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN10) == 0 END - -/* COMPILER ERROR */ - -// BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 0 END -// BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END - -#endif - -/* Testing the variadic version */ - -/* CORRECT */ - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_IS_EMPTY(DATA BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_IS_EMPTY(x BOOST_PP_EMPTY()) == 0 END -BEGIN BOOST_PP_IS_EMPTY(OBJECT BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC(z) BOOST_PP_EMPTY()) == 1 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN6) == 0 END -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN7) == 0 END -BEGIN BOOST_PP_IS_EMPTY(NAME) == 0 END -BEGIN BOOST_PP_IS_EMPTY(ATUPLE) == 0 END -BEGIN BOOST_PP_IS_EMPTY(ATUPLE_PLUS) == 0 END - -#endif diff --git a/test/isempty_variadic_standard_failure.c b/test/isempty_variadic_standard_failure.c index 45fa207e..068ae6c3 100644 --- a/test/isempty_variadic_standard_failure.c +++ b/test/isempty_variadic_standard_failure.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "isempty_variadic_standard_failure.cxx" +# include "isempty_variadic_standard_failure.cpp" diff --git a/test/isempty_variadic_standard_failure.cpp b/test/isempty_variadic_standard_failure.cpp index 45fa207e..1bfe0eec 100644 --- a/test/isempty_variadic_standard_failure.cpp +++ b/test/isempty_variadic_standard_failure.cpp @@ -9,4 +9,27 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "isempty_variadic_standard_failure.cxx" +# include +# include "test.h" + +#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()) && !BOOST_PP_VARIADICS_MSVC + +#define FUNC_GEN8(x,y) (1,2,3) + +#if defined(__cplusplus) && __cplusplus > 201703L + +# include + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == BOOST_PP_VARIADIC_HAS_OPT() END + +#else + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 0 END + +#endif + +#else + +BEGIN 1 == 0 END + +#endif diff --git a/test/isempty_variadic_standard_failure.cxx b/test/isempty_variadic_standard_failure.cxx deleted file mode 100644 index 1bfe0eec..00000000 --- a/test/isempty_variadic_standard_failure.cxx +++ /dev/null @@ -1,35 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2014. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include "test.h" - -#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()) && !BOOST_PP_VARIADICS_MSVC - -#define FUNC_GEN8(x,y) (1,2,3) - -#if defined(__cplusplus) && __cplusplus > 201703L - -# include - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == BOOST_PP_VARIADIC_HAS_OPT() END - -#else - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN8) == 0 END - -#endif - -#else - -BEGIN 1 == 0 END - -#endif diff --git a/test/isempty_variadic_standard_failure2.c b/test/isempty_variadic_standard_failure2.c index 6be243dc..0173619b 100644 --- a/test/isempty_variadic_standard_failure2.c +++ b/test/isempty_variadic_standard_failure2.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "isempty_variadic_standard_failure2.cxx" +# include "isempty_variadic_standard_failure2.cpp" diff --git a/test/isempty_variadic_standard_failure2.cpp b/test/isempty_variadic_standard_failure2.cpp index 6be243dc..ae067f57 100644 --- a/test/isempty_variadic_standard_failure2.cpp +++ b/test/isempty_variadic_standard_failure2.cpp @@ -9,4 +9,27 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "isempty_variadic_standard_failure2.cxx" +# include +# include "test.h" + +#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()) && !BOOST_PP_VARIADICS_MSVC + +#define FUNC_GEN9(x,y,z) anything + +#if defined(__cplusplus) && __cplusplus > 201703L + +# include + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == BOOST_PP_VARIADIC_HAS_OPT() END + +#else + +BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END + +#endif + +#else + +BEGIN 1 == 0 END + +#endif diff --git a/test/isempty_variadic_standard_failure2.cxx b/test/isempty_variadic_standard_failure2.cxx deleted file mode 100644 index ae067f57..00000000 --- a/test/isempty_variadic_standard_failure2.cxx +++ /dev/null @@ -1,35 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2014. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include "test.h" - -#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()) && !BOOST_PP_VARIADICS_MSVC - -#define FUNC_GEN9(x,y,z) anything - -#if defined(__cplusplus) && __cplusplus > 201703L - -# include - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == BOOST_PP_VARIADIC_HAS_OPT() END - -#else - -BEGIN BOOST_PP_IS_EMPTY(FUNC_GEN9) == 0 END - -#endif - -#else - -BEGIN 1 == 0 END - -#endif diff --git a/test/list.c b/test/list.c index e97f2d18..2a07d859 100644 --- a/test/list.c +++ b/test/list.c @@ -11,4 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "list.cxx" +# include "list.cpp" diff --git a/test/list.cpp b/test/list.cpp index e97f2d18..ce621091 100644 --- a/test/list.cpp +++ b/test/list.cpp @@ -11,4 +11,448 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "list.cxx" +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "test.h" + +# define LISTNIL BOOST_PP_NIL +# define LIST (4, (1, (5, (2, BOOST_PP_NIL)))) +# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x) +# define F1(r, state, x) + x + state +# define FI2(r, state, i, x) BOOST_PP_IIF(BOOST_PP_EQUAL(i,1),+ x + x + state,+ x + state) +# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x) +# define L1 (0, (x, BOOST_PP_NIL)) +# define L2 (a, (1, (b, (2, BOOST_PP_NIL)))) +# define L3 (c, (3, (d, BOOST_PP_NIL))) +# define LL (L1, (L2, (L3, BOOST_PP_NIL))) + +# if BOOST_PP_LIMIT_MAG == 512 + +# define LIST_256 \ + (1,(2,(3,(4,(5,(6,(7,(8,(9, \ + (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \ + (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \ + (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \ + (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \ + (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \ + (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \ + (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \ + (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \ + (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \ + (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \ + (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \ + (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \ + (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \ + (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \ + (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \ + (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \ + (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \ + (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \ + (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \ + (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \ + (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \ + (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \ + (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \ + (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \ + (250,(251,(252,(253,(254,(255,(256, BOOST_PP_NIL \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) + +#endif + +# if BOOST_PP_LIMIT_MAG == 512 || BOOST_PP_LIMIT_MAG == 1024 + +# define LIST_512 \ + (1,(2,(3,(4,(5,(6,(7,(8,(9, \ + (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \ + (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \ + (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \ + (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \ + (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \ + (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \ + (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \ + (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \ + (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \ + (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \ + (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \ + (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \ + (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \ + (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \ + (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \ + (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \ + (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \ + (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \ + (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \ + (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \ + (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \ + (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \ + (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \ + (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \ + (250,(251,(252,(253,(254,(255,(256,(257,(258,(259, \ + (260,(261,(262,(263,(264,(265,(266,(267,(268,(269, \ + (270,(271,(272,(273,(274,(275,(276,(277,(278,(279, \ + (280,(281,(282,(283,(284,(285,(286,(287,(288,(289, \ + (290,(291,(292,(293,(294,(295,(296,(297,(298,(299, \ + (300,(301,(302,(303,(304,(305,(306,(307,(308,(309, \ + (310,(311,(312,(313,(314,(315,(316,(317,(318,(319, \ + (320,(321,(322,(323,(324,(325,(326,(327,(328,(329, \ + (330,(331,(332,(333,(334,(335,(336,(337,(338,(339, \ + (340,(341,(342,(343,(344,(345,(346,(347,(348,(349, \ + (350,(351,(352,(353,(354,(355,(356,(357,(358,(359, \ + (360,(361,(362,(363,(364,(365,(366,(367,(368,(369, \ + (370,(371,(372,(373,(374,(375,(376,(377,(378,(379, \ + (380,(381,(382,(383,(384,(385,(386,(387,(388,(389, \ + (390,(391,(392,(393,(394,(395,(396,(397,(398,(399, \ + (400,(401,(402,(403,(404,(405,(406,(407,(408,(409, \ + (410,(411,(412,(413,(414,(415,(416,(417,(418,(419, \ + (420,(421,(422,(423,(424,(425,(426,(427,(428,(429, \ + (430,(431,(432,(433,(434,(435,(436,(437,(438,(439, \ + (440,(441,(442,(443,(444,(445,(446,(447,(448,(449, \ + (450,(451,(452,(453,(454,(455,(456,(457,(458,(459, \ + (460,(461,(462,(463,(464,(465,(466,(467,(468,(469, \ + (470,(471,(472,(473,(474,(475,(476,(477,(478,(479, \ + (480,(481,(482,(483,(484,(485,(486,(487,(488,(489, \ + (490,(491,(492,(493,(494,(495,(496,(497,(498,(499, \ + (500,(501,(502,(503,(504,(505,(506,(507,(508,(509, \ + (510,(511,(512, BOOST_PP_NIL \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +# define LIST_1024 \ + (1,(2,(3,(4,(5,(6,(7,(8,(9, \ + (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \ + (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \ + (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \ + (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \ + (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \ + (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \ + (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \ + (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \ + (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \ + (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \ + (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \ + (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \ + (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \ + (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \ + (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \ + (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \ + (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \ + (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \ + (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \ + (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \ + (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \ + (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \ + (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \ + (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \ + (250,(251,(252,(253,(254,(255,(256,(257,(258,(259, \ + (260,(261,(262,(263,(264,(265,(266,(267,(268,(269, \ + (270,(271,(272,(273,(274,(275,(276,(277,(278,(279, \ + (280,(281,(282,(283,(284,(285,(286,(287,(288,(289, \ + (290,(291,(292,(293,(294,(295,(296,(297,(298,(299, \ + (300,(301,(302,(303,(304,(305,(306,(307,(308,(309, \ + (310,(311,(312,(313,(314,(315,(316,(317,(318,(319, \ + (320,(321,(322,(323,(324,(325,(326,(327,(328,(329, \ + (330,(331,(332,(333,(334,(335,(336,(337,(338,(339, \ + (340,(341,(342,(343,(344,(345,(346,(347,(348,(349, \ + (350,(351,(352,(353,(354,(355,(356,(357,(358,(359, \ + (360,(361,(362,(363,(364,(365,(366,(367,(368,(369, \ + (370,(371,(372,(373,(374,(375,(376,(377,(378,(379, \ + (380,(381,(382,(383,(384,(385,(386,(387,(388,(389, \ + (390,(391,(392,(393,(394,(395,(396,(397,(398,(399, \ + (400,(401,(402,(403,(404,(405,(406,(407,(408,(409, \ + (410,(411,(412,(413,(414,(415,(416,(417,(418,(419, \ + (420,(421,(422,(423,(424,(425,(426,(427,(428,(429, \ + (430,(431,(432,(433,(434,(435,(436,(437,(438,(439, \ + (440,(441,(442,(443,(444,(445,(446,(447,(448,(449, \ + (450,(451,(452,(453,(454,(455,(456,(457,(458,(459, \ + (460,(461,(462,(463,(464,(465,(466,(467,(468,(469, \ + (470,(471,(472,(473,(474,(475,(476,(477,(478,(479, \ + (480,(481,(482,(483,(484,(485,(486,(487,(488,(489, \ + (490,(491,(492,(493,(494,(495,(496,(497,(498,(499, \ + (500,(501,(502,(503,(504,(505,(506,(507,(508,(509, \ + (510,(511,(512, \ + (513,(514,(515,(516,(517,(518,(519,(520,(521, \ + (522,(523,(524,(525,(526,(527,(528,(529,(530,(531, \ + (532,(533,(534,(535,(536,(537,(538,(539,(540,(541, \ + (542,(543,(544,(545,(546,(547,(548,(549,(550,(551, \ + (552,(553,(554,(555,(556,(557,(558,(559,(560,(561, \ + (562,(563,(564,(565,(566,(567,(568,(569,(570,(571, \ + (572,(573,(574,(575,(576,(577,(578,(579,(580,(581, \ + (582,(583,(584,(585,(586,(587,(588,(589,(590,(591, \ + (592,(593,(594,(595,(596,(597,(598,(599,(600,(601, \ + (602,(603,(604,(605,(606,(607,(608,(609,(610,(611, \ + (612,(613,(614,(615,(616,(617,(618,(619,(620,(621, \ + (622,(623,(624,(625,(626,(627,(628,(629,(630,(631, \ + (632,(633,(634,(635,(636,(637,(638,(639,(640,(641, \ + (642,(643,(644,(645,(646,(647,(648,(649,(650,(651, \ + (652,(653,(654,(655,(656,(657,(658,(659,(660,(661, \ + (662,(663,(664,(665,(666,(667,(668,(669,(670,(671, \ + (672,(673,(674,(675,(676,(677,(678,(679,(680,(681, \ + (682,(683,(684,(685,(686,(687,(688,(689,(690,(691, \ + (692,(693,(694,(695,(696,(697,(698,(699,(700,(701, \ + (702,(703,(704,(705,(706,(707,(708,(709,(710,(711, \ + (712,(713,(714,(715,(716,(717,(718,(719,(720,(721, \ + (722,(723,(724,(725,(726,(727,(728,(729,(730,(731, \ + (732,(733,(734,(735,(736,(737,(738,(739,(740,(741, \ + (742,(743,(744,(745,(746,(747,(748,(749,(750,(751, \ + (752,(753,(754,(755,(756,(757,(758,(759,(760,(761, \ + (762,(763,(764,(765,(766,(767,(768,(769,(770,(771, \ + (772,(773,(774,(775,(776,(777,(778,(779,(780,(781, \ + (782,(783,(784,(785,(786,(787,(788,(789,(790,(791, \ + (792,(793,(794,(795,(796,(797,(798,(799,(800,(801, \ + (802,(803,(804,(805,(806,(807,(808,(809,(810,(811, \ + (812,(813,(814,(815,(816,(817,(818,(819,(820,(821, \ + (822,(823,(824,(825,(826,(827,(828,(829,(830,(831, \ + (832,(833,(834,(835,(836,(837,(838,(839,(840,(841, \ + (842,(843,(844,(845,(846,(847,(848,(849,(850,(851, \ + (852,(853,(854,(855,(856,(857,(858,(859,(860,(861, \ + (862,(863,(864,(865,(866,(867,(868,(869,(870,(871, \ + (872,(873,(874,(875,(876,(877,(878,(879,(880,(881, \ + (882,(883,(884,(885,(886,(887,(888,(889,(890,(891, \ + (892,(893,(894,(895,(896,(897,(898,(899,(900,(901, \ + (902,(903,(904,(905,(906,(907,(908,(909,(910,(911, \ + (912,(913,(914,(915,(916,(917,(918,(919,(920,(921, \ + (922,(923,(924,(925,(926,(927,(928,(929,(930,(931, \ + (932,(933,(934,(935,(936,(937,(938,(939,(940,(941, \ + (942,(943,(944,(945,(946,(947,(948,(949,(950,(951, \ + (952,(953,(954,(955,(956,(957,(958,(959,(960,(961, \ + (962,(963,(964,(965,(966,(967,(968,(969,(970,(971, \ + (972,(973,(974,(975,(976,(977,(978,(979,(980,(981, \ + (982,(983,(984,(985,(986,(987,(988,(989,(990,(991, \ + (992,(993,(994,(995,(996,(997,(998,(999,(1000,(1001, \ + (1002,(1003,(1004,(1005,(1006,(1007,(1008,(1009,(1010,(1011, \ + (1012,(1013,(1014,(1015,(1016,(1017,(1018,(1019,(1020,(1021, \ + (1022,(1023,(1024, \ + BOOST_PP_NIL \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ + )))))))))))))))))))))))))))))))) \ +/* */ + +#endif + +BEGIN BOOST_PP_LIST_FIRST(LIST) == 4 END +BEGIN BOOST_PP_LIST_IS_CONS(LIST) == 1 END +BEGIN BOOST_PP_LIST_IS_CONS(LISTNIL) == 0 END +BEGIN BOOST_PP_LIST_IS_NIL(LIST) == 0 END +BEGIN BOOST_PP_LIST_IS_NIL(LISTNIL) == 1 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LIST_FIRST(LIST_512) == 1 END +BEGIN BOOST_PP_LIST_IS_CONS(LIST_512) == 1 END +BEGIN BOOST_PP_LIST_IS_NIL(LIST_512) == 0 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LIST_FIRST(LIST_1024) == 1 END +BEGIN BOOST_PP_LIST_IS_CONS(LIST_1024) == 1 END +BEGIN BOOST_PP_LIST_IS_NIL(LIST_1024) == 0 END + +#endif + +BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_LIST_ENUM(LIST)) == 5 END +BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END +BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LISTNIL) == 22 END +BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 END +BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LISTNIL) == 0 END +BEGIN BOOST_PP_LIST_FOLD_RIGHT(REVERSAL, 0, LIST) == 4 END + +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REVERSE(LIST)) == 2514 END +BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_REVERSE(LISTNIL)) == 1 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_REVERSE(LIST_512),493) == 19 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_REVERSE(LIST_1024),931) == 93 END + +#endif + +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END +BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_REST_N(0, LISTNIL)) == 1 END +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_FIRST_N(357, LIST_512),291) == 292 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_REST_N(411, LIST_512)) == 101 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_FIRST_N(738, LIST_1024),629) == 630 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_REST_N(813, LIST_1024)) == 211 END + +#endif + +BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END +BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END +BEGIN BOOST_PP_LIST_SIZE(LISTNIL) == 0 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LIST_AT(LIST_512, 279) == 280 END +BEGIN BOOST_PP_LIST_SIZE(LIST_512) == 512 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LIST_AT(LIST_1024, 925) == 926 END +BEGIN BOOST_PP_LIST_SIZE(LIST_1024) == 1024 END + +#endif + +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END +BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LISTNIL)) == 1 END + +# if BOOST_PP_LIMIT_MAG == 512 + +#define BOOST_PP_LIST_TEST_TRANSFORM_OP(d, data, elem) BOOST_PP_EQUAL(elem,data) + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 472, LIST_512),471) == 1 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 267, LIST_512),333) == 0 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 && !defined(__clang__) + +#define BOOST_PP_LIST_TEST_TRANSFORM_OP(d, data, elem) BOOST_PP_EQUAL(elem,data) + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 876, LIST_1024),875) == 1 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 637, LIST_1024),741) == 0 END + +#endif + +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(LIST,LISTNIL)) == 4152 END +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(LISTNIL,LIST)) == 4152 END +BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_APPEND(LISTNIL,LISTNIL)) == 1 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST_256,LIST),258) == 5 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST,LIST_256),258) == 255 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST_512,LIST),515) == 2 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST,LIST_512),513) == 510 END + +#endif + +BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 END +BEGIN BOOST_PP_LIST_FOR_EACH_I(FI2, 1, LIST) == 17 END + +BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_LIST_TO_TUPLE(LIST)) == 2 END + +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LIST)) == 45 END +BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LISTNIL)) == 1 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER(BOOST_PP_EQUAL_D, 372, LIST_512)) == 1 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 && (!defined(__clang__) || defined(_MSC_VER) || defined(__CODEGEARC__)) + +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER(BOOST_PP_EQUAL_D, 923, LIST_1024)) == 1 END + +#endif + +BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END +BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_APPEND_D, BOOST_PP_NIL, LL)) == 0x0a1b2c3d END + +BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_LIST_TO_ARRAY(LIST)) == 5 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_LIST_TO_ARRAY(LISTNIL)) == 0 END +BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END + +# if BOOST_PP_LIMIT_MAG == 512 && BOOST_PP_LIMIT_FOR == 512 + +BEGIN BOOST_PP_SEQ_ELEM(437, BOOST_PP_LIST_TO_SEQ(LIST_512)) == 438 END + +#endif + +# if BOOST_PP_LIMIT_MAG == 1024 && BOOST_PP_LIMIT_FOR == 1024 + +BEGIN BOOST_PP_SEQ_ELEM(736, BOOST_PP_LIST_TO_SEQ(LIST_1024)) == 737 END + +#endif diff --git a/test/list.cxx b/test/list.cxx deleted file mode 100644 index ce621091..00000000 --- a/test/list.cxx +++ /dev/null @@ -1,458 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* Revised by Edward Diener (2011) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include "test.h" - -# define LISTNIL BOOST_PP_NIL -# define LIST (4, (1, (5, (2, BOOST_PP_NIL)))) -# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x) -# define F1(r, state, x) + x + state -# define FI2(r, state, i, x) BOOST_PP_IIF(BOOST_PP_EQUAL(i,1),+ x + x + state,+ x + state) -# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x) -# define L1 (0, (x, BOOST_PP_NIL)) -# define L2 (a, (1, (b, (2, BOOST_PP_NIL)))) -# define L3 (c, (3, (d, BOOST_PP_NIL))) -# define LL (L1, (L2, (L3, BOOST_PP_NIL))) - -# if BOOST_PP_LIMIT_MAG == 512 - -# define LIST_256 \ - (1,(2,(3,(4,(5,(6,(7,(8,(9, \ - (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \ - (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \ - (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \ - (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \ - (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \ - (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \ - (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \ - (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \ - (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \ - (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \ - (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \ - (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \ - (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \ - (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \ - (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \ - (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \ - (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \ - (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \ - (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \ - (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \ - (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \ - (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \ - (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \ - (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \ - (250,(251,(252,(253,(254,(255,(256, BOOST_PP_NIL \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) - -#endif - -# if BOOST_PP_LIMIT_MAG == 512 || BOOST_PP_LIMIT_MAG == 1024 - -# define LIST_512 \ - (1,(2,(3,(4,(5,(6,(7,(8,(9, \ - (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \ - (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \ - (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \ - (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \ - (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \ - (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \ - (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \ - (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \ - (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \ - (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \ - (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \ - (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \ - (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \ - (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \ - (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \ - (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \ - (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \ - (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \ - (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \ - (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \ - (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \ - (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \ - (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \ - (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \ - (250,(251,(252,(253,(254,(255,(256,(257,(258,(259, \ - (260,(261,(262,(263,(264,(265,(266,(267,(268,(269, \ - (270,(271,(272,(273,(274,(275,(276,(277,(278,(279, \ - (280,(281,(282,(283,(284,(285,(286,(287,(288,(289, \ - (290,(291,(292,(293,(294,(295,(296,(297,(298,(299, \ - (300,(301,(302,(303,(304,(305,(306,(307,(308,(309, \ - (310,(311,(312,(313,(314,(315,(316,(317,(318,(319, \ - (320,(321,(322,(323,(324,(325,(326,(327,(328,(329, \ - (330,(331,(332,(333,(334,(335,(336,(337,(338,(339, \ - (340,(341,(342,(343,(344,(345,(346,(347,(348,(349, \ - (350,(351,(352,(353,(354,(355,(356,(357,(358,(359, \ - (360,(361,(362,(363,(364,(365,(366,(367,(368,(369, \ - (370,(371,(372,(373,(374,(375,(376,(377,(378,(379, \ - (380,(381,(382,(383,(384,(385,(386,(387,(388,(389, \ - (390,(391,(392,(393,(394,(395,(396,(397,(398,(399, \ - (400,(401,(402,(403,(404,(405,(406,(407,(408,(409, \ - (410,(411,(412,(413,(414,(415,(416,(417,(418,(419, \ - (420,(421,(422,(423,(424,(425,(426,(427,(428,(429, \ - (430,(431,(432,(433,(434,(435,(436,(437,(438,(439, \ - (440,(441,(442,(443,(444,(445,(446,(447,(448,(449, \ - (450,(451,(452,(453,(454,(455,(456,(457,(458,(459, \ - (460,(461,(462,(463,(464,(465,(466,(467,(468,(469, \ - (470,(471,(472,(473,(474,(475,(476,(477,(478,(479, \ - (480,(481,(482,(483,(484,(485,(486,(487,(488,(489, \ - (490,(491,(492,(493,(494,(495,(496,(497,(498,(499, \ - (500,(501,(502,(503,(504,(505,(506,(507,(508,(509, \ - (510,(511,(512, BOOST_PP_NIL \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -# define LIST_1024 \ - (1,(2,(3,(4,(5,(6,(7,(8,(9, \ - (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \ - (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \ - (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \ - (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \ - (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \ - (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \ - (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \ - (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \ - (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \ - (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \ - (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \ - (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \ - (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \ - (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \ - (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \ - (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \ - (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \ - (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \ - (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \ - (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \ - (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \ - (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \ - (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \ - (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \ - (250,(251,(252,(253,(254,(255,(256,(257,(258,(259, \ - (260,(261,(262,(263,(264,(265,(266,(267,(268,(269, \ - (270,(271,(272,(273,(274,(275,(276,(277,(278,(279, \ - (280,(281,(282,(283,(284,(285,(286,(287,(288,(289, \ - (290,(291,(292,(293,(294,(295,(296,(297,(298,(299, \ - (300,(301,(302,(303,(304,(305,(306,(307,(308,(309, \ - (310,(311,(312,(313,(314,(315,(316,(317,(318,(319, \ - (320,(321,(322,(323,(324,(325,(326,(327,(328,(329, \ - (330,(331,(332,(333,(334,(335,(336,(337,(338,(339, \ - (340,(341,(342,(343,(344,(345,(346,(347,(348,(349, \ - (350,(351,(352,(353,(354,(355,(356,(357,(358,(359, \ - (360,(361,(362,(363,(364,(365,(366,(367,(368,(369, \ - (370,(371,(372,(373,(374,(375,(376,(377,(378,(379, \ - (380,(381,(382,(383,(384,(385,(386,(387,(388,(389, \ - (390,(391,(392,(393,(394,(395,(396,(397,(398,(399, \ - (400,(401,(402,(403,(404,(405,(406,(407,(408,(409, \ - (410,(411,(412,(413,(414,(415,(416,(417,(418,(419, \ - (420,(421,(422,(423,(424,(425,(426,(427,(428,(429, \ - (430,(431,(432,(433,(434,(435,(436,(437,(438,(439, \ - (440,(441,(442,(443,(444,(445,(446,(447,(448,(449, \ - (450,(451,(452,(453,(454,(455,(456,(457,(458,(459, \ - (460,(461,(462,(463,(464,(465,(466,(467,(468,(469, \ - (470,(471,(472,(473,(474,(475,(476,(477,(478,(479, \ - (480,(481,(482,(483,(484,(485,(486,(487,(488,(489, \ - (490,(491,(492,(493,(494,(495,(496,(497,(498,(499, \ - (500,(501,(502,(503,(504,(505,(506,(507,(508,(509, \ - (510,(511,(512, \ - (513,(514,(515,(516,(517,(518,(519,(520,(521, \ - (522,(523,(524,(525,(526,(527,(528,(529,(530,(531, \ - (532,(533,(534,(535,(536,(537,(538,(539,(540,(541, \ - (542,(543,(544,(545,(546,(547,(548,(549,(550,(551, \ - (552,(553,(554,(555,(556,(557,(558,(559,(560,(561, \ - (562,(563,(564,(565,(566,(567,(568,(569,(570,(571, \ - (572,(573,(574,(575,(576,(577,(578,(579,(580,(581, \ - (582,(583,(584,(585,(586,(587,(588,(589,(590,(591, \ - (592,(593,(594,(595,(596,(597,(598,(599,(600,(601, \ - (602,(603,(604,(605,(606,(607,(608,(609,(610,(611, \ - (612,(613,(614,(615,(616,(617,(618,(619,(620,(621, \ - (622,(623,(624,(625,(626,(627,(628,(629,(630,(631, \ - (632,(633,(634,(635,(636,(637,(638,(639,(640,(641, \ - (642,(643,(644,(645,(646,(647,(648,(649,(650,(651, \ - (652,(653,(654,(655,(656,(657,(658,(659,(660,(661, \ - (662,(663,(664,(665,(666,(667,(668,(669,(670,(671, \ - (672,(673,(674,(675,(676,(677,(678,(679,(680,(681, \ - (682,(683,(684,(685,(686,(687,(688,(689,(690,(691, \ - (692,(693,(694,(695,(696,(697,(698,(699,(700,(701, \ - (702,(703,(704,(705,(706,(707,(708,(709,(710,(711, \ - (712,(713,(714,(715,(716,(717,(718,(719,(720,(721, \ - (722,(723,(724,(725,(726,(727,(728,(729,(730,(731, \ - (732,(733,(734,(735,(736,(737,(738,(739,(740,(741, \ - (742,(743,(744,(745,(746,(747,(748,(749,(750,(751, \ - (752,(753,(754,(755,(756,(757,(758,(759,(760,(761, \ - (762,(763,(764,(765,(766,(767,(768,(769,(770,(771, \ - (772,(773,(774,(775,(776,(777,(778,(779,(780,(781, \ - (782,(783,(784,(785,(786,(787,(788,(789,(790,(791, \ - (792,(793,(794,(795,(796,(797,(798,(799,(800,(801, \ - (802,(803,(804,(805,(806,(807,(808,(809,(810,(811, \ - (812,(813,(814,(815,(816,(817,(818,(819,(820,(821, \ - (822,(823,(824,(825,(826,(827,(828,(829,(830,(831, \ - (832,(833,(834,(835,(836,(837,(838,(839,(840,(841, \ - (842,(843,(844,(845,(846,(847,(848,(849,(850,(851, \ - (852,(853,(854,(855,(856,(857,(858,(859,(860,(861, \ - (862,(863,(864,(865,(866,(867,(868,(869,(870,(871, \ - (872,(873,(874,(875,(876,(877,(878,(879,(880,(881, \ - (882,(883,(884,(885,(886,(887,(888,(889,(890,(891, \ - (892,(893,(894,(895,(896,(897,(898,(899,(900,(901, \ - (902,(903,(904,(905,(906,(907,(908,(909,(910,(911, \ - (912,(913,(914,(915,(916,(917,(918,(919,(920,(921, \ - (922,(923,(924,(925,(926,(927,(928,(929,(930,(931, \ - (932,(933,(934,(935,(936,(937,(938,(939,(940,(941, \ - (942,(943,(944,(945,(946,(947,(948,(949,(950,(951, \ - (952,(953,(954,(955,(956,(957,(958,(959,(960,(961, \ - (962,(963,(964,(965,(966,(967,(968,(969,(970,(971, \ - (972,(973,(974,(975,(976,(977,(978,(979,(980,(981, \ - (982,(983,(984,(985,(986,(987,(988,(989,(990,(991, \ - (992,(993,(994,(995,(996,(997,(998,(999,(1000,(1001, \ - (1002,(1003,(1004,(1005,(1006,(1007,(1008,(1009,(1010,(1011, \ - (1012,(1013,(1014,(1015,(1016,(1017,(1018,(1019,(1020,(1021, \ - (1022,(1023,(1024, \ - BOOST_PP_NIL \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ - )))))))))))))))))))))))))))))))) \ -/* */ - -#endif - -BEGIN BOOST_PP_LIST_FIRST(LIST) == 4 END -BEGIN BOOST_PP_LIST_IS_CONS(LIST) == 1 END -BEGIN BOOST_PP_LIST_IS_CONS(LISTNIL) == 0 END -BEGIN BOOST_PP_LIST_IS_NIL(LIST) == 0 END -BEGIN BOOST_PP_LIST_IS_NIL(LISTNIL) == 1 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LIST_FIRST(LIST_512) == 1 END -BEGIN BOOST_PP_LIST_IS_CONS(LIST_512) == 1 END -BEGIN BOOST_PP_LIST_IS_NIL(LIST_512) == 0 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LIST_FIRST(LIST_1024) == 1 END -BEGIN BOOST_PP_LIST_IS_CONS(LIST_1024) == 1 END -BEGIN BOOST_PP_LIST_IS_NIL(LIST_1024) == 0 END - -#endif - -BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_LIST_ENUM(LIST)) == 5 END -BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END -BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LISTNIL) == 22 END -BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 END -BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LISTNIL) == 0 END -BEGIN BOOST_PP_LIST_FOLD_RIGHT(REVERSAL, 0, LIST) == 4 END - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REVERSE(LIST)) == 2514 END -BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_REVERSE(LISTNIL)) == 1 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_REVERSE(LIST_512),493) == 19 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_REVERSE(LIST_1024),931) == 93 END - -#endif - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END -BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_REST_N(0, LISTNIL)) == 1 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_FIRST_N(357, LIST_512),291) == 292 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_REST_N(411, LIST_512)) == 101 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_FIRST_N(738, LIST_1024),629) == 630 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_REST_N(813, LIST_1024)) == 211 END - -#endif - -BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END -BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END -BEGIN BOOST_PP_LIST_SIZE(LISTNIL) == 0 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LIST_AT(LIST_512, 279) == 280 END -BEGIN BOOST_PP_LIST_SIZE(LIST_512) == 512 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LIST_AT(LIST_1024, 925) == 926 END -BEGIN BOOST_PP_LIST_SIZE(LIST_1024) == 1024 END - -#endif - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END -BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LISTNIL)) == 1 END - -# if BOOST_PP_LIMIT_MAG == 512 - -#define BOOST_PP_LIST_TEST_TRANSFORM_OP(d, data, elem) BOOST_PP_EQUAL(elem,data) - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 472, LIST_512),471) == 1 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 267, LIST_512),333) == 0 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 && !defined(__clang__) - -#define BOOST_PP_LIST_TEST_TRANSFORM_OP(d, data, elem) BOOST_PP_EQUAL(elem,data) - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 876, LIST_1024),875) == 1 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 637, LIST_1024),741) == 0 END - -#endif - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(LIST,LISTNIL)) == 4152 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(LISTNIL,LIST)) == 4152 END -BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_APPEND(LISTNIL,LISTNIL)) == 1 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST_256,LIST),258) == 5 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST,LIST_256),258) == 255 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST_512,LIST),515) == 2 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST,LIST_512),513) == 510 END - -#endif - -BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 END -BEGIN BOOST_PP_LIST_FOR_EACH_I(FI2, 1, LIST) == 17 END - -BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_LIST_TO_TUPLE(LIST)) == 2 END - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LIST)) == 45 END -BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LISTNIL)) == 1 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER(BOOST_PP_EQUAL_D, 372, LIST_512)) == 1 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 && (!defined(__clang__) || defined(_MSC_VER) || defined(__CODEGEARC__)) - -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER(BOOST_PP_EQUAL_D, 923, LIST_1024)) == 1 END - -#endif - -BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END -BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_APPEND_D, BOOST_PP_NIL, LL)) == 0x0a1b2c3d END - -BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_LIST_TO_ARRAY(LIST)) == 5 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_LIST_TO_ARRAY(LISTNIL)) == 0 END -BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END - -# if BOOST_PP_LIMIT_MAG == 512 && BOOST_PP_LIMIT_FOR == 512 - -BEGIN BOOST_PP_SEQ_ELEM(437, BOOST_PP_LIST_TO_SEQ(LIST_512)) == 438 END - -#endif - -# if BOOST_PP_LIMIT_MAG == 1024 && BOOST_PP_LIMIT_FOR == 1024 - -BEGIN BOOST_PP_SEQ_ELEM(736, BOOST_PP_LIST_TO_SEQ(LIST_1024)) == 737 END - -#endif diff --git a/test/logical.c b/test/logical.c index 666241fe..f8ac944c 100644 --- a/test/logical.c +++ b/test/logical.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "logical.cxx" +# include "logical.cpp" diff --git a/test/logical.cpp b/test/logical.cpp index 666241fe..08c02164 100644 --- a/test/logical.cpp +++ b/test/logical.cpp @@ -9,4 +9,103 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "logical.cxx" +# include +# include +# include "test.h" + +BEGIN BOOST_PP_NOT(0) == 1 END +BEGIN BOOST_PP_NOT(2) == 0 END + +BEGIN BOOST_PP_AND(0, 0) == 0 END +BEGIN BOOST_PP_AND(0, 3) == 0 END +BEGIN BOOST_PP_AND(4, 0) == 0 END +BEGIN BOOST_PP_AND(5, 6) == 1 END + +BEGIN BOOST_PP_OR(0, 0) == 0 END +BEGIN BOOST_PP_OR(0, 7) == 1 END +BEGIN BOOST_PP_OR(8, 0) == 1 END +BEGIN BOOST_PP_OR(9, 1) == 1 END + +BEGIN BOOST_PP_XOR(0, 0) == 0 END +BEGIN BOOST_PP_XOR(0, 2) == 1 END +BEGIN BOOST_PP_XOR(3, 0) == 1 END +BEGIN BOOST_PP_XOR(4, 5) == 0 END + +BEGIN BOOST_PP_NOR(0, 0) == 1 END +BEGIN BOOST_PP_NOR(0, 6) == 0 END +BEGIN BOOST_PP_NOR(7, 0) == 0 END +BEGIN BOOST_PP_NOR(8, 9) == 0 END + +BEGIN BOOST_PP_BOOL(22) == 1 END +BEGIN BOOST_PP_BOOL(0) == 0 END + +#if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_NOT(283) == 0 END + +BEGIN BOOST_PP_AND(0, 505) == 0 END +BEGIN BOOST_PP_AND(376, 0) == 0 END +BEGIN BOOST_PP_AND(482, 139) == 1 END + +BEGIN BOOST_PP_OR(0, 274) == 1 END +BEGIN BOOST_PP_OR(512, 0) == 1 END +BEGIN BOOST_PP_OR(23, 386) == 1 END + +BEGIN BOOST_PP_XOR(0, 494) == 1 END +BEGIN BOOST_PP_XOR(391, 0) == 1 END +BEGIN BOOST_PP_XOR(260, 438) == 0 END + +BEGIN BOOST_PP_NOR(0, 455) == 0 END +BEGIN BOOST_PP_NOR(338, 0) == 0 END +BEGIN BOOST_PP_NOR(267, 504) == 0 END + +BEGIN BOOST_PP_BOOL(378) == 1 END + +#endif + +#if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_NOT(946) == 0 END + +BEGIN BOOST_PP_AND(0, 1002) == 0 END +BEGIN BOOST_PP_AND(628, 0) == 0 END +BEGIN BOOST_PP_AND(741, 110) == 1 END + +BEGIN BOOST_PP_OR(0, 893) == 1 END +BEGIN BOOST_PP_OR(1024, 0) == 1 END +BEGIN BOOST_PP_OR(23, 730) == 1 END + +BEGIN BOOST_PP_XOR(0, 942) == 1 END +BEGIN BOOST_PP_XOR(641, 0) == 1 END +BEGIN BOOST_PP_XOR(783, 869) == 0 END + +BEGIN BOOST_PP_NOR(0, 515) == 0 END +BEGIN BOOST_PP_NOR(739, 0) == 0 END +BEGIN BOOST_PP_NOR(1024, 983) == 0 END + +BEGIN BOOST_PP_BOOL(577) == 1 END + +#endif + +BEGIN BOOST_PP_BITAND(0, 0) == 0 END +BEGIN BOOST_PP_BITAND(0, 1) == 0 END +BEGIN BOOST_PP_BITAND(1, 0) == 0 END +BEGIN BOOST_PP_BITAND(1, 1) == 1 END + +BEGIN BOOST_PP_BITNOR(0, 0) == 1 END +BEGIN BOOST_PP_BITNOR(0, 1) == 0 END +BEGIN BOOST_PP_BITNOR(1, 0) == 0 END +BEGIN BOOST_PP_BITNOR(1, 1) == 0 END + +BEGIN BOOST_PP_BITOR(0, 0) == 0 END +BEGIN BOOST_PP_BITOR(0, 1) == 1 END +BEGIN BOOST_PP_BITOR(1, 0) == 1 END +BEGIN BOOST_PP_BITOR(1, 1) == 1 END + +BEGIN BOOST_PP_BITXOR(0, 0) == 0 END +BEGIN BOOST_PP_BITXOR(0, 1) == 1 END +BEGIN BOOST_PP_BITXOR(1, 0) == 1 END +BEGIN BOOST_PP_BITXOR(1, 1) == 0 END + +BEGIN BOOST_PP_COMPL(0) == 1 END +BEGIN BOOST_PP_COMPL(1) == 0 END diff --git a/test/logical.cxx b/test/logical.cxx deleted file mode 100644 index 08c02164..00000000 --- a/test/logical.cxx +++ /dev/null @@ -1,111 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include "test.h" - -BEGIN BOOST_PP_NOT(0) == 1 END -BEGIN BOOST_PP_NOT(2) == 0 END - -BEGIN BOOST_PP_AND(0, 0) == 0 END -BEGIN BOOST_PP_AND(0, 3) == 0 END -BEGIN BOOST_PP_AND(4, 0) == 0 END -BEGIN BOOST_PP_AND(5, 6) == 1 END - -BEGIN BOOST_PP_OR(0, 0) == 0 END -BEGIN BOOST_PP_OR(0, 7) == 1 END -BEGIN BOOST_PP_OR(8, 0) == 1 END -BEGIN BOOST_PP_OR(9, 1) == 1 END - -BEGIN BOOST_PP_XOR(0, 0) == 0 END -BEGIN BOOST_PP_XOR(0, 2) == 1 END -BEGIN BOOST_PP_XOR(3, 0) == 1 END -BEGIN BOOST_PP_XOR(4, 5) == 0 END - -BEGIN BOOST_PP_NOR(0, 0) == 1 END -BEGIN BOOST_PP_NOR(0, 6) == 0 END -BEGIN BOOST_PP_NOR(7, 0) == 0 END -BEGIN BOOST_PP_NOR(8, 9) == 0 END - -BEGIN BOOST_PP_BOOL(22) == 1 END -BEGIN BOOST_PP_BOOL(0) == 0 END - -#if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_NOT(283) == 0 END - -BEGIN BOOST_PP_AND(0, 505) == 0 END -BEGIN BOOST_PP_AND(376, 0) == 0 END -BEGIN BOOST_PP_AND(482, 139) == 1 END - -BEGIN BOOST_PP_OR(0, 274) == 1 END -BEGIN BOOST_PP_OR(512, 0) == 1 END -BEGIN BOOST_PP_OR(23, 386) == 1 END - -BEGIN BOOST_PP_XOR(0, 494) == 1 END -BEGIN BOOST_PP_XOR(391, 0) == 1 END -BEGIN BOOST_PP_XOR(260, 438) == 0 END - -BEGIN BOOST_PP_NOR(0, 455) == 0 END -BEGIN BOOST_PP_NOR(338, 0) == 0 END -BEGIN BOOST_PP_NOR(267, 504) == 0 END - -BEGIN BOOST_PP_BOOL(378) == 1 END - -#endif - -#if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_NOT(946) == 0 END - -BEGIN BOOST_PP_AND(0, 1002) == 0 END -BEGIN BOOST_PP_AND(628, 0) == 0 END -BEGIN BOOST_PP_AND(741, 110) == 1 END - -BEGIN BOOST_PP_OR(0, 893) == 1 END -BEGIN BOOST_PP_OR(1024, 0) == 1 END -BEGIN BOOST_PP_OR(23, 730) == 1 END - -BEGIN BOOST_PP_XOR(0, 942) == 1 END -BEGIN BOOST_PP_XOR(641, 0) == 1 END -BEGIN BOOST_PP_XOR(783, 869) == 0 END - -BEGIN BOOST_PP_NOR(0, 515) == 0 END -BEGIN BOOST_PP_NOR(739, 0) == 0 END -BEGIN BOOST_PP_NOR(1024, 983) == 0 END - -BEGIN BOOST_PP_BOOL(577) == 1 END - -#endif - -BEGIN BOOST_PP_BITAND(0, 0) == 0 END -BEGIN BOOST_PP_BITAND(0, 1) == 0 END -BEGIN BOOST_PP_BITAND(1, 0) == 0 END -BEGIN BOOST_PP_BITAND(1, 1) == 1 END - -BEGIN BOOST_PP_BITNOR(0, 0) == 1 END -BEGIN BOOST_PP_BITNOR(0, 1) == 0 END -BEGIN BOOST_PP_BITNOR(1, 0) == 0 END -BEGIN BOOST_PP_BITNOR(1, 1) == 0 END - -BEGIN BOOST_PP_BITOR(0, 0) == 0 END -BEGIN BOOST_PP_BITOR(0, 1) == 1 END -BEGIN BOOST_PP_BITOR(1, 0) == 1 END -BEGIN BOOST_PP_BITOR(1, 1) == 1 END - -BEGIN BOOST_PP_BITXOR(0, 0) == 0 END -BEGIN BOOST_PP_BITXOR(0, 1) == 1 END -BEGIN BOOST_PP_BITXOR(1, 0) == 1 END -BEGIN BOOST_PP_BITXOR(1, 1) == 0 END - -BEGIN BOOST_PP_COMPL(0) == 1 END -BEGIN BOOST_PP_COMPL(1) == 0 END diff --git a/test/punctuation.c b/test/punctuation.c index 410ec7ba..266859eb 100644 --- a/test/punctuation.c +++ b/test/punctuation.c @@ -11,4 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "punctuation.cxx" +# include "punctuation.cpp" diff --git a/test/punctuation.cpp b/test/punctuation.cpp index 410ec7ba..ea198f5c 100644 --- a/test/punctuation.cpp +++ b/test/punctuation.cpp @@ -1,14 +1,50 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. +# * (C) Copyright Edward Diener 2014. # * Distributed under the Boost Software License, Version 1.0. (See # * accompanying file LICENSE_1_0.txt or copy at # * http://www.boost.org/LICENSE_1_0.txt) # * * # ************************************************************************** */ # -# /* Revised by Edward Diener (2011) */ -# # /* See http://www.boost.org for most recent version. */ # -# include "punctuation.cxx" +# include +# include "test.h" + +# define A_TUPLE (*,#,zz) +# define A_TUPLE2 (*,#,(zz,44,(e7))) +# define A_TUPLE_PLUS (mmf,34,^^,!) 456 +# define PLUS_ATUPLE yyt (j,ii%) +# define JDATA ggh +# define NOT_TUPLE y6() +# define NOT_TUPLE2 &(kkkgg,(e)) +# define A_SEQ (r)($)(#) +# define AN_ARRAY (4,(5,7,f,x)) +# define A_LIST (e,(g,(&,BOOST_PP_NIL))) +# define DATA (5 + 3) * 4 +# define DATA2 4 * (5 + 3) +# define DATA3 4 * (5 + 3) * (2 + 1) +# define DATA4 (5 + 3) * (2 + 1) * 4 + +// is_begin_parens + +BEGIN BOOST_PP_IS_BEGIN_PARENS() == 0 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(A_TUPLE) == 1 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(A_TUPLE2) == 1 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(A_TUPLE_PLUS) == 1 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(PLUS_ATUPLE) == 0 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(JDATA) == 0 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(NOT_TUPLE) == 0 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(NOT_TUPLE2) == 0 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(A_SEQ) == 1 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(AN_ARRAY) == 1 END +BEGIN BOOST_PP_IS_BEGIN_PARENS(A_LIST) == 1 END +BEGIN BOOST_PP_IS_BEGIN_PARENS((y)2(x)) == 1 END + +// remove_parens + +BEGIN BOOST_PP_REMOVE_PARENS(DATA) == 17 END +BEGIN BOOST_PP_REMOVE_PARENS(DATA2)== 32 END +BEGIN BOOST_PP_REMOVE_PARENS(DATA3)== 96 END +BEGIN BOOST_PP_REMOVE_PARENS(DATA4)== 41 END diff --git a/test/punctuation.cxx b/test/punctuation.cxx deleted file mode 100644 index ea198f5c..00000000 --- a/test/punctuation.cxx +++ /dev/null @@ -1,50 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2014. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include "test.h" - -# define A_TUPLE (*,#,zz) -# define A_TUPLE2 (*,#,(zz,44,(e7))) -# define A_TUPLE_PLUS (mmf,34,^^,!) 456 -# define PLUS_ATUPLE yyt (j,ii%) -# define JDATA ggh -# define NOT_TUPLE y6() -# define NOT_TUPLE2 &(kkkgg,(e)) -# define A_SEQ (r)($)(#) -# define AN_ARRAY (4,(5,7,f,x)) -# define A_LIST (e,(g,(&,BOOST_PP_NIL))) -# define DATA (5 + 3) * 4 -# define DATA2 4 * (5 + 3) -# define DATA3 4 * (5 + 3) * (2 + 1) -# define DATA4 (5 + 3) * (2 + 1) * 4 - -// is_begin_parens - -BEGIN BOOST_PP_IS_BEGIN_PARENS() == 0 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(A_TUPLE) == 1 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(A_TUPLE2) == 1 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(A_TUPLE_PLUS) == 1 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(PLUS_ATUPLE) == 0 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(JDATA) == 0 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(NOT_TUPLE) == 0 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(NOT_TUPLE2) == 0 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(A_SEQ) == 1 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(AN_ARRAY) == 1 END -BEGIN BOOST_PP_IS_BEGIN_PARENS(A_LIST) == 1 END -BEGIN BOOST_PP_IS_BEGIN_PARENS((y)2(x)) == 1 END - -// remove_parens - -BEGIN BOOST_PP_REMOVE_PARENS(DATA) == 17 END -BEGIN BOOST_PP_REMOVE_PARENS(DATA2)== 32 END -BEGIN BOOST_PP_REMOVE_PARENS(DATA3)== 96 END -BEGIN BOOST_PP_REMOVE_PARENS(DATA4)== 41 END diff --git a/test/selection.c b/test/selection.c index b21282cc..30113f54 100644 --- a/test/selection.c +++ b/test/selection.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "selection.cxx" +# include "selection.cpp" diff --git a/test/selection.cpp b/test/selection.cpp index b21282cc..720a7768 100644 --- a/test/selection.cpp +++ b/test/selection.cpp @@ -9,4 +9,38 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "selection.cxx" +# include +# include +# include "test.h" + +BEGIN BOOST_PP_MAX(2, 2) == 2 END +BEGIN BOOST_PP_MAX(2, 1) == 2 END +BEGIN BOOST_PP_MAX(1, 2) == 2 END + +BEGIN BOOST_PP_MIN(2, 2) == 2 END +BEGIN BOOST_PP_MIN(2, 1) == 1 END +BEGIN BOOST_PP_MIN(1, 2) == 1 END + +# if BOOST_PP_LIMIT_MAG == 512 + +BEGIN BOOST_PP_MAX(438, 438) == 438 END +BEGIN BOOST_PP_MAX(371, 289) == 371 END +BEGIN BOOST_PP_MAX(390, 468) == 468 END + +BEGIN BOOST_PP_MIN(391, 391) == 391 END +BEGIN BOOST_PP_MIN(425, 274) == 274 END +BEGIN BOOST_PP_MIN(410, 503) == 410 END + +# endif + +# if BOOST_PP_LIMIT_MAG == 1024 + +BEGIN BOOST_PP_MAX(892, 892) == 892 END +BEGIN BOOST_PP_MAX(967, 640) == 967 END +BEGIN BOOST_PP_MAX(583, 745) == 745 END + +BEGIN BOOST_PP_MIN(837, 837) == 837 END +BEGIN BOOST_PP_MIN(646, 583) == 583 END +BEGIN BOOST_PP_MIN(782, 826) == 782 END + +# endif diff --git a/test/selection.cxx b/test/selection.cxx deleted file mode 100644 index 720a7768..00000000 --- a/test/selection.cxx +++ /dev/null @@ -1,46 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include "test.h" - -BEGIN BOOST_PP_MAX(2, 2) == 2 END -BEGIN BOOST_PP_MAX(2, 1) == 2 END -BEGIN BOOST_PP_MAX(1, 2) == 2 END - -BEGIN BOOST_PP_MIN(2, 2) == 2 END -BEGIN BOOST_PP_MIN(2, 1) == 1 END -BEGIN BOOST_PP_MIN(1, 2) == 1 END - -# if BOOST_PP_LIMIT_MAG == 512 - -BEGIN BOOST_PP_MAX(438, 438) == 438 END -BEGIN BOOST_PP_MAX(371, 289) == 371 END -BEGIN BOOST_PP_MAX(390, 468) == 468 END - -BEGIN BOOST_PP_MIN(391, 391) == 391 END -BEGIN BOOST_PP_MIN(425, 274) == 274 END -BEGIN BOOST_PP_MIN(410, 503) == 410 END - -# endif - -# if BOOST_PP_LIMIT_MAG == 1024 - -BEGIN BOOST_PP_MAX(892, 892) == 892 END -BEGIN BOOST_PP_MAX(967, 640) == 967 END -BEGIN BOOST_PP_MAX(583, 745) == 745 END - -BEGIN BOOST_PP_MIN(837, 837) == 837 END -BEGIN BOOST_PP_MIN(646, 583) == 583 END -BEGIN BOOST_PP_MIN(782, 826) == 782 END - -# endif diff --git a/test/seq.c b/test/seq.c index 6200def1..f7cee8b6 100644 --- a/test/seq.c +++ b/test/seq.c @@ -11,4 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "seq.cxx" +# include "seq.cpp" diff --git a/test/seq.cpp b/test/seq.cpp index 6200def1..26291a71 100644 --- a/test/seq.cpp +++ b/test/seq.cpp @@ -7,8 +7,650 @@ # * * # ************************************************************************** */ # -# /* Revised by Edward Diener (2011) */ +# /* Revised by Edward Diener (2011,2020) */ # # /* See http://www.boost.org for most recent version. */ # -# include "seq.cxx" +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "test.h" + +# define SEQ_NONE () +# define SEQ (4)(1)(5)(2) + +# define SEQ_100 \ + (1)(2)(3)(4)(5)(6)(7)(8)(9) \ + (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ + (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ + (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ + (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ + (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ + (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ + (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ + (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ + (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ + (100) + +# define SEQ_255 \ + (1)(2)(3)(4)(5)(6)(7)(8)(9) \ + (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ + (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ + (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ + (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ + (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ + (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ + (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ + (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ + (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ + (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ + (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ + (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ + (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ + (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ + (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ + (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ + (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ + (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ + (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ + (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ + (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ + (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ + (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ + (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ + (250)(251)(252)(253)(254)(255) + +# define SEQ_256 SEQ_255(256) + +# if BOOST_PP_LIMIT_SEQ == 512 + +# define SEQ_511 \ + (1)(2)(3)(4)(5)(6)(7)(8)(9) \ + (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ + (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ + (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ + (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ + (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ + (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ + (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ + (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ + (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ + (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ + (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ + (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ + (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ + (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ + (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ + (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ + (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ + (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ + (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ + (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ + (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ + (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ + (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ + (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ + (250)(251)(252)(253)(254)(255)(256)(257)(258)(259) \ + (260)(261)(262)(263)(264)(265)(266)(267)(268)(269) \ + (270)(271)(272)(273)(274)(275)(276)(277)(278)(279) \ + (280)(281)(282)(283)(284)(285)(286)(287)(288)(289) \ + (290)(291)(292)(293)(294)(295)(296)(297)(298)(299) \ + (300)(301)(302)(303)(304)(305)(306)(307)(308)(309) \ + (310)(311)(312)(313)(314)(315)(316)(317)(318)(319) \ + (320)(321)(322)(323)(324)(325)(326)(327)(328)(329) \ + (330)(331)(332)(333)(334)(335)(336)(337)(338)(339) \ + (340)(341)(342)(343)(344)(345)(346)(347)(348)(349) \ + (350)(351)(352)(353)(354)(355)(356)(357)(358)(359) \ + (360)(361)(362)(363)(364)(365)(366)(367)(368)(369) \ + (370)(371)(372)(373)(374)(375)(376)(377)(378)(379) \ + (380)(381)(382)(383)(384)(385)(386)(387)(388)(389) \ + (390)(391)(392)(393)(394)(395)(396)(397)(398)(399) \ + (400)(401)(402)(403)(404)(405)(406)(407)(408)(409) \ + (410)(411)(412)(413)(414)(415)(416)(417)(418)(419) \ + (420)(421)(422)(423)(424)(425)(426)(427)(428)(429) \ + (430)(431)(432)(433)(434)(435)(436)(437)(438)(439) \ + (440)(441)(442)(443)(444)(445)(446)(447)(448)(449) \ + (450)(451)(452)(453)(454)(455)(456)(457)(458)(459) \ + (460)(461)(462)(463)(464)(465)(466)(467)(468)(469) \ + (470)(471)(472)(473)(474)(475)(476)(477)(478)(479) \ + (480)(481)(482)(483)(484)(485)(486)(487)(488)(489) \ + (490)(491)(492)(493)(494)(495)(496)(497)(498)(499) \ + (500)(501)(502)(503)(504)(505)(506)(507)(508)(509) \ + (510)(511) + +# define SEQ_512 SEQ_511(512) + +# endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +# define SEQ_1023 \ + (1)(2)(3)(4)(5)(6)(7)(8)(9) \ + (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ + (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ + (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ + (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ + (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ + (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ + (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ + (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ + (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ + (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ + (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ + (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ + (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ + (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ + (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ + (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ + (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ + (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ + (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ + (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ + (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ + (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ + (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ + (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ + (250)(251)(252)(253)(254)(255)(256)(257)(258)(259) \ + (260)(261)(262)(263)(264)(265)(266)(267)(268)(269) \ + (270)(271)(272)(273)(274)(275)(276)(277)(278)(279) \ + (280)(281)(282)(283)(284)(285)(286)(287)(288)(289) \ + (290)(291)(292)(293)(294)(295)(296)(297)(298)(299) \ + (300)(301)(302)(303)(304)(305)(306)(307)(308)(309) \ + (310)(311)(312)(313)(314)(315)(316)(317)(318)(319) \ + (320)(321)(322)(323)(324)(325)(326)(327)(328)(329) \ + (330)(331)(332)(333)(334)(335)(336)(337)(338)(339) \ + (340)(341)(342)(343)(344)(345)(346)(347)(348)(349) \ + (350)(351)(352)(353)(354)(355)(356)(357)(358)(359) \ + (360)(361)(362)(363)(364)(365)(366)(367)(368)(369) \ + (370)(371)(372)(373)(374)(375)(376)(377)(378)(379) \ + (380)(381)(382)(383)(384)(385)(386)(387)(388)(389) \ + (390)(391)(392)(393)(394)(395)(396)(397)(398)(399) \ + (400)(401)(402)(403)(404)(405)(406)(407)(408)(409) \ + (410)(411)(412)(413)(414)(415)(416)(417)(418)(419) \ + (420)(421)(422)(423)(424)(425)(426)(427)(428)(429) \ + (430)(431)(432)(433)(434)(435)(436)(437)(438)(439) \ + (440)(441)(442)(443)(444)(445)(446)(447)(448)(449) \ + (450)(451)(452)(453)(454)(455)(456)(457)(458)(459) \ + (460)(461)(462)(463)(464)(465)(466)(467)(468)(469) \ + (470)(471)(472)(473)(474)(475)(476)(477)(478)(479) \ + (480)(481)(482)(483)(484)(485)(486)(487)(488)(489) \ + (490)(491)(492)(493)(494)(495)(496)(497)(498)(499) \ + (500)(501)(502)(503)(504)(505)(506)(507)(508)(509) \ + (510)(511)(512) \ + (513)(514)(515)(516)(517)(518)(519)(520)(521) \ + (522)(523)(524)(525)(526)(527)(528)(529)(530)(531) \ + (532)(533)(534)(535)(536)(537)(538)(539)(540)(541) \ + (542)(543)(544)(545)(546)(547)(548)(549)(550)(551) \ + (552)(553)(554)(555)(556)(557)(558)(559)(560)(561) \ + (562)(563)(564)(565)(566)(567)(568)(569)(570)(571) \ + (572)(573)(574)(575)(576)(577)(578)(579)(580)(581) \ + (582)(583)(584)(585)(586)(587)(588)(589)(590)(591) \ + (592)(593)(594)(595)(596)(597)(598)(599)(600)(601) \ + (602)(603)(604)(605)(606)(607)(608)(609)(610)(611) \ + (612)(613)(614)(615)(616)(617)(618)(619)(620)(621) \ + (622)(623)(624)(625)(626)(627)(628)(629)(630)(631) \ + (632)(633)(634)(635)(636)(637)(638)(639)(640)(641) \ + (642)(643)(644)(645)(646)(647)(648)(649)(650)(651) \ + (652)(653)(654)(655)(656)(657)(658)(659)(660)(661) \ + (662)(663)(664)(665)(666)(667)(668)(669)(670)(671) \ + (672)(673)(674)(675)(676)(677)(678)(679)(680)(681) \ + (682)(683)(684)(685)(686)(687)(688)(689)(690)(691) \ + (692)(693)(694)(695)(696)(697)(698)(699)(700)(701) \ + (702)(703)(704)(705)(706)(707)(708)(709)(710)(711) \ + (712)(713)(714)(715)(716)(717)(718)(719)(720)(721) \ + (722)(723)(724)(725)(726)(727)(728)(729)(730)(731) \ + (732)(733)(734)(735)(736)(737)(738)(739)(740)(741) \ + (742)(743)(744)(745)(746)(747)(748)(749)(750)(751) \ + (752)(753)(754)(755)(756)(757)(758)(759)(760)(761) \ + (762)(763)(764)(765)(766)(767)(768)(769)(770)(771) \ + (772)(773)(774)(775)(776)(777)(778)(779)(780)(781) \ + (782)(783)(784)(785)(786)(787)(788)(789)(790)(791) \ + (792)(793)(794)(795)(796)(797)(798)(799)(800)(801) \ + (802)(803)(804)(805)(806)(807)(808)(809)(810)(811) \ + (812)(813)(814)(815)(816)(817)(818)(819)(820)(821) \ + (822)(823)(824)(825)(826)(827)(828)(829)(830)(831) \ + (832)(833)(834)(835)(836)(837)(838)(839)(840)(841) \ + (842)(843)(844)(845)(846)(847)(848)(849)(850)(851) \ + (852)(853)(854)(855)(856)(857)(858)(859)(860)(861) \ + (862)(863)(864)(865)(866)(867)(868)(869)(870)(871) \ + (872)(873)(874)(875)(876)(877)(878)(879)(880)(881) \ + (882)(883)(884)(885)(886)(887)(888)(889)(890)(891) \ + (892)(893)(894)(895)(896)(897)(898)(899)(900)(901) \ + (902)(903)(904)(905)(906)(907)(908)(909)(910)(911) \ + (912)(913)(914)(915)(916)(917)(918)(919)(920)(921) \ + (922)(923)(924)(925)(926)(927)(928)(929)(930)(931) \ + (932)(933)(934)(935)(936)(937)(938)(939)(940)(941) \ + (942)(943)(944)(945)(946)(947)(948)(949)(950)(951) \ + (952)(953)(954)(955)(956)(957)(958)(959)(960)(961) \ + (962)(963)(964)(965)(966)(967)(968)(969)(970)(971) \ + (972)(973)(974)(975)(976)(977)(978)(979)(980)(981) \ + (982)(983)(984)(985)(986)(987)(988)(989)(990)(991) \ + (992)(993)(994)(995)(996)(997)(998)(999)(1000)(1001) \ + (1002)(1003)(1004)(1005)(1006)(1007)(1008)(1009)(1010)(1011) \ + (1012)(1013)(1014)(1015)(1016)(1017)(1018)(1019)(1020)(1021) \ + (1022)(1023) + +# define SEQ_1024 SEQ_1023(1024) + +# endif + +# define SEQVAR (4,5,8,3,61)(1,0)(5,22,43)(2)(17,45,33) + +# define REVERSAL(s, x, y) BOOST_PP_SUB(y, x) +# define SUB_S(s, x, y) BOOST_PP_SUB(x, y) +# define ADD_S(s, x, y) BOOST_PP_ADD(x, y) +# define CAT_S(s, x, y) BOOST_PP_CAT(x, BOOST_PP_IS_EMPTY(y)) + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_HEAD(SEQ_NONE)) == 1 END +BEGIN BOOST_PP_SEQ_HEAD(SEQ) == 4 END +BEGIN BOOST_PP_SEQ_HEAD(SEQ_255) == 1 END +BEGIN BOOST_PP_SEQ_HEAD(SEQ_256) == 1 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_HEAD(SEQ_511) == 1 END +BEGIN BOOST_PP_SEQ_HEAD(SEQ_512) == 1 END + +# endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_HEAD(SEQ_1023) == 1 END +BEGIN BOOST_PP_SEQ_HEAD(SEQ_1024) == 1 END + +# endif + +BEGIN BOOST_PP_SEQ_FOLD_LEFT(CAT_S, 1, SEQ_NONE) == 11 END +BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 END +BEGIN BOOST_PP_SEQ_FOLD_RIGHT(CAT_S, 2, SEQ_NONE) == 21 END +BEGIN BOOST_PP_SEQ_FOLD_RIGHT(ADD_S, 0, SEQ) == 12 END +BEGIN BOOST_PP_SEQ_FOLD_RIGHT(REVERSAL, 0, SEQ) == 4 END + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ_NONE))) == 1 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(SEQ_512)) == 512 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(SEQ_1024)) == 1024 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(99, SEQ_100)) == 100 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(255, SEQ_256)) == 256 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N(509, SEQ_511)) == 510 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N(1020, SEQ_1023)) == 1021 END + +#endif + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(1, SEQ_NONE))) == 1 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END +BEGIN BOOST_PP_SEQ_ELEM(50,BOOST_PP_SEQ_FIRST_N(100, SEQ_100)) == 51 END +BEGIN BOOST_PP_SEQ_ELEM(100,BOOST_PP_SEQ_FIRST_N(255, SEQ_255)) == 101 END +BEGIN BOOST_PP_SEQ_ELEM(200,BOOST_PP_SEQ_FIRST_N(256, SEQ_256)) == 201 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_ELEM(7,BOOST_PP_SEQ_FIRST_N(15, SEQ_512)) == 8 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_ELEM(14,BOOST_PP_SEQ_FIRST_N(25, SEQ_1024)) == 15 END + +#endif + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0, SEQ_NONE)) == 1 END +BEGIN BOOST_PP_SEQ_SIZE(SEQ_NONE) == 1 END +BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END +BEGIN BOOST_PP_SEQ_ELEM(20, SEQ_255) == 21 END +BEGIN BOOST_PP_SEQ_ELEM(254, SEQ_255) == 255 END +BEGIN BOOST_PP_SEQ_ELEM(220, SEQ_256) == 221 END +BEGIN BOOST_PP_SEQ_ELEM(255, SEQ_256) == 256 END +BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(SEQ_511) == 511 END +BEGIN BOOST_PP_SEQ_ELEM(476, SEQ_512) == 477 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(SEQ_1023) == 1023 END +BEGIN BOOST_PP_SEQ_ELEM(934, SEQ_1024) == 935 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(CAT_S, 13, SEQ_NONE)) == 131 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +#define STRANS_512(s,data,elem) BOOST_PP_ADD(elem,data) + +BEGIN BOOST_PP_SEQ_ELEM(383, BOOST_PP_SEQ_TRANSFORM(STRANS_512,2,SEQ_512)) == 386 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +#define STRANS_1024(s,data,elem) BOOST_PP_ADD(elem,data) + +BEGIN BOOST_PP_SEQ_ELEM(728, BOOST_PP_SEQ_TRANSFORM(STRANS_1024,1,SEQ_1024)) == 730 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_ELEM(459, BOOST_PP_SEQ_TAIL(SEQ_511)) == 461 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_ELEM(624, BOOST_PP_SEQ_TAIL(SEQ_1023)) == 626 END + +#endif + +# define F1(r, state, x) + x + state +# define FI2(r, state, i, x) BOOST_PP_IIF(BOOST_PP_EQUAL(i,2),+ x + x + state,+ x + state) +BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END +BEGIN BOOST_PP_SEQ_FOR_EACH_I(FI2, 1, SEQ) == 21 END + +# if BOOST_PP_LIMIT_SEQ == 512 && BOOST_PP_LIMIT_FOR == 512 + +# define FE5I2(r, state, i, x) BOOST_PP_EXPR_IIF(BOOST_PP_LESS(i,5),+ x - state) + +BEGIN BOOST_PP_SEQ_FOR_EACH_I(FE5I2, 1, SEQ_512) == 10 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 && BOOST_PP_LIMIT_FOR == 1024 + +# define FE1024(r, state, i, x) BOOST_PP_EXPR_IIF(BOOST_PP_LESS(i,6),+ x - state) + +BEGIN BOOST_PP_SEQ_FOR_EACH_I(FE1024, 2, SEQ_1024) == 9 END + +#endif + +BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, BOOST_PP_SEQ_TO_TUPLE(SEQ_NONE))) == 1 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_SEQ_TO_TUPLE(SEQ_NONE)) == 1 END +BEGIN BOOST_PP_ARRAY_ELEM(3, BOOST_PP_SEQ_TO_ARRAY(SEQ)) == 2 END + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_SEQ_TO_ARRAY(SEQ_NONE))) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_SEQ_TO_ARRAY(SEQ_NONE)) == 1 END + +# define LESS_S(s, x, y) BOOST_PP_LESS(x, y) +# define FILTER_MOD_S(s, data, elem) BOOST_PP_NOT(BOOST_PP_MOD(elem,data)) +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 END +BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_SEQ_FILTER(FILTER_MOD_S, 20, SEQ_100)) == 100 END +BEGIN BOOST_PP_SEQ_ELEM(2,BOOST_PP_SEQ_FILTER(FILTER_MOD_S, 30, SEQ_100)) == 90 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +# define FILTER_EQ_512_S(s, data, elem) \ + BOOST_PP_BITOR \ + ( \ + BOOST_PP_EQUAL(BOOST_PP_DEC(data),elem), \ + BOOST_PP_EQUAL(BOOST_PP_INC(data),elem) \ + ) \ +/* */ + +BEGIN BOOST_PP_SEQ_ELEM(1,BOOST_PP_SEQ_FILTER(FILTER_EQ_512_S, 20, SEQ_512)) == 21 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +# define FILTER_EQ_1024_S(s, data, elem) \ + BOOST_PP_BITOR \ + ( \ + BOOST_PP_EQUAL(BOOST_PP_DEC(data),elem), \ + BOOST_PP_EQUAL(BOOST_PP_INC(data),elem) \ + ) \ +/* */ + +BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_FILTER(FILTER_EQ_1024_S, 100, SEQ_1024)) == 99 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ_NONE, 0, 7)) == 7 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 0, 3)) == 34152 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 2, 3)) == 41352 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 4, 3)) == 41523 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_255, 0, 100)) == 256 END +BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_INSERT(SEQ_255, 0, 100)) == 255 END +BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_INSERT(SEQ_255, 0, 113)) == 113 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_ELEM(511,BOOST_PP_SEQ_INSERT(SEQ_511, 0, 0)) == 511 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_511, 510, 431)) == 512 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_ELEM(1023,BOOST_PP_SEQ_INSERT(SEQ_1023, 0, 0)) == 1023 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_1023, 742, 29)) == 1024 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 255 END +BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 255 END +BEGIN BOOST_PP_SEQ_ELEM(100,BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 101 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_512)) == 511 END +BEGIN BOOST_PP_SEQ_ELEM(437,BOOST_PP_SEQ_POP_BACK(SEQ_511)) == 438 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_1024)) == 1023 END +BEGIN BOOST_PP_SEQ_ELEM(632,BOOST_PP_SEQ_POP_BACK(SEQ_1023)) == 633 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 255 END +BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 2 END +BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 256 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_512)) == 511 END +BEGIN BOOST_PP_SEQ_ELEM(347,BOOST_PP_SEQ_POP_FRONT(SEQ_512)) == 349 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_1024)) == 1023 END +BEGIN BOOST_PP_SEQ_ELEM(875,BOOST_PP_SEQ_POP_FRONT(SEQ_1024)) == 877 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ_NONE, 145)) == 145 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 57)) == 256 END +BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 222)) == 222 END +BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 111)) == 255 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_511, 0)) == 512 END +BEGIN BOOST_PP_SEQ_ELEM(391,BOOST_PP_SEQ_PUSH_FRONT(SEQ_511, 435)) == 391 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_1023, 0)) == 1024 END +BEGIN BOOST_PP_SEQ_ELEM(961,BOOST_PP_SEQ_PUSH_FRONT(SEQ_1023, 435)) == 961 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ_NONE, 79)) == 79 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 199)) == 256 END +BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 99)) == 255 END +BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 99)) == 99 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 275)) == 512 END +BEGIN BOOST_PP_SEQ_ELEM(473,BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 78)) == 474 END +BEGIN BOOST_PP_SEQ_ELEM(511,BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 78)) == 78 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 275)) == 1024 END +BEGIN BOOST_PP_SEQ_ELEM(846,BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 720)) == 847 END +BEGIN BOOST_PP_SEQ_ELEM(1023,BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 311)) == 311 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 0)) == 152 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 2)) == 412 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 3)) == 415 END + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_255, 254)) == 254 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_256, 255)) == 255 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_511, 429)) == 510 END +BEGIN BOOST_PP_SEQ_ELEM(462,BOOST_PP_SEQ_REMOVE(SEQ_512, 374)) == 464 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_1023, 989)) == 1022 END +BEGIN BOOST_PP_SEQ_ELEM(731,BOOST_PP_SEQ_REMOVE(SEQ_1024, 555)) == 733 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ_NONE, 0, 22)) == 22 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 0, 3)) == 3152 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 1, 3)) == 4352 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 3, 3)) == 4153 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 256 END +BEGIN BOOST_PP_SEQ_ELEM(233,BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 234 END +BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 22 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_511, 509, 350)) == 511 END +BEGIN BOOST_PP_SEQ_ELEM(482,BOOST_PP_SEQ_REPLACE(SEQ_512, 436, 33)) == 483 END +BEGIN BOOST_PP_SEQ_ELEM(436,BOOST_PP_SEQ_REPLACE(SEQ_512, 436, 33)) == 33 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_1023, 846, 25)) == 1023 END +BEGIN BOOST_PP_SEQ_ELEM(984,BOOST_PP_SEQ_REPLACE(SEQ_1024, 841, 670)) == 985 END +BEGIN BOOST_PP_SEQ_ELEM(841,BOOST_PP_SEQ_REPLACE(SEQ_1024, 841, 670)) == 670 END + +#endif + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 4)) == 4152 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 2)) == 41 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 1, 2)) == 15 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 2, 2)) == 52 END + +# if BOOST_PP_LIMIT_SEQ == 512 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_SUBSEQ(SEQ_511, 372, 5)) == 5 END +BEGIN BOOST_PP_SEQ_ELEM(14,BOOST_PP_SEQ_SUBSEQ(SEQ_512, 293, 17)) == 308 END + +#endif + +# if BOOST_PP_LIMIT_SEQ == 1024 + +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_SUBSEQ(SEQ_1023, 846, 5)) == 5 END +BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_SEQ_SUBSEQ(SEQ_1024, 843, 19)) == 860 END + +#endif + +# define F2(r, x) + BOOST_PP_SEQ_ELEM(0, x) + 2 - BOOST_PP_SEQ_ELEM(1, x) + +#define ADD_NIL(x) x(nil) + +BEGIN BOOST_PP_SEQ_FOR_EACH_PRODUCT(F2, ((1)(0)) ((2)(3))) == 0 END + +# define L1 (0)(x) +# define L2 (a)(1)(b)(2) +# define L3 (c)(3)(d) + +# define LL (L1)(L2)(L3) + +#define SEQ_APPEND(s, state, elem) state elem +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 0x0a1b2c3d END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 9 END + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ), 2) == 5 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ_NONE),0)) == 1 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_SEQ_TO_LIST(SEQ_NONE)) == 1 END + +# if BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_SEQ_ENUM(SEQ_NONE)) == 0 END + +# else + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_SEQ_ENUM(SEQ_NONE)) == 1 END + +# endif + +BEGIN BOOST_PP_VARIADIC_ELEM(0,BOOST_PP_SEQ_ENUM(SEQ)) == 4 END +BEGIN BOOST_PP_TUPLE_ELEM(2,BOOST_PP_SEQ_ELEM(0,BOOST_PP_VARIADIC_SEQ_TO_SEQ(SEQVAR))) == 8 END diff --git a/test/seq.cxx b/test/seq.cxx deleted file mode 100644 index 26291a71..00000000 --- a/test/seq.cxx +++ /dev/null @@ -1,656 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* Revised by Edward Diener (2011,2020) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include "test.h" - -# define SEQ_NONE () -# define SEQ (4)(1)(5)(2) - -# define SEQ_100 \ - (1)(2)(3)(4)(5)(6)(7)(8)(9) \ - (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ - (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ - (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ - (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ - (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ - (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ - (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ - (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ - (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ - (100) - -# define SEQ_255 \ - (1)(2)(3)(4)(5)(6)(7)(8)(9) \ - (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ - (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ - (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ - (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ - (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ - (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ - (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ - (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ - (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ - (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ - (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ - (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ - (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ - (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ - (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ - (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ - (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ - (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ - (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ - (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ - (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ - (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ - (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ - (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ - (250)(251)(252)(253)(254)(255) - -# define SEQ_256 SEQ_255(256) - -# if BOOST_PP_LIMIT_SEQ == 512 - -# define SEQ_511 \ - (1)(2)(3)(4)(5)(6)(7)(8)(9) \ - (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ - (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ - (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ - (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ - (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ - (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ - (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ - (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ - (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ - (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ - (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ - (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ - (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ - (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ - (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ - (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ - (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ - (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ - (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ - (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ - (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ - (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ - (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ - (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ - (250)(251)(252)(253)(254)(255)(256)(257)(258)(259) \ - (260)(261)(262)(263)(264)(265)(266)(267)(268)(269) \ - (270)(271)(272)(273)(274)(275)(276)(277)(278)(279) \ - (280)(281)(282)(283)(284)(285)(286)(287)(288)(289) \ - (290)(291)(292)(293)(294)(295)(296)(297)(298)(299) \ - (300)(301)(302)(303)(304)(305)(306)(307)(308)(309) \ - (310)(311)(312)(313)(314)(315)(316)(317)(318)(319) \ - (320)(321)(322)(323)(324)(325)(326)(327)(328)(329) \ - (330)(331)(332)(333)(334)(335)(336)(337)(338)(339) \ - (340)(341)(342)(343)(344)(345)(346)(347)(348)(349) \ - (350)(351)(352)(353)(354)(355)(356)(357)(358)(359) \ - (360)(361)(362)(363)(364)(365)(366)(367)(368)(369) \ - (370)(371)(372)(373)(374)(375)(376)(377)(378)(379) \ - (380)(381)(382)(383)(384)(385)(386)(387)(388)(389) \ - (390)(391)(392)(393)(394)(395)(396)(397)(398)(399) \ - (400)(401)(402)(403)(404)(405)(406)(407)(408)(409) \ - (410)(411)(412)(413)(414)(415)(416)(417)(418)(419) \ - (420)(421)(422)(423)(424)(425)(426)(427)(428)(429) \ - (430)(431)(432)(433)(434)(435)(436)(437)(438)(439) \ - (440)(441)(442)(443)(444)(445)(446)(447)(448)(449) \ - (450)(451)(452)(453)(454)(455)(456)(457)(458)(459) \ - (460)(461)(462)(463)(464)(465)(466)(467)(468)(469) \ - (470)(471)(472)(473)(474)(475)(476)(477)(478)(479) \ - (480)(481)(482)(483)(484)(485)(486)(487)(488)(489) \ - (490)(491)(492)(493)(494)(495)(496)(497)(498)(499) \ - (500)(501)(502)(503)(504)(505)(506)(507)(508)(509) \ - (510)(511) - -# define SEQ_512 SEQ_511(512) - -# endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -# define SEQ_1023 \ - (1)(2)(3)(4)(5)(6)(7)(8)(9) \ - (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ - (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ - (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ - (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ - (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ - (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ - (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ - (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ - (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ - (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ - (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ - (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ - (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ - (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ - (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ - (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ - (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ - (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ - (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ - (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ - (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ - (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ - (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ - (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ - (250)(251)(252)(253)(254)(255)(256)(257)(258)(259) \ - (260)(261)(262)(263)(264)(265)(266)(267)(268)(269) \ - (270)(271)(272)(273)(274)(275)(276)(277)(278)(279) \ - (280)(281)(282)(283)(284)(285)(286)(287)(288)(289) \ - (290)(291)(292)(293)(294)(295)(296)(297)(298)(299) \ - (300)(301)(302)(303)(304)(305)(306)(307)(308)(309) \ - (310)(311)(312)(313)(314)(315)(316)(317)(318)(319) \ - (320)(321)(322)(323)(324)(325)(326)(327)(328)(329) \ - (330)(331)(332)(333)(334)(335)(336)(337)(338)(339) \ - (340)(341)(342)(343)(344)(345)(346)(347)(348)(349) \ - (350)(351)(352)(353)(354)(355)(356)(357)(358)(359) \ - (360)(361)(362)(363)(364)(365)(366)(367)(368)(369) \ - (370)(371)(372)(373)(374)(375)(376)(377)(378)(379) \ - (380)(381)(382)(383)(384)(385)(386)(387)(388)(389) \ - (390)(391)(392)(393)(394)(395)(396)(397)(398)(399) \ - (400)(401)(402)(403)(404)(405)(406)(407)(408)(409) \ - (410)(411)(412)(413)(414)(415)(416)(417)(418)(419) \ - (420)(421)(422)(423)(424)(425)(426)(427)(428)(429) \ - (430)(431)(432)(433)(434)(435)(436)(437)(438)(439) \ - (440)(441)(442)(443)(444)(445)(446)(447)(448)(449) \ - (450)(451)(452)(453)(454)(455)(456)(457)(458)(459) \ - (460)(461)(462)(463)(464)(465)(466)(467)(468)(469) \ - (470)(471)(472)(473)(474)(475)(476)(477)(478)(479) \ - (480)(481)(482)(483)(484)(485)(486)(487)(488)(489) \ - (490)(491)(492)(493)(494)(495)(496)(497)(498)(499) \ - (500)(501)(502)(503)(504)(505)(506)(507)(508)(509) \ - (510)(511)(512) \ - (513)(514)(515)(516)(517)(518)(519)(520)(521) \ - (522)(523)(524)(525)(526)(527)(528)(529)(530)(531) \ - (532)(533)(534)(535)(536)(537)(538)(539)(540)(541) \ - (542)(543)(544)(545)(546)(547)(548)(549)(550)(551) \ - (552)(553)(554)(555)(556)(557)(558)(559)(560)(561) \ - (562)(563)(564)(565)(566)(567)(568)(569)(570)(571) \ - (572)(573)(574)(575)(576)(577)(578)(579)(580)(581) \ - (582)(583)(584)(585)(586)(587)(588)(589)(590)(591) \ - (592)(593)(594)(595)(596)(597)(598)(599)(600)(601) \ - (602)(603)(604)(605)(606)(607)(608)(609)(610)(611) \ - (612)(613)(614)(615)(616)(617)(618)(619)(620)(621) \ - (622)(623)(624)(625)(626)(627)(628)(629)(630)(631) \ - (632)(633)(634)(635)(636)(637)(638)(639)(640)(641) \ - (642)(643)(644)(645)(646)(647)(648)(649)(650)(651) \ - (652)(653)(654)(655)(656)(657)(658)(659)(660)(661) \ - (662)(663)(664)(665)(666)(667)(668)(669)(670)(671) \ - (672)(673)(674)(675)(676)(677)(678)(679)(680)(681) \ - (682)(683)(684)(685)(686)(687)(688)(689)(690)(691) \ - (692)(693)(694)(695)(696)(697)(698)(699)(700)(701) \ - (702)(703)(704)(705)(706)(707)(708)(709)(710)(711) \ - (712)(713)(714)(715)(716)(717)(718)(719)(720)(721) \ - (722)(723)(724)(725)(726)(727)(728)(729)(730)(731) \ - (732)(733)(734)(735)(736)(737)(738)(739)(740)(741) \ - (742)(743)(744)(745)(746)(747)(748)(749)(750)(751) \ - (752)(753)(754)(755)(756)(757)(758)(759)(760)(761) \ - (762)(763)(764)(765)(766)(767)(768)(769)(770)(771) \ - (772)(773)(774)(775)(776)(777)(778)(779)(780)(781) \ - (782)(783)(784)(785)(786)(787)(788)(789)(790)(791) \ - (792)(793)(794)(795)(796)(797)(798)(799)(800)(801) \ - (802)(803)(804)(805)(806)(807)(808)(809)(810)(811) \ - (812)(813)(814)(815)(816)(817)(818)(819)(820)(821) \ - (822)(823)(824)(825)(826)(827)(828)(829)(830)(831) \ - (832)(833)(834)(835)(836)(837)(838)(839)(840)(841) \ - (842)(843)(844)(845)(846)(847)(848)(849)(850)(851) \ - (852)(853)(854)(855)(856)(857)(858)(859)(860)(861) \ - (862)(863)(864)(865)(866)(867)(868)(869)(870)(871) \ - (872)(873)(874)(875)(876)(877)(878)(879)(880)(881) \ - (882)(883)(884)(885)(886)(887)(888)(889)(890)(891) \ - (892)(893)(894)(895)(896)(897)(898)(899)(900)(901) \ - (902)(903)(904)(905)(906)(907)(908)(909)(910)(911) \ - (912)(913)(914)(915)(916)(917)(918)(919)(920)(921) \ - (922)(923)(924)(925)(926)(927)(928)(929)(930)(931) \ - (932)(933)(934)(935)(936)(937)(938)(939)(940)(941) \ - (942)(943)(944)(945)(946)(947)(948)(949)(950)(951) \ - (952)(953)(954)(955)(956)(957)(958)(959)(960)(961) \ - (962)(963)(964)(965)(966)(967)(968)(969)(970)(971) \ - (972)(973)(974)(975)(976)(977)(978)(979)(980)(981) \ - (982)(983)(984)(985)(986)(987)(988)(989)(990)(991) \ - (992)(993)(994)(995)(996)(997)(998)(999)(1000)(1001) \ - (1002)(1003)(1004)(1005)(1006)(1007)(1008)(1009)(1010)(1011) \ - (1012)(1013)(1014)(1015)(1016)(1017)(1018)(1019)(1020)(1021) \ - (1022)(1023) - -# define SEQ_1024 SEQ_1023(1024) - -# endif - -# define SEQVAR (4,5,8,3,61)(1,0)(5,22,43)(2)(17,45,33) - -# define REVERSAL(s, x, y) BOOST_PP_SUB(y, x) -# define SUB_S(s, x, y) BOOST_PP_SUB(x, y) -# define ADD_S(s, x, y) BOOST_PP_ADD(x, y) -# define CAT_S(s, x, y) BOOST_PP_CAT(x, BOOST_PP_IS_EMPTY(y)) - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_HEAD(SEQ_NONE)) == 1 END -BEGIN BOOST_PP_SEQ_HEAD(SEQ) == 4 END -BEGIN BOOST_PP_SEQ_HEAD(SEQ_255) == 1 END -BEGIN BOOST_PP_SEQ_HEAD(SEQ_256) == 1 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_HEAD(SEQ_511) == 1 END -BEGIN BOOST_PP_SEQ_HEAD(SEQ_512) == 1 END - -# endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_HEAD(SEQ_1023) == 1 END -BEGIN BOOST_PP_SEQ_HEAD(SEQ_1024) == 1 END - -# endif - -BEGIN BOOST_PP_SEQ_FOLD_LEFT(CAT_S, 1, SEQ_NONE) == 11 END -BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 END -BEGIN BOOST_PP_SEQ_FOLD_RIGHT(CAT_S, 2, SEQ_NONE) == 21 END -BEGIN BOOST_PP_SEQ_FOLD_RIGHT(ADD_S, 0, SEQ) == 12 END -BEGIN BOOST_PP_SEQ_FOLD_RIGHT(REVERSAL, 0, SEQ) == 4 END - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ_NONE))) == 1 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(SEQ_512)) == 512 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(SEQ_1024)) == 1024 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(99, SEQ_100)) == 100 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(255, SEQ_256)) == 256 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N(509, SEQ_511)) == 510 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N(1020, SEQ_1023)) == 1021 END - -#endif - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(1, SEQ_NONE))) == 1 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END -BEGIN BOOST_PP_SEQ_ELEM(50,BOOST_PP_SEQ_FIRST_N(100, SEQ_100)) == 51 END -BEGIN BOOST_PP_SEQ_ELEM(100,BOOST_PP_SEQ_FIRST_N(255, SEQ_255)) == 101 END -BEGIN BOOST_PP_SEQ_ELEM(200,BOOST_PP_SEQ_FIRST_N(256, SEQ_256)) == 201 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_ELEM(7,BOOST_PP_SEQ_FIRST_N(15, SEQ_512)) == 8 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_ELEM(14,BOOST_PP_SEQ_FIRST_N(25, SEQ_1024)) == 15 END - -#endif - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0, SEQ_NONE)) == 1 END -BEGIN BOOST_PP_SEQ_SIZE(SEQ_NONE) == 1 END -BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END -BEGIN BOOST_PP_SEQ_ELEM(20, SEQ_255) == 21 END -BEGIN BOOST_PP_SEQ_ELEM(254, SEQ_255) == 255 END -BEGIN BOOST_PP_SEQ_ELEM(220, SEQ_256) == 221 END -BEGIN BOOST_PP_SEQ_ELEM(255, SEQ_256) == 256 END -BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(SEQ_511) == 511 END -BEGIN BOOST_PP_SEQ_ELEM(476, SEQ_512) == 477 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(SEQ_1023) == 1023 END -BEGIN BOOST_PP_SEQ_ELEM(934, SEQ_1024) == 935 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(CAT_S, 13, SEQ_NONE)) == 131 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -#define STRANS_512(s,data,elem) BOOST_PP_ADD(elem,data) - -BEGIN BOOST_PP_SEQ_ELEM(383, BOOST_PP_SEQ_TRANSFORM(STRANS_512,2,SEQ_512)) == 386 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -#define STRANS_1024(s,data,elem) BOOST_PP_ADD(elem,data) - -BEGIN BOOST_PP_SEQ_ELEM(728, BOOST_PP_SEQ_TRANSFORM(STRANS_1024,1,SEQ_1024)) == 730 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_ELEM(459, BOOST_PP_SEQ_TAIL(SEQ_511)) == 461 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_ELEM(624, BOOST_PP_SEQ_TAIL(SEQ_1023)) == 626 END - -#endif - -# define F1(r, state, x) + x + state -# define FI2(r, state, i, x) BOOST_PP_IIF(BOOST_PP_EQUAL(i,2),+ x + x + state,+ x + state) -BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END -BEGIN BOOST_PP_SEQ_FOR_EACH_I(FI2, 1, SEQ) == 21 END - -# if BOOST_PP_LIMIT_SEQ == 512 && BOOST_PP_LIMIT_FOR == 512 - -# define FE5I2(r, state, i, x) BOOST_PP_EXPR_IIF(BOOST_PP_LESS(i,5),+ x - state) - -BEGIN BOOST_PP_SEQ_FOR_EACH_I(FE5I2, 1, SEQ_512) == 10 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 && BOOST_PP_LIMIT_FOR == 1024 - -# define FE1024(r, state, i, x) BOOST_PP_EXPR_IIF(BOOST_PP_LESS(i,6),+ x - state) - -BEGIN BOOST_PP_SEQ_FOR_EACH_I(FE1024, 2, SEQ_1024) == 9 END - -#endif - -BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, BOOST_PP_SEQ_TO_TUPLE(SEQ_NONE))) == 1 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_SEQ_TO_TUPLE(SEQ_NONE)) == 1 END -BEGIN BOOST_PP_ARRAY_ELEM(3, BOOST_PP_SEQ_TO_ARRAY(SEQ)) == 2 END - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_SEQ_TO_ARRAY(SEQ_NONE))) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_SEQ_TO_ARRAY(SEQ_NONE)) == 1 END - -# define LESS_S(s, x, y) BOOST_PP_LESS(x, y) -# define FILTER_MOD_S(s, data, elem) BOOST_PP_NOT(BOOST_PP_MOD(elem,data)) -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 END -BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_SEQ_FILTER(FILTER_MOD_S, 20, SEQ_100)) == 100 END -BEGIN BOOST_PP_SEQ_ELEM(2,BOOST_PP_SEQ_FILTER(FILTER_MOD_S, 30, SEQ_100)) == 90 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -# define FILTER_EQ_512_S(s, data, elem) \ - BOOST_PP_BITOR \ - ( \ - BOOST_PP_EQUAL(BOOST_PP_DEC(data),elem), \ - BOOST_PP_EQUAL(BOOST_PP_INC(data),elem) \ - ) \ -/* */ - -BEGIN BOOST_PP_SEQ_ELEM(1,BOOST_PP_SEQ_FILTER(FILTER_EQ_512_S, 20, SEQ_512)) == 21 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -# define FILTER_EQ_1024_S(s, data, elem) \ - BOOST_PP_BITOR \ - ( \ - BOOST_PP_EQUAL(BOOST_PP_DEC(data),elem), \ - BOOST_PP_EQUAL(BOOST_PP_INC(data),elem) \ - ) \ -/* */ - -BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_FILTER(FILTER_EQ_1024_S, 100, SEQ_1024)) == 99 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ_NONE, 0, 7)) == 7 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 0, 3)) == 34152 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 2, 3)) == 41352 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 4, 3)) == 41523 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_255, 0, 100)) == 256 END -BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_INSERT(SEQ_255, 0, 100)) == 255 END -BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_INSERT(SEQ_255, 0, 113)) == 113 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_ELEM(511,BOOST_PP_SEQ_INSERT(SEQ_511, 0, 0)) == 511 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_511, 510, 431)) == 512 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_ELEM(1023,BOOST_PP_SEQ_INSERT(SEQ_1023, 0, 0)) == 1023 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_1023, 742, 29)) == 1024 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 255 END -BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 255 END -BEGIN BOOST_PP_SEQ_ELEM(100,BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 101 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_512)) == 511 END -BEGIN BOOST_PP_SEQ_ELEM(437,BOOST_PP_SEQ_POP_BACK(SEQ_511)) == 438 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_1024)) == 1023 END -BEGIN BOOST_PP_SEQ_ELEM(632,BOOST_PP_SEQ_POP_BACK(SEQ_1023)) == 633 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 255 END -BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 2 END -BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 256 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_512)) == 511 END -BEGIN BOOST_PP_SEQ_ELEM(347,BOOST_PP_SEQ_POP_FRONT(SEQ_512)) == 349 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_1024)) == 1023 END -BEGIN BOOST_PP_SEQ_ELEM(875,BOOST_PP_SEQ_POP_FRONT(SEQ_1024)) == 877 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ_NONE, 145)) == 145 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 57)) == 256 END -BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 222)) == 222 END -BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 111)) == 255 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_511, 0)) == 512 END -BEGIN BOOST_PP_SEQ_ELEM(391,BOOST_PP_SEQ_PUSH_FRONT(SEQ_511, 435)) == 391 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_1023, 0)) == 1024 END -BEGIN BOOST_PP_SEQ_ELEM(961,BOOST_PP_SEQ_PUSH_FRONT(SEQ_1023, 435)) == 961 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ_NONE, 79)) == 79 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 199)) == 256 END -BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 99)) == 255 END -BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 99)) == 99 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 275)) == 512 END -BEGIN BOOST_PP_SEQ_ELEM(473,BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 78)) == 474 END -BEGIN BOOST_PP_SEQ_ELEM(511,BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 78)) == 78 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 275)) == 1024 END -BEGIN BOOST_PP_SEQ_ELEM(846,BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 720)) == 847 END -BEGIN BOOST_PP_SEQ_ELEM(1023,BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 311)) == 311 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 0)) == 152 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 2)) == 412 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 3)) == 415 END - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_255, 254)) == 254 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_256, 255)) == 255 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_511, 429)) == 510 END -BEGIN BOOST_PP_SEQ_ELEM(462,BOOST_PP_SEQ_REMOVE(SEQ_512, 374)) == 464 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_1023, 989)) == 1022 END -BEGIN BOOST_PP_SEQ_ELEM(731,BOOST_PP_SEQ_REMOVE(SEQ_1024, 555)) == 733 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ_NONE, 0, 22)) == 22 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 0, 3)) == 3152 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 1, 3)) == 4352 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 3, 3)) == 4153 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 256 END -BEGIN BOOST_PP_SEQ_ELEM(233,BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 234 END -BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 22 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_511, 509, 350)) == 511 END -BEGIN BOOST_PP_SEQ_ELEM(482,BOOST_PP_SEQ_REPLACE(SEQ_512, 436, 33)) == 483 END -BEGIN BOOST_PP_SEQ_ELEM(436,BOOST_PP_SEQ_REPLACE(SEQ_512, 436, 33)) == 33 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_1023, 846, 25)) == 1023 END -BEGIN BOOST_PP_SEQ_ELEM(984,BOOST_PP_SEQ_REPLACE(SEQ_1024, 841, 670)) == 985 END -BEGIN BOOST_PP_SEQ_ELEM(841,BOOST_PP_SEQ_REPLACE(SEQ_1024, 841, 670)) == 670 END - -#endif - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 4)) == 4152 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 2)) == 41 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 1, 2)) == 15 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 2, 2)) == 52 END - -# if BOOST_PP_LIMIT_SEQ == 512 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_SUBSEQ(SEQ_511, 372, 5)) == 5 END -BEGIN BOOST_PP_SEQ_ELEM(14,BOOST_PP_SEQ_SUBSEQ(SEQ_512, 293, 17)) == 308 END - -#endif - -# if BOOST_PP_LIMIT_SEQ == 1024 - -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_SUBSEQ(SEQ_1023, 846, 5)) == 5 END -BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_SEQ_SUBSEQ(SEQ_1024, 843, 19)) == 860 END - -#endif - -# define F2(r, x) + BOOST_PP_SEQ_ELEM(0, x) + 2 - BOOST_PP_SEQ_ELEM(1, x) - -#define ADD_NIL(x) x(nil) - -BEGIN BOOST_PP_SEQ_FOR_EACH_PRODUCT(F2, ((1)(0)) ((2)(3))) == 0 END - -# define L1 (0)(x) -# define L2 (a)(1)(b)(2) -# define L3 (c)(3)(d) - -# define LL (L1)(L2)(L3) - -#define SEQ_APPEND(s, state, elem) state elem -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 0x0a1b2c3d END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 9 END - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ), 2) == 5 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ_NONE),0)) == 1 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_SEQ_TO_LIST(SEQ_NONE)) == 1 END - -# if BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_SEQ_ENUM(SEQ_NONE)) == 0 END - -# else - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_SEQ_ENUM(SEQ_NONE)) == 1 END - -# endif - -BEGIN BOOST_PP_VARIADIC_ELEM(0,BOOST_PP_SEQ_ENUM(SEQ)) == 4 END -BEGIN BOOST_PP_TUPLE_ELEM(2,BOOST_PP_SEQ_ELEM(0,BOOST_PP_VARIADIC_SEQ_TO_SEQ(SEQVAR))) == 8 END diff --git a/test/slot.c b/test/slot.c index 3cc1b2db..f19bda4f 100644 --- a/test/slot.c +++ b/test/slot.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "slot.cxx" +# include "slot.cpp" diff --git a/test/slot.cpp b/test/slot.cpp index 3cc1b2db..c26cfe15 100644 --- a/test/slot.cpp +++ b/test/slot.cpp @@ -9,4 +9,45 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "slot.cxx" +# include +# include "test.h" +# include + +# define X() 4 + +# define BOOST_PP_VALUE 1 + 2 + 3 + X() +# include BOOST_PP_ASSIGN_SLOT(1) + +# undef X + +BEGIN BOOST_PP_SLOT(1) == 10 END + +# define BOOST_PP_VALUE BOOST_PP_SLOT(1) * BOOST_PP_SLOT(1) +# include BOOST_PP_ASSIGN_SLOT(1) + +BEGIN BOOST_PP_SLOT(1) == 100 END + +BEGIN BOOST_PP_COUNTER == 0 END + +#include BOOST_PP_UPDATE_COUNTER() + +BEGIN BOOST_PP_COUNTER == 1 END + +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() + +BEGIN BOOST_PP_COUNTER == 3 END + +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() + +BEGIN BOOST_PP_COUNTER == 6 END + +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() +#include BOOST_PP_UPDATE_COUNTER() + +BEGIN BOOST_PP_COUNTER == 11 END diff --git a/test/slot.cxx b/test/slot.cxx deleted file mode 100644 index c26cfe15..00000000 --- a/test/slot.cxx +++ /dev/null @@ -1,53 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include "test.h" -# include - -# define X() 4 - -# define BOOST_PP_VALUE 1 + 2 + 3 + X() -# include BOOST_PP_ASSIGN_SLOT(1) - -# undef X - -BEGIN BOOST_PP_SLOT(1) == 10 END - -# define BOOST_PP_VALUE BOOST_PP_SLOT(1) * BOOST_PP_SLOT(1) -# include BOOST_PP_ASSIGN_SLOT(1) - -BEGIN BOOST_PP_SLOT(1) == 100 END - -BEGIN BOOST_PP_COUNTER == 0 END - -#include BOOST_PP_UPDATE_COUNTER() - -BEGIN BOOST_PP_COUNTER == 1 END - -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() - -BEGIN BOOST_PP_COUNTER == 3 END - -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() - -BEGIN BOOST_PP_COUNTER == 6 END - -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() -#include BOOST_PP_UPDATE_COUNTER() - -BEGIN BOOST_PP_COUNTER == 11 END diff --git a/test/stringize.c b/test/stringize.c index d00111cd..19ebe364 100644 --- a/test/stringize.c +++ b/test/stringize.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "stringize.cxx" +# include "stringize.cpp" diff --git a/test/stringize.cpp b/test/stringize.cpp index d00111cd..8c8b7630 100644 --- a/test/stringize.cpp +++ b/test/stringize.cpp @@ -9,4 +9,28 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "stringize.cxx" +# include +# include +# include +# if !defined __cplusplus +#include +#endif +# include "test.h" + +#define VDATA 1,2,3,4 +#define NDATA +#define DATA data +#define FDATA(x) BOOST_PP_INC(x) + +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +BEGIN sizeof(BOOST_PP_STRINGIZE(NDATA)) / sizeof(char) == 1 END +BEGIN sizeof(BOOST_PP_WSTRINGIZE(NDATA)) / sizeof(wchar_t) == 1 END +#endif +BEGIN sizeof(BOOST_PP_STRINGIZE(DATA)) / sizeof(char) == 5 END +BEGIN sizeof(BOOST_PP_STRINGIZE(FDATA(1))) / sizeof(char) == 2 END +BEGIN sizeof(BOOST_PP_STRINGIZE(FDATA(9))) / sizeof(char) == 3 END +BEGIN sizeof(BOOST_PP_WSTRINGIZE(DATA)) / sizeof(wchar_t) == 5 END +BEGIN sizeof(BOOST_PP_WSTRINGIZE(FDATA(1))) / sizeof(wchar_t) == 2 END +BEGIN sizeof(BOOST_PP_WSTRINGIZE(FDATA(9))) / sizeof(wchar_t) == 3 END +BEGIN sizeof(BOOST_PP_STRINGIZE(VDATA)) / sizeof(char) == 8 END +BEGIN sizeof(BOOST_PP_WSTRINGIZE(VDATA)) / sizeof(wchar_t) == 8 END diff --git a/test/stringize.cxx b/test/stringize.cxx deleted file mode 100644 index 8c8b7630..00000000 --- a/test/stringize.cxx +++ /dev/null @@ -1,36 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2018. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# if !defined __cplusplus -#include -#endif -# include "test.h" - -#define VDATA 1,2,3,4 -#define NDATA -#define DATA data -#define FDATA(x) BOOST_PP_INC(x) - -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -BEGIN sizeof(BOOST_PP_STRINGIZE(NDATA)) / sizeof(char) == 1 END -BEGIN sizeof(BOOST_PP_WSTRINGIZE(NDATA)) / sizeof(wchar_t) == 1 END -#endif -BEGIN sizeof(BOOST_PP_STRINGIZE(DATA)) / sizeof(char) == 5 END -BEGIN sizeof(BOOST_PP_STRINGIZE(FDATA(1))) / sizeof(char) == 2 END -BEGIN sizeof(BOOST_PP_STRINGIZE(FDATA(9))) / sizeof(char) == 3 END -BEGIN sizeof(BOOST_PP_WSTRINGIZE(DATA)) / sizeof(wchar_t) == 5 END -BEGIN sizeof(BOOST_PP_WSTRINGIZE(FDATA(1))) / sizeof(wchar_t) == 2 END -BEGIN sizeof(BOOST_PP_WSTRINGIZE(FDATA(9))) / sizeof(wchar_t) == 3 END -BEGIN sizeof(BOOST_PP_STRINGIZE(VDATA)) / sizeof(char) == 8 END -BEGIN sizeof(BOOST_PP_WSTRINGIZE(VDATA)) / sizeof(wchar_t) == 8 END diff --git a/test/tuple.c b/test/tuple.c index dc4f932c..9fd283c4 100644 --- a/test/tuple.c +++ b/test/tuple.c @@ -11,4 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "tuple.cxx" +# include "tuple.cpp" diff --git a/test/tuple.cpp b/test/tuple.cpp index dc4f932c..7f99062b 100644 --- a/test/tuple.cpp +++ b/test/tuple.cpp @@ -7,8 +7,713 @@ # * * # ************************************************************************** */ # -# /* Revised by Edward Diener (2011) */ +# /* Revised by Edward Diener (2011,2014,2020) */ # # /* See http://www.boost.org for most recent version. */ # -# include "tuple.cxx" +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "test.h" + +#define TN_GEN_ONE(p) (1) +#define TN_GEN_ZERO(p) (0) +#define TN_TEST_ONE_MORE(parameter,ens) \ + BOOST_PP_IF \ + ( \ + BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(1,0,ens),0), \ + TN_GEN_ONE, \ + TN_GEN_ZERO \ + ) \ + (parameter) \ +/**/ +#define TN_TEST_ONE(parameter,ens) \ + BOOST_PP_TUPLE_ELEM \ + ( \ + 1, \ + 0, \ + TN_TEST_ONE_MORE(parameter,ens) \ + ) \ +/**/ + +BEGIN TN_TEST_ONE(A,(1)) == 1 END +BEGIN TN_TEST_ONE(A,()) == 0 END + +# define TUPLE (0, 1, 2, 3, 4, 5) +# define TUPLE_NONE () +# define TUPLE_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) +# define TUPLE_VERY_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) +# define T2 (+3, /2, +6) + +#if BOOST_PP_LIMIT_TUPLE > 64 + +# define TUPLE_LARGE_128 \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103 ) + +# define TUPLE_VERY_LARGE_128 \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 ) + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +# define TUPLE_LARGE_256 \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141 ) + +# define TUPLE_VERY_LARGE_256 \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ) + +# define TUPLE_VERY_LARGE_255 \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ) + +#endif + +# define CALC(x) BOOST_PP_TUPLE_ELEM(0, x) BOOST_PP_TUPLE_ELEM(1, x) BOOST_PP_TUPLE_ELEM(2, x) +# define TEST_EAT BOOST_PP_TUPLE_EAT()(1, 2) 4 +# define TEST_EAT_NONE BOOST_PP_TUPLE_EAT()() 17 +# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) 6 +# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) 8 + +#if BOOST_PP_LIMIT_TUPLE > 64 + +# define TEST_EAT_LARGE_128 \ + BOOST_PP_TUPLE_EAT() \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ) \ + 113 + +# define TEST_EAT_VERY_LARGE_128 \ + BOOST_PP_TUPLE_EAT() \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 ) \ + 123 + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +# define TEST_EAT_LARGE_256 \ + BOOST_PP_TUPLE_EAT() \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134 ) \ + 75 + +# define TEST_EAT_VERY_LARGE_256 \ + BOOST_PP_TUPLE_EAT() \ + ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ) \ + 224 + +#endif + +// elem + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, TUPLE_NONE)) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(6, 3, TUPLE) == 3 END +BEGIN BOOST_PP_TUPLE_ELEM(6, 5, TUPLE) == 5 END +BEGIN BOOST_PP_TUPLE_ELEM(33, 15, TUPLE_LARGE) == 15 END +BEGIN BOOST_PP_TUPLE_ELEM(33, 27, TUPLE_LARGE) == 27 END +BEGIN BOOST_PP_TUPLE_ELEM(33, 32, TUPLE_LARGE) == 32 END +BEGIN BOOST_PP_TUPLE_ELEM(64, 22, TUPLE_VERY_LARGE) == 22 END +BEGIN BOOST_PP_TUPLE_ELEM(64, 47, TUPLE_VERY_LARGE) == 47 END +BEGIN BOOST_PP_TUPLE_ELEM(64, 63, TUPLE_VERY_LARGE) == 63 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_ELEM(104, 73, TUPLE_LARGE_128) == 73 END +BEGIN BOOST_PP_TUPLE_ELEM(104, 89, TUPLE_LARGE_128) == 89 END +BEGIN BOOST_PP_TUPLE_ELEM(104, 101, TUPLE_LARGE_128) == 101 END +BEGIN BOOST_PP_TUPLE_ELEM(128, 95, TUPLE_VERY_LARGE_128) == 95 END +BEGIN BOOST_PP_TUPLE_ELEM(128, 110, TUPLE_VERY_LARGE_128) == 110 END +BEGIN BOOST_PP_TUPLE_ELEM(128, 126, TUPLE_VERY_LARGE_128) == 126 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_ELEM(142, 83, TUPLE_LARGE_256) == 83 END +BEGIN BOOST_PP_TUPLE_ELEM(142, 131, TUPLE_LARGE_256) == 131 END +BEGIN BOOST_PP_TUPLE_ELEM(142, 140, TUPLE_LARGE_256) == 140 END +BEGIN BOOST_PP_TUPLE_ELEM(256, 174, TUPLE_VERY_LARGE_256) == 174 END +BEGIN BOOST_PP_TUPLE_ELEM(256, 226, TUPLE_VERY_LARGE_256) == 226 END +BEGIN BOOST_PP_TUPLE_ELEM(256, 253, TUPLE_VERY_LARGE_256) == 253 END + +#endif + +// reverse + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, BOOST_PP_TUPLE_REVERSE(1,TUPLE_NONE))) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(6, 2, BOOST_PP_TUPLE_REVERSE(6,TUPLE)) == 3 END +BEGIN BOOST_PP_TUPLE_ELEM(33, 27, BOOST_PP_TUPLE_REVERSE(33,TUPLE_LARGE)) == 5 END +BEGIN BOOST_PP_TUPLE_ELEM(64, 43, BOOST_PP_TUPLE_REVERSE(64,TUPLE_VERY_LARGE)) == 20 END +BEGIN CALC(T2) == 7 END +BEGIN CALC(BOOST_PP_TUPLE_REVERSE(3, T2)) == 6 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_ELEM(104, 83, BOOST_PP_TUPLE_REVERSE(104,TUPLE_LARGE_128)) == 20 END +BEGIN BOOST_PP_TUPLE_ELEM(128, 119, BOOST_PP_TUPLE_REVERSE(128,TUPLE_VERY_LARGE_128)) == 8 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_ELEM(142, 56, BOOST_PP_TUPLE_REVERSE(142,TUPLE_LARGE_256)) == 85 END +BEGIN BOOST_PP_TUPLE_ELEM(256, 212, BOOST_PP_TUPLE_REVERSE(256,TUPLE_VERY_LARGE_256)) == 43 END + +#endif + +// eat + +BEGIN TEST_EAT == 4 END +BEGIN TEST_EAT_NONE == 17 END +BEGIN TEST_EAT_LARGE == 6 END +BEGIN TEST_EAT_VERY_LARGE == 8 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN TEST_EAT_LARGE_128 == 113 END +BEGIN TEST_EAT_VERY_LARGE_128 == 123 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN TEST_EAT_LARGE_256 == 75 END +BEGIN TEST_EAT_VERY_LARGE_256 == 224 END + +#endif + +// to_array + +BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(6,TUPLE)) == 3 END +BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(33,TUPLE_LARGE)) == 29 END +BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(64,TUPLE_VERY_LARGE)) == 61 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0,BOOST_PP_TUPLE_TO_ARRAY(1,TUPLE_NONE))) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_TO_ARRAY(1,TUPLE_NONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_ELEM(65,BOOST_PP_TUPLE_TO_ARRAY(104,TUPLE_LARGE_128)) == 65 END +BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_TUPLE_TO_ARRAY(128,TUPLE_VERY_LARGE_128)) == 117 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_ELEM(131,BOOST_PP_TUPLE_TO_ARRAY(142,TUPLE_LARGE_256)) == 131 END +BEGIN BOOST_PP_ARRAY_ELEM(197,BOOST_PP_TUPLE_TO_ARRAY(256,TUPLE_VERY_LARGE_256)) == 197 END + +#endif + +// to_list + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(6,TUPLE), 2) == 2 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(33,TUPLE_LARGE), 19) == 19 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(64,TUPLE_VERY_LARGE), 62) == 62 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(1,TUPLE_NONE), 0)) == 1 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(1,TUPLE_NONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(104,TUPLE_LARGE_128), 88) == 88 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(128,TUPLE_VERY_LARGE_128), 113) == 113 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(142,TUPLE_LARGE_256), 137) == 137 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(256,TUPLE_VERY_LARGE_256), 235) == 235 END + +#endif + +// to_seq + +BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(6,TUPLE)) == 4 END +BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(33,TUPLE_LARGE)) == 31 END +BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(64,TUPLE_VERY_LARGE)) == 55 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0,BOOST_PP_TUPLE_TO_SEQ(1,TUPLE_NONE))) == 1 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_TO_SEQ(1,TUPLE_NONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_SEQ_ELEM(97,BOOST_PP_TUPLE_TO_SEQ(104,TUPLE_LARGE_128)) == 97 END +BEGIN BOOST_PP_SEQ_ELEM(123,BOOST_PP_TUPLE_TO_SEQ(128,TUPLE_VERY_LARGE_128)) == 123 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_SEQ_ELEM(53,BOOST_PP_TUPLE_TO_SEQ(142,TUPLE_LARGE_256)) == 53 END +BEGIN BOOST_PP_SEQ_ELEM(181,BOOST_PP_TUPLE_TO_SEQ(256,TUPLE_VERY_LARGE_256)) == 181 END + +#endif + +// elem + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(0, TUPLE_NONE)) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(3, TUPLE) == 3 END +BEGIN BOOST_PP_TUPLE_ELEM(5, TUPLE) == 5 END +BEGIN BOOST_PP_TUPLE_ELEM(15, TUPLE_LARGE) == 15 END +BEGIN BOOST_PP_TUPLE_ELEM(27, TUPLE_LARGE) == 27 END +BEGIN BOOST_PP_TUPLE_ELEM(32, TUPLE_LARGE) == 32 END +BEGIN BOOST_PP_TUPLE_ELEM(22, TUPLE_VERY_LARGE) == 22 END +BEGIN BOOST_PP_TUPLE_ELEM(47, TUPLE_VERY_LARGE) == 47 END +BEGIN BOOST_PP_TUPLE_ELEM(63, TUPLE_VERY_LARGE) == 63 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_ELEM(73, TUPLE_LARGE_128) == 73 END +BEGIN BOOST_PP_TUPLE_ELEM(89, TUPLE_LARGE_128) == 89 END +BEGIN BOOST_PP_TUPLE_ELEM(101, TUPLE_LARGE_128) == 101 END +BEGIN BOOST_PP_TUPLE_ELEM(95, TUPLE_VERY_LARGE_128) == 95 END +BEGIN BOOST_PP_TUPLE_ELEM(110, TUPLE_VERY_LARGE_128) == 110 END +BEGIN BOOST_PP_TUPLE_ELEM(126, TUPLE_VERY_LARGE_128) == 126 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_ELEM(83, TUPLE_LARGE_256) == 83 END +BEGIN BOOST_PP_TUPLE_ELEM(131, TUPLE_LARGE_256) == 131 END +BEGIN BOOST_PP_TUPLE_ELEM(140, TUPLE_LARGE_256) == 140 END +BEGIN BOOST_PP_TUPLE_ELEM(174, TUPLE_VERY_LARGE_256) == 174 END +BEGIN BOOST_PP_TUPLE_ELEM(226, TUPLE_VERY_LARGE_256) == 226 END +BEGIN BOOST_PP_TUPLE_ELEM(253, TUPLE_VERY_LARGE_256) == 253 END + +#endif + +// reverse + +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REVERSE(TUPLE_NONE))) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_TUPLE_REVERSE(TUPLE)) == 3 END +BEGIN BOOST_PP_TUPLE_ELEM(27, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE)) == 5 END +BEGIN BOOST_PP_TUPLE_ELEM(43, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE)) == 20 END +BEGIN CALC(BOOST_PP_TUPLE_REVERSE(T2)) == 6 END +BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE))) == 3 END +BEGIN BOOST_PP_VARIADIC_ELEM(27,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE))) == 5 END +BEGIN BOOST_PP_VARIADIC_ELEM(45,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE))) == 18 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_ELEM(83, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE_128)) == 20 END +BEGIN BOOST_PP_TUPLE_ELEM(119, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE_128)) == 8 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_ELEM(56, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE_256)) == 85 END +BEGIN BOOST_PP_TUPLE_ELEM(212, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE_256)) == 43 END + +#endif + +// enum + +# if BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_NONE)) == 0 END + +# else + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_NONE)) == 1 END + +# endif + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE)) == 6 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE)) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE)) == 64 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE_128)) == 104 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE_128)) == 128 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE_256)) == 142 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE_256)) == 256 END + +#endif + +// insert + +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_INSERT(TUPLE_NONE,0,40)) == 40 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_NONE,0,40)) == 2 END + +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_INSERT(TUPLE,2,40)) == 0 END +BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_TUPLE_INSERT(TUPLE,1,40)) == 40 END +BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_TUPLE_INSERT(TUPLE,1,40)) == 1 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE,1,40)) == 7 END + +BEGIN BOOST_PP_TUPLE_ELEM(8, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 8 END +BEGIN BOOST_PP_TUPLE_ELEM(22, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 1000 END +BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 25 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 34 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_ELEM(69, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,76,1000)) == 69 END +BEGIN BOOST_PP_TUPLE_ELEM(101, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,101,1000)) == 1000 END +BEGIN BOOST_PP_TUPLE_ELEM(98, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,96,1000)) == 97 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,84,1000)) == 105 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_ELEM(73, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,134,1000)) == 73 END +BEGIN BOOST_PP_TUPLE_ELEM(141, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,141,1000)) == 1000 END +BEGIN BOOST_PP_TUPLE_ELEM(133, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,39,1000)) == 132 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,121,1000)) == 143 END +BEGIN BOOST_PP_TUPLE_ELEM(227,BOOST_PP_TUPLE_INSERT(TUPLE_VERY_LARGE_255,212,1000)) == 226 END +BEGIN BOOST_PP_TUPLE_ELEM(212,BOOST_PP_TUPLE_INSERT(TUPLE_VERY_LARGE_255,212,1000)) == 1000 END + +#endif + +// pop_back + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE)) == 5 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_LARGE)) == 32 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_VERY_LARGE)) == 63 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_LARGE_128)) == 103 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_VERY_LARGE_128)) == 127 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_LARGE_256)) == 141 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_VERY_LARGE_256)) == 255 END + +#endif + +// pop_front + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE)) == 5 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE)) == 32 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE)) == 63 END + +BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_TUPLE_POP_FRONT(TUPLE)) == 2 END +BEGIN BOOST_PP_TUPLE_ELEM(31, BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE)) == 32 END +BEGIN BOOST_PP_TUPLE_ELEM(55, BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE)) == 56 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_128)) == 103 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_128)) == 127 END +BEGIN BOOST_PP_TUPLE_ELEM(84, BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_128)) == 85 END +BEGIN BOOST_PP_TUPLE_ELEM(117, BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_128)) == 118 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_256)) == 141 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_256)) == 255 END +BEGIN BOOST_PP_TUPLE_ELEM(129, BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_256)) == 130 END +BEGIN BOOST_PP_TUPLE_ELEM(248, BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_256)) == 249 END + +#endif + +// push_back + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_NONE, 1)) == 2 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE, 6)) == 7 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE, 33)) == 34 END +BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_NONE, 1)) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_PUSH_BACK(TUPLE, 6)) == 0 END +BEGIN BOOST_PP_TUPLE_ELEM(33, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE, 33)) == 33 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_128, 66)) == 105 END +BEGIN BOOST_PP_TUPLE_ELEM(104, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_128, 101)) == 101 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_256, 192)) == 143 END +BEGIN BOOST_PP_TUPLE_ELEM(142, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_256, 77)) == 77 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_VERY_LARGE_255, 255)) == 256 END + +#endif + +// push_front + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_NONE, 55)) == 2 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE, 555)) == 7 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE, 666)) == 34 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_NONE, 55)) == 55 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE, 555)) == 555 END +BEGIN BOOST_PP_TUPLE_ELEM(33, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE, 33)) == 32 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_128, 666)) == 105 END +BEGIN BOOST_PP_TUPLE_ELEM(103, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_128, 29)) == 102 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_256, 333)) == 143 END +BEGIN BOOST_PP_TUPLE_ELEM(136, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_256, 47)) == 135 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_VERY_LARGE_255, 4)) == 256 END + +#endif + +// rem + +#if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 + +# if BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(1)()) == 0 END + +# else + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(1)()) == 1 END + +# endif + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(33)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(64)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END + +#else + +#if BOOST_PP_VARIADICS_MSVC +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_REM_CAT() TUPLE_NONE) == 1 END +#else +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_REM() TUPLE_NONE) == 1 END +#endif + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM()(0, 1, 2, 3, 4, 5)) == 6 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END + +#endif + +// rem_ctor + +# if BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_NONE)) == 0 END + +# else + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_NONE)) == 1 END + +# endif + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE)) == 6 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_LARGE)) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_VERY_LARGE)) == 64 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_LARGE_128)) == 104 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_VERY_LARGE_128)) == 128 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_LARGE_256)) == 142 END +BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_VERY_LARGE_256)) == 256 END + +#endif + +// remove + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE, 1)) == 5 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE, 17)) == 32 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE, 27)) == 63 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REMOVE(TUPLE, 2)) == 0 END +BEGIN BOOST_PP_TUPLE_ELEM(29, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE, 25)) == 30 END +BEGIN BOOST_PP_TUPLE_ELEM(62, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE, 48)) == 63 END + +#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE, 0)) == 32 END +BEGIN BOOST_PP_TUPLE_ELEM(25, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE, 0)) == 26 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_128, 100)) == 103 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_128, 123)) == 127 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_128, 0)) == 127 END +BEGIN BOOST_PP_TUPLE_ELEM(102, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_128, 97)) == 103 END +BEGIN BOOST_PP_TUPLE_ELEM(76, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_128, 0)) == 77 END +BEGIN BOOST_PP_TUPLE_ELEM(119, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_128, 115)) == 120 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_256, 133)) == 141 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_256, 0)) == 141 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_256, 241)) == 255 END +BEGIN BOOST_PP_TUPLE_ELEM(140, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_256, 138)) == 141 END +BEGIN BOOST_PP_TUPLE_ELEM(181, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_256, 166)) == 182 END +BEGIN BOOST_PP_TUPLE_ELEM(236, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_256, 0)) == 237 END + +#endif + +// replace + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 27, 1000)) == 64 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_NONE, 0, 71)) == 71 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE, 1, 44)) == 0 END +BEGIN BOOST_PP_TUPLE_ELEM(29, BOOST_PP_TUPLE_REPLACE(TUPLE_LARGE, 29, 999)) == 999 END +BEGIN BOOST_PP_TUPLE_ELEM(38, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 37, 1)) == 38 END +BEGIN BOOST_PP_TUPLE_ELEM(28, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 28, 1)) == 1 END + +#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() + +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 0, 64)) == 64 END +BEGIN BOOST_PP_TUPLE_ELEM(17, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 0, 256)) == 17 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 93, 1000)) == 128 END +BEGIN BOOST_PP_TUPLE_ELEM(89, BOOST_PP_TUPLE_REPLACE(TUPLE_LARGE_128, 89, 111)) == 111 END +BEGIN BOOST_PP_TUPLE_ELEM(73, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 66, 1)) == 73 END +BEGIN BOOST_PP_TUPLE_ELEM(122, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 122, 1)) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 0, 128)) == 128 END +BEGIN BOOST_PP_TUPLE_ELEM(95, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 0, 128)) == 95 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 217, 1000)) == 256 END +BEGIN BOOST_PP_TUPLE_ELEM(136, BOOST_PP_TUPLE_REPLACE(TUPLE_LARGE_256, 136, 999)) == 999 END +BEGIN BOOST_PP_TUPLE_ELEM(192, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 185, 1)) == 192 END +BEGIN BOOST_PP_TUPLE_ELEM(237, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 237, 1)) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 0, 256)) == 256 END +BEGIN BOOST_PP_TUPLE_ELEM(167, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 0, 256)) == 167 END + +#endif + +// size + +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_NONE) == 1 END +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE) == 6 END +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE) == 33 END +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE) == 64 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE_128) == 104 END +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE_128) == 128 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE_256) == 142 END +BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE_256) == 256 END + +#endif + +// to_array + +BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(TUPLE)) == 3 END +BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE)) == 29 END +BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE)) == 61 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_NONE))) == 1 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_TO_ARRAY(TUPLE_NONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_ELEM(65,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE_128)) == 65 END +BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE_128)) == 117 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_ELEM(131,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE_256)) == 131 END +BEGIN BOOST_PP_ARRAY_ELEM(197,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE_256)) == 197 END + +#endif + +// to_list + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE), 2) == 2 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE), 19) == 19 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE), 62) == 62 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_NONE), 0)) == 1 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(TUPLE_NONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE_128), 88) == 88 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE_128), 113) == 113 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE_256), 137) == 137 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE_256), 235) == 235 END + +#endif + +// to_seq + +BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(TUPLE)) == 4 END +BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE)) == 31 END +BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE)) == 55 END +BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0,BOOST_PP_TUPLE_TO_SEQ(TUPLE_NONE))) == 1 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_TO_SEQ(TUPLE_NONE)) == 1 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_SEQ_ELEM(97,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE_128)) == 97 END +BEGIN BOOST_PP_SEQ_ELEM(123,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE_128)) == 123 END + +#endif + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_SEQ_ELEM(53,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE_256)) == 53 END +BEGIN BOOST_PP_SEQ_ELEM(181,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE_256)) == 181 END + +#endif diff --git a/test/tuple.cxx b/test/tuple.cxx deleted file mode 100644 index 08c12a4f..00000000 --- a/test/tuple.cxx +++ /dev/null @@ -1,697 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* Revised by Edward Diener (2011,2014,2020) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include "test.h" -# include "tuple_elem_bug_test.cxx" - -# define TUPLE (0, 1, 2, 3, 4, 5) -# define TUPLE_NONE () -# define TUPLE_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) -# define TUPLE_VERY_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) -# define T2 (+3, /2, +6) - -#if BOOST_PP_LIMIT_TUPLE > 64 - -# define TUPLE_LARGE_128 \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103 ) - -# define TUPLE_VERY_LARGE_128 \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 ) - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -# define TUPLE_LARGE_256 \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141 ) - -# define TUPLE_VERY_LARGE_256 \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ) - -# define TUPLE_VERY_LARGE_255 \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ) - -#endif - -# define CALC(x) BOOST_PP_TUPLE_ELEM(0, x) BOOST_PP_TUPLE_ELEM(1, x) BOOST_PP_TUPLE_ELEM(2, x) -# define TEST_EAT BOOST_PP_TUPLE_EAT()(1, 2) 4 -# define TEST_EAT_NONE BOOST_PP_TUPLE_EAT()() 17 -# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) 6 -# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) 8 - -#if BOOST_PP_LIMIT_TUPLE > 64 - -# define TEST_EAT_LARGE_128 \ - BOOST_PP_TUPLE_EAT() \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ) \ - 113 - -# define TEST_EAT_VERY_LARGE_128 \ - BOOST_PP_TUPLE_EAT() \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 ) \ - 123 - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -# define TEST_EAT_LARGE_256 \ - BOOST_PP_TUPLE_EAT() \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134 ) \ - 75 - -# define TEST_EAT_VERY_LARGE_256 \ - BOOST_PP_TUPLE_EAT() \ - ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ) \ - 224 - -#endif - -// elem - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, TUPLE_NONE)) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(6, 3, TUPLE) == 3 END -BEGIN BOOST_PP_TUPLE_ELEM(6, 5, TUPLE) == 5 END -BEGIN BOOST_PP_TUPLE_ELEM(33, 15, TUPLE_LARGE) == 15 END -BEGIN BOOST_PP_TUPLE_ELEM(33, 27, TUPLE_LARGE) == 27 END -BEGIN BOOST_PP_TUPLE_ELEM(33, 32, TUPLE_LARGE) == 32 END -BEGIN BOOST_PP_TUPLE_ELEM(64, 22, TUPLE_VERY_LARGE) == 22 END -BEGIN BOOST_PP_TUPLE_ELEM(64, 47, TUPLE_VERY_LARGE) == 47 END -BEGIN BOOST_PP_TUPLE_ELEM(64, 63, TUPLE_VERY_LARGE) == 63 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_ELEM(104, 73, TUPLE_LARGE_128) == 73 END -BEGIN BOOST_PP_TUPLE_ELEM(104, 89, TUPLE_LARGE_128) == 89 END -BEGIN BOOST_PP_TUPLE_ELEM(104, 101, TUPLE_LARGE_128) == 101 END -BEGIN BOOST_PP_TUPLE_ELEM(128, 95, TUPLE_VERY_LARGE_128) == 95 END -BEGIN BOOST_PP_TUPLE_ELEM(128, 110, TUPLE_VERY_LARGE_128) == 110 END -BEGIN BOOST_PP_TUPLE_ELEM(128, 126, TUPLE_VERY_LARGE_128) == 126 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_ELEM(142, 83, TUPLE_LARGE_256) == 83 END -BEGIN BOOST_PP_TUPLE_ELEM(142, 131, TUPLE_LARGE_256) == 131 END -BEGIN BOOST_PP_TUPLE_ELEM(142, 140, TUPLE_LARGE_256) == 140 END -BEGIN BOOST_PP_TUPLE_ELEM(256, 174, TUPLE_VERY_LARGE_256) == 174 END -BEGIN BOOST_PP_TUPLE_ELEM(256, 226, TUPLE_VERY_LARGE_256) == 226 END -BEGIN BOOST_PP_TUPLE_ELEM(256, 253, TUPLE_VERY_LARGE_256) == 253 END - -#endif - -// reverse - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, BOOST_PP_TUPLE_REVERSE(1,TUPLE_NONE))) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(6, 2, BOOST_PP_TUPLE_REVERSE(6,TUPLE)) == 3 END -BEGIN BOOST_PP_TUPLE_ELEM(33, 27, BOOST_PP_TUPLE_REVERSE(33,TUPLE_LARGE)) == 5 END -BEGIN BOOST_PP_TUPLE_ELEM(64, 43, BOOST_PP_TUPLE_REVERSE(64,TUPLE_VERY_LARGE)) == 20 END -BEGIN CALC(T2) == 7 END -BEGIN CALC(BOOST_PP_TUPLE_REVERSE(3, T2)) == 6 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_ELEM(104, 83, BOOST_PP_TUPLE_REVERSE(104,TUPLE_LARGE_128)) == 20 END -BEGIN BOOST_PP_TUPLE_ELEM(128, 119, BOOST_PP_TUPLE_REVERSE(128,TUPLE_VERY_LARGE_128)) == 8 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_ELEM(142, 56, BOOST_PP_TUPLE_REVERSE(142,TUPLE_LARGE_256)) == 85 END -BEGIN BOOST_PP_TUPLE_ELEM(256, 212, BOOST_PP_TUPLE_REVERSE(256,TUPLE_VERY_LARGE_256)) == 43 END - -#endif - -// eat - -BEGIN TEST_EAT == 4 END -BEGIN TEST_EAT_NONE == 17 END -BEGIN TEST_EAT_LARGE == 6 END -BEGIN TEST_EAT_VERY_LARGE == 8 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN TEST_EAT_LARGE_128 == 113 END -BEGIN TEST_EAT_VERY_LARGE_128 == 123 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN TEST_EAT_LARGE_256 == 75 END -BEGIN TEST_EAT_VERY_LARGE_256 == 224 END - -#endif - -// to_array - -BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(6,TUPLE)) == 3 END -BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(33,TUPLE_LARGE)) == 29 END -BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(64,TUPLE_VERY_LARGE)) == 61 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0,BOOST_PP_TUPLE_TO_ARRAY(1,TUPLE_NONE))) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_TO_ARRAY(1,TUPLE_NONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_ELEM(65,BOOST_PP_TUPLE_TO_ARRAY(104,TUPLE_LARGE_128)) == 65 END -BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_TUPLE_TO_ARRAY(128,TUPLE_VERY_LARGE_128)) == 117 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_ELEM(131,BOOST_PP_TUPLE_TO_ARRAY(142,TUPLE_LARGE_256)) == 131 END -BEGIN BOOST_PP_ARRAY_ELEM(197,BOOST_PP_TUPLE_TO_ARRAY(256,TUPLE_VERY_LARGE_256)) == 197 END - -#endif - -// to_list - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(6,TUPLE), 2) == 2 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(33,TUPLE_LARGE), 19) == 19 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(64,TUPLE_VERY_LARGE), 62) == 62 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(1,TUPLE_NONE), 0)) == 1 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(1,TUPLE_NONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(104,TUPLE_LARGE_128), 88) == 88 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(128,TUPLE_VERY_LARGE_128), 113) == 113 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(142,TUPLE_LARGE_256), 137) == 137 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(256,TUPLE_VERY_LARGE_256), 235) == 235 END - -#endif - -// to_seq - -BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(6,TUPLE)) == 4 END -BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(33,TUPLE_LARGE)) == 31 END -BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(64,TUPLE_VERY_LARGE)) == 55 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0,BOOST_PP_TUPLE_TO_SEQ(1,TUPLE_NONE))) == 1 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_TO_SEQ(1,TUPLE_NONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_SEQ_ELEM(97,BOOST_PP_TUPLE_TO_SEQ(104,TUPLE_LARGE_128)) == 97 END -BEGIN BOOST_PP_SEQ_ELEM(123,BOOST_PP_TUPLE_TO_SEQ(128,TUPLE_VERY_LARGE_128)) == 123 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_SEQ_ELEM(53,BOOST_PP_TUPLE_TO_SEQ(142,TUPLE_LARGE_256)) == 53 END -BEGIN BOOST_PP_SEQ_ELEM(181,BOOST_PP_TUPLE_TO_SEQ(256,TUPLE_VERY_LARGE_256)) == 181 END - -#endif - -// elem - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(0, TUPLE_NONE)) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(3, TUPLE) == 3 END -BEGIN BOOST_PP_TUPLE_ELEM(5, TUPLE) == 5 END -BEGIN BOOST_PP_TUPLE_ELEM(15, TUPLE_LARGE) == 15 END -BEGIN BOOST_PP_TUPLE_ELEM(27, TUPLE_LARGE) == 27 END -BEGIN BOOST_PP_TUPLE_ELEM(32, TUPLE_LARGE) == 32 END -BEGIN BOOST_PP_TUPLE_ELEM(22, TUPLE_VERY_LARGE) == 22 END -BEGIN BOOST_PP_TUPLE_ELEM(47, TUPLE_VERY_LARGE) == 47 END -BEGIN BOOST_PP_TUPLE_ELEM(63, TUPLE_VERY_LARGE) == 63 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_ELEM(73, TUPLE_LARGE_128) == 73 END -BEGIN BOOST_PP_TUPLE_ELEM(89, TUPLE_LARGE_128) == 89 END -BEGIN BOOST_PP_TUPLE_ELEM(101, TUPLE_LARGE_128) == 101 END -BEGIN BOOST_PP_TUPLE_ELEM(95, TUPLE_VERY_LARGE_128) == 95 END -BEGIN BOOST_PP_TUPLE_ELEM(110, TUPLE_VERY_LARGE_128) == 110 END -BEGIN BOOST_PP_TUPLE_ELEM(126, TUPLE_VERY_LARGE_128) == 126 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_ELEM(83, TUPLE_LARGE_256) == 83 END -BEGIN BOOST_PP_TUPLE_ELEM(131, TUPLE_LARGE_256) == 131 END -BEGIN BOOST_PP_TUPLE_ELEM(140, TUPLE_LARGE_256) == 140 END -BEGIN BOOST_PP_TUPLE_ELEM(174, TUPLE_VERY_LARGE_256) == 174 END -BEGIN BOOST_PP_TUPLE_ELEM(226, TUPLE_VERY_LARGE_256) == 226 END -BEGIN BOOST_PP_TUPLE_ELEM(253, TUPLE_VERY_LARGE_256) == 253 END - -#endif - -// reverse - -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REVERSE(TUPLE_NONE))) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_TUPLE_REVERSE(TUPLE)) == 3 END -BEGIN BOOST_PP_TUPLE_ELEM(27, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE)) == 5 END -BEGIN BOOST_PP_TUPLE_ELEM(43, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE)) == 20 END -BEGIN CALC(BOOST_PP_TUPLE_REVERSE(T2)) == 6 END -BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE))) == 3 END -BEGIN BOOST_PP_VARIADIC_ELEM(27,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE))) == 5 END -BEGIN BOOST_PP_VARIADIC_ELEM(45,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE))) == 18 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_ELEM(83, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE_128)) == 20 END -BEGIN BOOST_PP_TUPLE_ELEM(119, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE_128)) == 8 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_ELEM(56, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE_256)) == 85 END -BEGIN BOOST_PP_TUPLE_ELEM(212, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE_256)) == 43 END - -#endif - -// enum - -# if BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_NONE)) == 0 END - -# else - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_NONE)) == 1 END - -# endif - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE)) == 6 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE)) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE)) == 64 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE_128)) == 104 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE_128)) == 128 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE_256)) == 142 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE_256)) == 256 END - -#endif - -// insert - -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_INSERT(TUPLE_NONE,0,40)) == 40 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_NONE,0,40)) == 2 END - -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_INSERT(TUPLE,2,40)) == 0 END -BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_TUPLE_INSERT(TUPLE,1,40)) == 40 END -BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_TUPLE_INSERT(TUPLE,1,40)) == 1 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE,1,40)) == 7 END - -BEGIN BOOST_PP_TUPLE_ELEM(8, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 8 END -BEGIN BOOST_PP_TUPLE_ELEM(22, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 1000 END -BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 25 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_LARGE,22,1000)) == 34 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_ELEM(69, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,76,1000)) == 69 END -BEGIN BOOST_PP_TUPLE_ELEM(101, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,101,1000)) == 1000 END -BEGIN BOOST_PP_TUPLE_ELEM(98, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,96,1000)) == 97 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_128,84,1000)) == 105 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_ELEM(73, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,134,1000)) == 73 END -BEGIN BOOST_PP_TUPLE_ELEM(141, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,141,1000)) == 1000 END -BEGIN BOOST_PP_TUPLE_ELEM(133, BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,39,1000)) == 132 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_INSERT(TUPLE_LARGE_256,121,1000)) == 143 END -BEGIN BOOST_PP_TUPLE_ELEM(227,BOOST_PP_TUPLE_INSERT(TUPLE_VERY_LARGE_255,212,1000)) == 226 END -BEGIN BOOST_PP_TUPLE_ELEM(212,BOOST_PP_TUPLE_INSERT(TUPLE_VERY_LARGE_255,212,1000)) == 1000 END - -#endif - -// pop_back - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE)) == 5 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_LARGE)) == 32 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_VERY_LARGE)) == 63 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_LARGE_128)) == 103 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_VERY_LARGE_128)) == 127 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_LARGE_256)) == 141 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_BACK(TUPLE_VERY_LARGE_256)) == 255 END - -#endif - -// pop_front - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE)) == 5 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE)) == 32 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE)) == 63 END - -BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_TUPLE_POP_FRONT(TUPLE)) == 2 END -BEGIN BOOST_PP_TUPLE_ELEM(31, BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE)) == 32 END -BEGIN BOOST_PP_TUPLE_ELEM(55, BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE)) == 56 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_128)) == 103 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_128)) == 127 END -BEGIN BOOST_PP_TUPLE_ELEM(84, BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_128)) == 85 END -BEGIN BOOST_PP_TUPLE_ELEM(117, BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_128)) == 118 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_256)) == 141 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_256)) == 255 END -BEGIN BOOST_PP_TUPLE_ELEM(129, BOOST_PP_TUPLE_POP_FRONT(TUPLE_LARGE_256)) == 130 END -BEGIN BOOST_PP_TUPLE_ELEM(248, BOOST_PP_TUPLE_POP_FRONT(TUPLE_VERY_LARGE_256)) == 249 END - -#endif - -// push_back - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_NONE, 1)) == 2 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE, 6)) == 7 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE, 33)) == 34 END -BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_NONE, 1)) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_PUSH_BACK(TUPLE, 6)) == 0 END -BEGIN BOOST_PP_TUPLE_ELEM(33, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE, 33)) == 33 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_128, 66)) == 105 END -BEGIN BOOST_PP_TUPLE_ELEM(104, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_128, 101)) == 101 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_256, 192)) == 143 END -BEGIN BOOST_PP_TUPLE_ELEM(142, BOOST_PP_TUPLE_PUSH_BACK(TUPLE_LARGE_256, 77)) == 77 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_BACK(TUPLE_VERY_LARGE_255, 255)) == 256 END - -#endif - -// push_front - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_NONE, 55)) == 2 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE, 555)) == 7 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE, 666)) == 34 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_NONE, 55)) == 55 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE, 555)) == 555 END -BEGIN BOOST_PP_TUPLE_ELEM(33, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE, 33)) == 32 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_128, 666)) == 105 END -BEGIN BOOST_PP_TUPLE_ELEM(103, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_128, 29)) == 102 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_256, 333)) == 143 END -BEGIN BOOST_PP_TUPLE_ELEM(136, BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_LARGE_256, 47)) == 135 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_PUSH_FRONT(TUPLE_VERY_LARGE_255, 4)) == 256 END - -#endif - -// rem - -#if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 - -# if BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(1)()) == 0 END - -# else - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(1)()) == 1 END - -# endif - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(33)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM(64)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END - -#else - -#if BOOST_PP_VARIADICS_MSVC -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_REM_CAT() TUPLE_NONE) == 1 END -#else -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_REM() TUPLE_NONE) == 1 END -#endif - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM()(0, 1, 2, 3, 4, 5)) == 6 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END - -#endif - -// rem_ctor - -# if BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_NONE)) == 0 END - -# else - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_NONE)) == 1 END - -# endif - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE)) == 6 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_LARGE)) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_VERY_LARGE)) == 64 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_LARGE_128)) == 104 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_VERY_LARGE_128)) == 128 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_LARGE_256)) == 142 END -BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_REM_CTOR(TUPLE_VERY_LARGE_256)) == 256 END - -#endif - -// remove - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE, 1)) == 5 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE, 17)) == 32 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE, 27)) == 63 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REMOVE(TUPLE, 2)) == 0 END -BEGIN BOOST_PP_TUPLE_ELEM(29, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE, 25)) == 30 END -BEGIN BOOST_PP_TUPLE_ELEM(62, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE, 48)) == 63 END - -#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE, 0)) == 32 END -BEGIN BOOST_PP_TUPLE_ELEM(25, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE, 0)) == 26 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_128, 100)) == 103 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_128, 123)) == 127 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_128, 0)) == 127 END -BEGIN BOOST_PP_TUPLE_ELEM(102, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_128, 97)) == 103 END -BEGIN BOOST_PP_TUPLE_ELEM(76, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_128, 0)) == 77 END -BEGIN BOOST_PP_TUPLE_ELEM(119, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_128, 115)) == 120 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_256, 133)) == 141 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_256, 0)) == 141 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_256, 241)) == 255 END -BEGIN BOOST_PP_TUPLE_ELEM(140, BOOST_PP_TUPLE_REMOVE(TUPLE_LARGE_256, 138)) == 141 END -BEGIN BOOST_PP_TUPLE_ELEM(181, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_256, 166)) == 182 END -BEGIN BOOST_PP_TUPLE_ELEM(236, BOOST_PP_TUPLE_REMOVE(TUPLE_VERY_LARGE_256, 0)) == 237 END - -#endif - -// replace - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 27, 1000)) == 64 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_NONE, 0, 71)) == 71 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE, 1, 44)) == 0 END -BEGIN BOOST_PP_TUPLE_ELEM(29, BOOST_PP_TUPLE_REPLACE(TUPLE_LARGE, 29, 999)) == 999 END -BEGIN BOOST_PP_TUPLE_ELEM(38, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 37, 1)) == 38 END -BEGIN BOOST_PP_TUPLE_ELEM(28, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 28, 1)) == 1 END - -#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() - -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 0, 64)) == 64 END -BEGIN BOOST_PP_TUPLE_ELEM(17, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE, 0, 256)) == 17 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 93, 1000)) == 128 END -BEGIN BOOST_PP_TUPLE_ELEM(89, BOOST_PP_TUPLE_REPLACE(TUPLE_LARGE_128, 89, 111)) == 111 END -BEGIN BOOST_PP_TUPLE_ELEM(73, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 66, 1)) == 73 END -BEGIN BOOST_PP_TUPLE_ELEM(122, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 122, 1)) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 0, 128)) == 128 END -BEGIN BOOST_PP_TUPLE_ELEM(95, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_128, 0, 128)) == 95 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 217, 1000)) == 256 END -BEGIN BOOST_PP_TUPLE_ELEM(136, BOOST_PP_TUPLE_REPLACE(TUPLE_LARGE_256, 136, 999)) == 999 END -BEGIN BOOST_PP_TUPLE_ELEM(192, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 185, 1)) == 192 END -BEGIN BOOST_PP_TUPLE_ELEM(237, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 237, 1)) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(0, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 0, 256)) == 256 END -BEGIN BOOST_PP_TUPLE_ELEM(167, BOOST_PP_TUPLE_REPLACE(TUPLE_VERY_LARGE_256, 0, 256)) == 167 END - -#endif - -// size - -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_NONE) == 1 END -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE) == 6 END -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE) == 33 END -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE) == 64 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE_128) == 104 END -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE_128) == 128 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE_256) == 142 END -BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE_256) == 256 END - -#endif - -// to_array - -BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(TUPLE)) == 3 END -BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE)) == 29 END -BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE)) == 61 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_NONE))) == 1 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_TO_ARRAY(TUPLE_NONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_ELEM(65,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE_128)) == 65 END -BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE_128)) == 117 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_ELEM(131,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE_256)) == 131 END -BEGIN BOOST_PP_ARRAY_ELEM(197,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE_256)) == 197 END - -#endif - -// to_list - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE), 2) == 2 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE), 19) == 19 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE), 62) == 62 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_NONE), 0)) == 1 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(TUPLE_NONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE_128), 88) == 88 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE_128), 113) == 113 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE_256), 137) == 137 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE_256), 235) == 235 END - -#endif - -// to_seq - -BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(TUPLE)) == 4 END -BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE)) == 31 END -BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE)) == 55 END -BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0,BOOST_PP_TUPLE_TO_SEQ(TUPLE_NONE))) == 1 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_TO_SEQ(TUPLE_NONE)) == 1 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_SEQ_ELEM(97,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE_128)) == 97 END -BEGIN BOOST_PP_SEQ_ELEM(123,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE_128)) == 123 END - -#endif - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_SEQ_ELEM(53,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE_256)) == 53 END -BEGIN BOOST_PP_SEQ_ELEM(181,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE_256)) == 181 END - -#endif diff --git a/test/tuple_elem_bug_test.cxx b/test/tuple_elem_bug_test.cxx deleted file mode 100644 index 217a6dcf..00000000 --- a/test/tuple_elem_bug_test.cxx +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2014. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include "test.h" - -#define TN_GEN_ONE(p) (1) -#define TN_GEN_ZERO(p) (0) -#define TN_TEST_ONE_MORE(parameter,ens) \ - BOOST_PP_IF \ - ( \ - BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(1,0,ens),0), \ - TN_GEN_ONE, \ - TN_GEN_ZERO \ - ) \ - (parameter) \ -/**/ -#define TN_TEST_ONE(parameter,ens) \ - BOOST_PP_TUPLE_ELEM \ - ( \ - 1, \ - 0, \ - TN_TEST_ONE_MORE(parameter,ens) \ - ) \ -/**/ - -BEGIN TN_TEST_ONE(A,(1)) == 1 END -BEGIN TN_TEST_ONE(A,()) == 0 END diff --git a/test/vaopt.cpp b/test/vaopt.cpp index 4eb6069d..a0f9659d 100644 --- a/test/vaopt.cpp +++ b/test/vaopt.cpp @@ -9,4 +9,80 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "vaopt.cxx" +# include "test.h" +# include + +# if BOOST_PP_VARIADIC_HAS_OPT() + +# include +# include +# include + +#define DATA +#define OBJECT OBJECT2 +#define OBJECT2 +#define FUNC(x) FUNC2(x) +#define FUNC2(x) +#define FUNC_GEN() () +#define FUNC_GEN2(x) () +#define FUNC_GEN3() (&) +#define FUNC_GEN4(x) (y) +#define FUNC_GEN5() (y,z) +#define FUNC_GEN6() anything +#define FUNC_GEN7(x) anything +#define FUNC_GEN8(x,y) (1,2,3) +#define FUNC_GEN9(x,y,z) anything +#define FUNC_GEN10(x) (y) data +#define NAME &name +#define ATUPLE (atuple) +#define ATUPLE_PLUS (atuple) data + +#define TRY_PASS_EMPTY_STD(...) BOOST_PP_VARIADIC_ELEM(0, __VA_OPT__ (0,) 1) +#define TRY_PASS_EMPTY_BOOST(...) BOOST_PP_VARIADIC_ELEM(0,BOOST_PP_VA_OPT((0),(1),__VA_ARGS__)) + +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN2) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN2) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN3) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN3) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN4) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN4) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN5) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN5) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN8) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN8) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN9) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN9) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN10) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN10) == 0 END +BEGIN TRY_PASS_EMPTY_STD(BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_BOOST(BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_STD(DATA BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_BOOST(DATA BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_STD() == 1 END +BEGIN TRY_PASS_EMPTY_BOOST() == 1 END +BEGIN TRY_PASS_EMPTY_STD(DATA) == 1 END +BEGIN TRY_PASS_EMPTY_BOOST(DATA) == 1 END +BEGIN TRY_PASS_EMPTY_STD(x BOOST_PP_EMPTY()) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(x BOOST_PP_EMPTY()) == 0 END +BEGIN TRY_PASS_EMPTY_STD(OBJECT BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_BOOST(OBJECT BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_STD(FUNC(z) BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC(z) BOOST_PP_EMPTY()) == 1 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN6) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN6) == 0 END +BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN7) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN7) == 0 END +BEGIN TRY_PASS_EMPTY_STD(NAME) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(NAME) == 0 END +BEGIN TRY_PASS_EMPTY_STD(ATUPLE) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(ATUPLE) == 0 END +BEGIN TRY_PASS_EMPTY_STD(ATUPLE_PLUS) == 0 END +BEGIN TRY_PASS_EMPTY_BOOST(ATUPLE_PLUS) == 0 END + +# else + +BEGIN 1 == 1 END + +# endif diff --git a/test/vaopt.cxx b/test/vaopt.cxx deleted file mode 100644 index a0f9659d..00000000 --- a/test/vaopt.cxx +++ /dev/null @@ -1,88 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2019. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include "test.h" -# include - -# if BOOST_PP_VARIADIC_HAS_OPT() - -# include -# include -# include - -#define DATA -#define OBJECT OBJECT2 -#define OBJECT2 -#define FUNC(x) FUNC2(x) -#define FUNC2(x) -#define FUNC_GEN() () -#define FUNC_GEN2(x) () -#define FUNC_GEN3() (&) -#define FUNC_GEN4(x) (y) -#define FUNC_GEN5() (y,z) -#define FUNC_GEN6() anything -#define FUNC_GEN7(x) anything -#define FUNC_GEN8(x,y) (1,2,3) -#define FUNC_GEN9(x,y,z) anything -#define FUNC_GEN10(x) (y) data -#define NAME &name -#define ATUPLE (atuple) -#define ATUPLE_PLUS (atuple) data - -#define TRY_PASS_EMPTY_STD(...) BOOST_PP_VARIADIC_ELEM(0, __VA_OPT__ (0,) 1) -#define TRY_PASS_EMPTY_BOOST(...) BOOST_PP_VARIADIC_ELEM(0,BOOST_PP_VA_OPT((0),(1),__VA_ARGS__)) - -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN2) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN2) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN3) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN3) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN4) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN4) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN5) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN5) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN8) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN8) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN9) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN9) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN10) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN10) == 0 END -BEGIN TRY_PASS_EMPTY_STD(BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_BOOST(BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_STD(DATA BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_BOOST(DATA BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_STD() == 1 END -BEGIN TRY_PASS_EMPTY_BOOST() == 1 END -BEGIN TRY_PASS_EMPTY_STD(DATA) == 1 END -BEGIN TRY_PASS_EMPTY_BOOST(DATA) == 1 END -BEGIN TRY_PASS_EMPTY_STD(x BOOST_PP_EMPTY()) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(x BOOST_PP_EMPTY()) == 0 END -BEGIN TRY_PASS_EMPTY_STD(OBJECT BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_BOOST(OBJECT BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_STD(FUNC(z) BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC(z) BOOST_PP_EMPTY()) == 1 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN6) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN6) == 0 END -BEGIN TRY_PASS_EMPTY_STD(FUNC_GEN7) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(FUNC_GEN7) == 0 END -BEGIN TRY_PASS_EMPTY_STD(NAME) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(NAME) == 0 END -BEGIN TRY_PASS_EMPTY_STD(ATUPLE) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(ATUPLE) == 0 END -BEGIN TRY_PASS_EMPTY_STD(ATUPLE_PLUS) == 0 END -BEGIN TRY_PASS_EMPTY_BOOST(ATUPLE_PLUS) == 0 END - -# else - -BEGIN 1 == 1 END - -# endif diff --git a/test/variadic.c b/test/variadic.c index 385f4bb1..f0c26d87 100644 --- a/test/variadic.c +++ b/test/variadic.c @@ -9,4 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "variadic.cxx" +# include "variadic.cpp" diff --git a/test/variadic.cpp b/test/variadic.cpp index 385f4bb1..732ea78a 100644 --- a/test/variadic.cpp +++ b/test/variadic.cpp @@ -9,4 +9,155 @@ # # /* See http://www.boost.org for most recent version. */ # -# include "variadic.cxx" +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "test.h" + +#define VDATA 0,1,2,3,4,5,6 +#define VDATA_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 +#define VDATA_VERY_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 + +#if BOOST_PP_VARIADIC_HAS_OPT() + +#define VDATA_EMPTY + +#endif + +#if BOOST_PP_LIMIT_VARIADIC > 64 + +#define VDATA_LARGE_128 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 + +#define VDATA_VERY_LARGE_128 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 + +#endif + +#if BOOST_PP_LIMIT_VARIADIC > 128 + +#define VDATA_LARGE_256 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138 + +#define VDATA_VERY_LARGE_256 \ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 + +#endif + +BEGIN BOOST_PP_VARIADIC_ELEM(4,VDATA) == 4 END +BEGIN BOOST_PP_VARIADIC_ELEM(6,7,11,3,8,14,85,56,92,165) == 56 END +BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_LARGE) == 29 END +BEGIN BOOST_PP_VARIADIC_ELEM(57,VDATA_VERY_LARGE) == 57 END +BEGIN BOOST_PP_VARIADIC_ELEM(35, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) == 35 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA) == 7 END +BEGIN BOOST_PP_VARIADIC_SIZE(7,11,3,8,14,85,56,92,165) == 9 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) == 33 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE) == 64 END + +#if BOOST_PP_VARIADIC_HAS_OPT() + +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_EMPTY) == 0 END +BEGIN BOOST_PP_VARIADIC_SIZE() == 0 END + +#endif + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA)) == 7 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE)) == 64 END +BEGIN BOOST_PP_ARRAY_ELEM(4,BOOST_PP_VARIADIC_TO_ARRAY(7,11,3,8,14,85,56,92,165)) == 14 END +BEGIN BOOST_PP_ARRAY_ELEM(30,BOOST_PP_VARIADIC_TO_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 30 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA),3) == 3 END +BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63),49) == 49 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(7,11,3,8,14,85,56,92,165)) == 9 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE)) == 33 END +BEGIN BOOST_PP_SEQ_ELEM(5,BOOST_PP_VARIADIC_TO_SEQ(VDATA)) == 5 END +BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE)) == 16 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(3,78,22,11,3)) == 5 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE)) == 64 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA)) == 7 END +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END +BEGIN BOOST_PP_TUPLE_ELEM(8,BOOST_PP_VARIADIC_TO_TUPLE(7,11,3,8,14,85,56,92,165)) == 165 END +BEGIN BOOST_PP_TUPLE_ELEM(27,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE)) == 27 END + +#if BOOST_PP_LIMIT_VARIADIC > 64 + +BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_128) == 47 END +BEGIN BOOST_PP_VARIADIC_ELEM(81,VDATA_LARGE_128) == 81 END +BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_VERY_LARGE_128) == 29 END +BEGIN BOOST_PP_VARIADIC_ELEM(112,VDATA_VERY_LARGE_128) == 112 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE_128) == 96 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE_128) == 128 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_128)) == 96 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_128)) == 128 END +BEGIN BOOST_PP_ARRAY_ELEM(83,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_128)) == 83 END +BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_128)) == 117 END + +#endif + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE_128),79) == 79 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_VERY_LARGE_128)) == 128 END +BEGIN BOOST_PP_SEQ_ELEM(113,BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE_128)) == 113 END +BEGIN BOOST_PP_SEQ_ELEM(82,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_128)) == 82 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_128)) == 96 END + +#if BOOST_PP_LIMIT_TUPLE > 64 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA_VERY_LARGE_128)) == 128 END +BEGIN BOOST_PP_TUPLE_ELEM(77,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE_128)) == 77 END + +#endif + +#endif + +#if BOOST_PP_LIMIT_VARIADIC > 128 + +BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_256) == 47 END +BEGIN BOOST_PP_VARIADIC_ELEM(110,VDATA_LARGE_256) == 110 END +BEGIN BOOST_PP_VARIADIC_ELEM(135,VDATA_LARGE_256) == 135 END +BEGIN BOOST_PP_VARIADIC_ELEM(36,VDATA_VERY_LARGE_256) == 36 END +BEGIN BOOST_PP_VARIADIC_ELEM(95,VDATA_VERY_LARGE_256) == 95 END +BEGIN BOOST_PP_VARIADIC_ELEM(161,VDATA_VERY_LARGE_256) == 161 END +BEGIN BOOST_PP_VARIADIC_ELEM(217,VDATA_VERY_LARGE_256) == 217 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE_256) == 139 END +BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE_256) == 256 END + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_256)) == 139 END +BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_256)) == 256 END +BEGIN BOOST_PP_ARRAY_ELEM(133,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_256)) == 133 END +BEGIN BOOST_PP_ARRAY_ELEM(203,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_256)) == 203 END + +#endif + +BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE_256),137) == 137 END +BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_VERY_LARGE_256)) == 256 END +BEGIN BOOST_PP_SEQ_ELEM(212,BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE_256)) == 212 END +BEGIN BOOST_PP_SEQ_ELEM(129,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_256)) == 129 END +BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_256)) == 139 END + +#if BOOST_PP_LIMIT_TUPLE > 128 + +BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA_VERY_LARGE_256)) == 256 END +BEGIN BOOST_PP_TUPLE_ELEM(133,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE_256)) == 133 END + +#endif + +#endif diff --git a/test/variadic.cxx b/test/variadic.cxx deleted file mode 100644 index 732ea78a..00000000 --- a/test/variadic.cxx +++ /dev/null @@ -1,163 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include "test.h" - -#define VDATA 0,1,2,3,4,5,6 -#define VDATA_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 -#define VDATA_VERY_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 - -#if BOOST_PP_VARIADIC_HAS_OPT() - -#define VDATA_EMPTY - -#endif - -#if BOOST_PP_LIMIT_VARIADIC > 64 - -#define VDATA_LARGE_128 \ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 - -#define VDATA_VERY_LARGE_128 \ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 - -#endif - -#if BOOST_PP_LIMIT_VARIADIC > 128 - -#define VDATA_LARGE_256 \ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138 - -#define VDATA_VERY_LARGE_256 \ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, \ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \ - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \ - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 - -#endif - -BEGIN BOOST_PP_VARIADIC_ELEM(4,VDATA) == 4 END -BEGIN BOOST_PP_VARIADIC_ELEM(6,7,11,3,8,14,85,56,92,165) == 56 END -BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_LARGE) == 29 END -BEGIN BOOST_PP_VARIADIC_ELEM(57,VDATA_VERY_LARGE) == 57 END -BEGIN BOOST_PP_VARIADIC_ELEM(35, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) == 35 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA) == 7 END -BEGIN BOOST_PP_VARIADIC_SIZE(7,11,3,8,14,85,56,92,165) == 9 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) == 33 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE) == 64 END - -#if BOOST_PP_VARIADIC_HAS_OPT() - -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_EMPTY) == 0 END -BEGIN BOOST_PP_VARIADIC_SIZE() == 0 END - -#endif - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA)) == 7 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE)) == 64 END -BEGIN BOOST_PP_ARRAY_ELEM(4,BOOST_PP_VARIADIC_TO_ARRAY(7,11,3,8,14,85,56,92,165)) == 14 END -BEGIN BOOST_PP_ARRAY_ELEM(30,BOOST_PP_VARIADIC_TO_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 30 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA),3) == 3 END -BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63),49) == 49 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(7,11,3,8,14,85,56,92,165)) == 9 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE)) == 33 END -BEGIN BOOST_PP_SEQ_ELEM(5,BOOST_PP_VARIADIC_TO_SEQ(VDATA)) == 5 END -BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE)) == 16 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(3,78,22,11,3)) == 5 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE)) == 64 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA)) == 7 END -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END -BEGIN BOOST_PP_TUPLE_ELEM(8,BOOST_PP_VARIADIC_TO_TUPLE(7,11,3,8,14,85,56,92,165)) == 165 END -BEGIN BOOST_PP_TUPLE_ELEM(27,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE)) == 27 END - -#if BOOST_PP_LIMIT_VARIADIC > 64 - -BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_128) == 47 END -BEGIN BOOST_PP_VARIADIC_ELEM(81,VDATA_LARGE_128) == 81 END -BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_VERY_LARGE_128) == 29 END -BEGIN BOOST_PP_VARIADIC_ELEM(112,VDATA_VERY_LARGE_128) == 112 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE_128) == 96 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE_128) == 128 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_128)) == 96 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_128)) == 128 END -BEGIN BOOST_PP_ARRAY_ELEM(83,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_128)) == 83 END -BEGIN BOOST_PP_ARRAY_ELEM(117,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_128)) == 117 END - -#endif - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE_128),79) == 79 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_VERY_LARGE_128)) == 128 END -BEGIN BOOST_PP_SEQ_ELEM(113,BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE_128)) == 113 END -BEGIN BOOST_PP_SEQ_ELEM(82,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_128)) == 82 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_128)) == 96 END - -#if BOOST_PP_LIMIT_TUPLE > 64 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA_VERY_LARGE_128)) == 128 END -BEGIN BOOST_PP_TUPLE_ELEM(77,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE_128)) == 77 END - -#endif - -#endif - -#if BOOST_PP_LIMIT_VARIADIC > 128 - -BEGIN BOOST_PP_VARIADIC_ELEM(47,VDATA_LARGE_256) == 47 END -BEGIN BOOST_PP_VARIADIC_ELEM(110,VDATA_LARGE_256) == 110 END -BEGIN BOOST_PP_VARIADIC_ELEM(135,VDATA_LARGE_256) == 135 END -BEGIN BOOST_PP_VARIADIC_ELEM(36,VDATA_VERY_LARGE_256) == 36 END -BEGIN BOOST_PP_VARIADIC_ELEM(95,VDATA_VERY_LARGE_256) == 95 END -BEGIN BOOST_PP_VARIADIC_ELEM(161,VDATA_VERY_LARGE_256) == 161 END -BEGIN BOOST_PP_VARIADIC_ELEM(217,VDATA_VERY_LARGE_256) == 217 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE_256) == 139 END -BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE_256) == 256 END - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_256)) == 139 END -BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_256)) == 256 END -BEGIN BOOST_PP_ARRAY_ELEM(133,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_LARGE_256)) == 133 END -BEGIN BOOST_PP_ARRAY_ELEM(203,BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE_256)) == 203 END - -#endif - -BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE_256),137) == 137 END -BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_VERY_LARGE_256)) == 256 END -BEGIN BOOST_PP_SEQ_ELEM(212,BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE_256)) == 212 END -BEGIN BOOST_PP_SEQ_ELEM(129,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_256)) == 129 END -BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE_256)) == 139 END - -#if BOOST_PP_LIMIT_TUPLE > 128 - -BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA_VERY_LARGE_256)) == 256 END -BEGIN BOOST_PP_TUPLE_ELEM(133,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE_256)) == 133 END - -#endif - -#endif