diff --git a/include/boost/preprocessor/tuple.hpp b/include/boost/preprocessor/tuple.hpp index 0f4976b..76fad36 100644 --- a/include/boost/preprocessor/tuple.hpp +++ b/include/boost/preprocessor/tuple.hpp @@ -8,7 +8,7 @@ # */ # # /* Revised by Paul Mensonides (2002) */ -# /* Revised by Edward Diener (2011) */ +# /* Revised by Edward Diener (2011,2013) */ # # /* See http://www.boost.org for most recent version. */ # @@ -18,7 +18,14 @@ # include # include # include +# include +# include +# include +# include +# include # include +# include +# include # include # include # include diff --git a/include/boost/preprocessor/tuple/insert.hpp b/include/boost/preprocessor/tuple/insert.hpp new file mode 100644 index 0000000..ce4544f --- /dev/null +++ b/include/boost/preprocessor/tuple/insert.hpp @@ -0,0 +1,37 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_INSERT_HPP +# define BOOST_PREPROCESSOR_TUPLE_INSERT_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# +# /* BOOST_PP_TUPLE_INSERT */ +# +# define BOOST_PP_TUPLE_INSERT(tuple, i, elem) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_INSERT(BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# /* BOOST_PP_TUPLE_INSERT_D */ +# +# define BOOST_PP_TUPLE_INSERT_D(d, tuple, i, elem) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_INSERT_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_INSERT_HPP diff --git a/include/boost/preprocessor/tuple/pop_back.hpp b/include/boost/preprocessor/tuple/pop_back.hpp new file mode 100644 index 0000000..3ac414b --- /dev/null +++ b/include/boost/preprocessor/tuple/pop_back.hpp @@ -0,0 +1,64 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP +# define BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# include +# include +# include +# +# /* BOOST_PP_TUPLE_POP_BACK */ +# +# define BOOST_PP_TUPLE_POP_BACK(tuple) \ + BOOST_PP_IIF \ + ( \ + BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ + BOOST_PP_TUPLE_POP_BACK_EXEC, \ + BOOST_PP_TUPLE_POP_BACK_RETURN \ + ) \ + (tuple) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_BACK_EXEC(tuple) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_BACK(BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_BACK_RETURN(tuple) tuple +# +# /* BOOST_PP_TUPLE_POP_BACK_Z */ +# +# define BOOST_PP_TUPLE_POP_BACK_Z(z, tuple) \ + BOOST_PP_IIF \ + ( \ + BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ + BOOST_PP_TUPLE_POP_BACK_Z_EXEC, \ + BOOST_PP_TUPLE_POP_BACK_Z_RETURN \ + ) \ + (z, tuple) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_BACK_Z_EXEC(z, tuple) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_BACK_Z(z, BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_BACK_Z_RETURN(z, tuple) tuple +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP diff --git a/include/boost/preprocessor/tuple/pop_front.hpp b/include/boost/preprocessor/tuple/pop_front.hpp new file mode 100644 index 0000000..fafaa77 --- /dev/null +++ b/include/boost/preprocessor/tuple/pop_front.hpp @@ -0,0 +1,65 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP +# define BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# include +# include +# include +# +# +# /* BOOST_PP_TUPLE_POP_FRONT */ +# +# define BOOST_PP_TUPLE_POP_FRONT(tuple) \ + BOOST_PP_IIF \ + ( \ + BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ + BOOST_PP_TUPLE_POP_FRONT_EXEC, \ + BOOST_PP_TUPLE_POP_FRONT_RETURN \ + ) \ + (tuple) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_FRONT_EXEC(tuple) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_FRONT(BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_FRONT_RETURN(tuple) tuple +# +# /* BOOST_PP_TUPLE_POP_FRONT_Z */ +# +# define BOOST_PP_TUPLE_POP_FRONT_Z(z, tuple) \ + BOOST_PP_IIF \ + ( \ + BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ + BOOST_PP_TUPLE_POP_FRONT_Z_EXEC, \ + BOOST_PP_TUPLE_POP_FRONT_Z_RETURN \ + ) \ + (z, tuple) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_FRONT_Z_EXEC(z, tuple) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_FRONT_Z(z, BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define BOOST_PP_TUPLE_POP_FRONT_Z_RETURN(z, tuple) tuple +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP diff --git a/include/boost/preprocessor/tuple/push_back.hpp b/include/boost/preprocessor/tuple/push_back.hpp new file mode 100644 index 0000000..2ae8f63 --- /dev/null +++ b/include/boost/preprocessor/tuple/push_back.hpp @@ -0,0 +1,31 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP +# define BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# +# /* BOOST_PP_TUPLE_PUSH_BACK */ +# +# define BOOST_PP_TUPLE_PUSH_BACK(tuple, elem) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_PUSH_BACK(BOOST_PP_TUPLE_TO_ARRAY(tuple), elem)) \ +/**/ +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP diff --git a/include/boost/preprocessor/tuple/push_front.hpp b/include/boost/preprocessor/tuple/push_front.hpp new file mode 100644 index 0000000..81fea85 --- /dev/null +++ b/include/boost/preprocessor/tuple/push_front.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP +# define BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# +# +# /* BOOST_PP_TUPLE_PUSH_FRONT */ +# +# define BOOST_PP_TUPLE_PUSH_FRONT(tuple, elem) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_PUSH_FRONT(BOOST_PP_TUPLE_TO_ARRAY(tuple), elem)) \ +/**/ +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP diff --git a/include/boost/preprocessor/tuple/remove.hpp b/include/boost/preprocessor/tuple/remove.hpp new file mode 100644 index 0000000..25fa376 --- /dev/null +++ b/include/boost/preprocessor/tuple/remove.hpp @@ -0,0 +1,64 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP +# define BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# include +# include +# include +# +# /* BOOST_PP_TUPLE_REMOVE */ +# +# define BOOST_PP_TUPLE_REMOVE(tuple, i) \ + BOOST_PP_IIF \ + ( \ + BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ + BOOST_PP_TUPLE_REMOVE_EXEC, \ + BOOST_PP_TUPLE_REMOVE_RETURN \ + ) \ + (tuple, i) \ +/**/ +# +# define BOOST_PP_TUPLE_REMOVE_EXEC(tuple, i) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REMOVE(BOOST_PP_TUPLE_TO_ARRAY(tuple), i)) \ +/**/ +# +# define BOOST_PP_TUPLE_REMOVE_RETURN(tuple, i) tuple +# +# /* BOOST_PP_TUPLE_REMOVE_D */ +# +# define BOOST_PP_TUPLE_REMOVE_D(d, tuple, i) \ + BOOST_PP_IIF \ + ( \ + BOOST_PP_GREATER_D(d, BOOST_PP_TUPLE_SIZE(tuple), 1), \ + BOOST_PP_TUPLE_REMOVE_D_EXEC, \ + BOOST_PP_TUPLE_REMOVE_D_RETURN \ + ) \ + (d, tuple, i) \ +/**/ +# +# define BOOST_PP_TUPLE_REMOVE_D_EXEC(d, tuple, i) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REMOVE_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i)) \ +/**/ +# +# define BOOST_PP_TUPLE_REMOVE_D_RETURN(d, tuple, i) tuple +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP diff --git a/include/boost/preprocessor/tuple/replace.hpp b/include/boost/preprocessor/tuple/replace.hpp new file mode 100644 index 0000000..320ef9e --- /dev/null +++ b/include/boost/preprocessor/tuple/replace.hpp @@ -0,0 +1,37 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * 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. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP +# define BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP +# +# include +# +# if BOOST_PP_VARIADICS +# +# include +# include +# include +# +# /* BOOST_PP_TUPLE_REPLACE */ +# +# define BOOST_PP_TUPLE_REPLACE(tuple, i, elem) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REPLACE(BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# /* BOOST_PP_TUPLE_REPLACE_D */ +# +# define BOOST_PP_TUPLE_REPLACE_D(d, tuple, i, elem) \ + BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REPLACE_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# endif // BOOST_PP_VARIADICS +# +# endif // BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP diff --git a/test/arithmetic.c b/test/arithmetic.c index 4512314..53a071e 100644 --- a/test/arithmetic.c +++ b/test/arithmetic.c @@ -9,54 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include - -/* 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 - -/* 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 - -/* 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 - -/* 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 - -/* 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 +# include diff --git a/test/arithmetic.cpp b/test/arithmetic.cpp index ae12227..53a071e 100644 --- a/test/arithmetic.cpp +++ b/test/arithmetic.cpp @@ -9,54 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include - -// 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 - -// 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 - -// 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 - -// 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 - -// 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 +# include diff --git a/test/arithmetic.cxx b/test/arithmetic.cxx new file mode 100644 index 0000000..4512314 --- /dev/null +++ b/test/arithmetic.cxx @@ -0,0 +1,62 @@ +# /* ************************************************************************** +# * * +# * (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 + +/* 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 + +/* 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 + +/* 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 + +/* 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 + +/* 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 diff --git a/test/array.c b/test/array.c index 3fe3a91..9150747 100644 --- a/test/array.c +++ b/test/array.c @@ -11,83 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# if BOOST_PP_VARIADICS -# include -# include -# endif - -# 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)) - -// element access - -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 - -// enum - -# if BOOST_PP_VARIADICS - -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 - -# 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 - -// to_seq - -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 - -// to_tuple - -# if BOOST_PP_VARIADICS - -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 - -# else - -BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END -BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END -BEGIN BOOST_PP_TUPLE_ELEM(64, 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 - -# endif +# include diff --git a/test/array.cpp b/test/array.cpp index 3fe3a91..9150747 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -11,83 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# if BOOST_PP_VARIADICS -# include -# include -# endif - -# 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)) - -// element access - -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 - -// enum - -# if BOOST_PP_VARIADICS - -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 - -# 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 - -// to_seq - -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 - -// to_tuple - -# if BOOST_PP_VARIADICS - -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 - -# else - -BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END -BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END -BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END -BEGIN BOOST_PP_TUPLE_ELEM(64, 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 - -# endif +# include diff --git a/test/array.cxx b/test/array.cxx new file mode 100644 index 0000000..3fe3a91 --- /dev/null +++ b/test/array.cxx @@ -0,0 +1,93 @@ +# /* ************************************************************************** +# * * +# * (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 +# if BOOST_PP_VARIADICS +# include +# include +# endif + +# 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)) + +// element access + +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 + +// enum + +# if BOOST_PP_VARIADICS + +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 + +# 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 + +// to_seq + +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 + +// to_tuple + +# if BOOST_PP_VARIADICS + +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 + +# else + +BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END +BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END +BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END +BEGIN BOOST_PP_TUPLE_ELEM(64, 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 + +# endif diff --git a/test/comparison.c b/test/comparison.c index 77e7b1a..5f7daea 100644 --- a/test/comparison.c +++ b/test/comparison.c @@ -9,37 +9,5 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include +# include -/* equality */ - -BEGIN BOOST_PP_EQUAL(2, 0) == 0 END -BEGIN BOOST_PP_EQUAL(2, 2) == 1 END - -/* inequality */ - -BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END -BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END - -/* less */ - -BEGIN BOOST_PP_LESS(2, 1) == 0 END -BEGIN BOOST_PP_LESS(1, 2) == 1 END - -/* 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 - -/* greater */ - -BEGIN BOOST_PP_GREATER(2, 1) == 1 END -BEGIN BOOST_PP_GREATER(1, 2) == 0 END - -/* 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 diff --git a/test/comparison.cpp b/test/comparison.cpp index 411b9e8..40720c6 100644 --- a/test/comparison.cpp +++ b/test/comparison.cpp @@ -9,37 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -// equality - -BEGIN BOOST_PP_EQUAL(2, 0) == 0 END -BEGIN BOOST_PP_EQUAL(2, 2) == 1 END - -// inequality - -BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END -BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END - -// less - -BEGIN BOOST_PP_LESS(2, 1) == 0 END -BEGIN BOOST_PP_LESS(1, 2) == 1 END - -// 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 - -// greater - -BEGIN BOOST_PP_GREATER(2, 1) == 1 END -BEGIN BOOST_PP_GREATER(1, 2) == 0 END - -// 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 +# include diff --git a/test/comparison.cxx b/test/comparison.cxx new file mode 100644 index 0000000..77e7b1a --- /dev/null +++ b/test/comparison.cxx @@ -0,0 +1,45 @@ +# /* ************************************************************************** +# * * +# * (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 + +/* equality */ + +BEGIN BOOST_PP_EQUAL(2, 0) == 0 END +BEGIN BOOST_PP_EQUAL(2, 2) == 1 END + +/* inequality */ + +BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END +BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END + +/* less */ + +BEGIN BOOST_PP_LESS(2, 1) == 0 END +BEGIN BOOST_PP_LESS(1, 2) == 1 END + +/* 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 + +/* greater */ + +BEGIN BOOST_PP_GREATER(2, 1) == 1 END +BEGIN BOOST_PP_GREATER(1, 2) == 0 END + +/* 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 diff --git a/test/control.c b/test/control.c index 0a2bb76..db729d9 100644 --- a/test/control.c +++ b/test/control.c @@ -9,32 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include - -# 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 +# include diff --git a/test/control.cpp b/test/control.cpp index 0a2bb76..db729d9 100644 --- a/test/control.cpp +++ b/test/control.cpp @@ -9,32 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include - -# 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 +# include diff --git a/test/control.cxx b/test/control.cxx new file mode 100644 index 0000000..0a2bb76 --- /dev/null +++ b/test/control.cxx @@ -0,0 +1,40 @@ +# /* ************************************************************************** +# * * +# * (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 + +# 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 diff --git a/test/debug.c b/test/debug.c index 6c4c5fa..7325e33 100644 --- a/test/debug.c +++ b/test/debug.c @@ -9,13 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -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 +# include diff --git a/test/debug.cpp b/test/debug.cpp index 6c4c5fa..7325e33 100644 --- a/test/debug.cpp +++ b/test/debug.cpp @@ -9,13 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -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 +# include diff --git a/test/debug.cxx b/test/debug.cxx new file mode 100644 index 0000000..6c4c5fa --- /dev/null +++ b/test/debug.cxx @@ -0,0 +1,21 @@ +# /* ************************************************************************** +# * * +# * (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 + +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 31f7c77..25cef08 100644 --- a/test/facilities.c +++ b/test/facilities.c @@ -9,20 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include - -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_CAT(BOOST_PP_INTERCEPT, 2) 1 == 1 END +# include diff --git a/test/facilities.cpp b/test/facilities.cpp index 31f7c77..25cef08 100644 --- a/test/facilities.cpp +++ b/test/facilities.cpp @@ -9,20 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include - -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_CAT(BOOST_PP_INTERCEPT, 2) 1 == 1 END +# include diff --git a/test/facilities.cxx b/test/facilities.cxx new file mode 100644 index 0000000..31f7c77 --- /dev/null +++ b/test/facilities.cxx @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (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 + +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_CAT(BOOST_PP_INTERCEPT, 2) 1 == 1 END diff --git a/test/list.c b/test/list.c index 3e83a04..23bb7b1 100644 --- a/test/list.c +++ b/test/list.c @@ -11,51 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# include -# include -# include - -# define LIST (4, (1, (5, (2, BOOST_PP_NIL)))) - -# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x) - -BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END -BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 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_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END - -BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END -BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END - -# define F1(r, state, x) + x + state -BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 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 - -# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x) -BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END - -# 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))) - -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_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END +# include diff --git a/test/list.cpp b/test/list.cpp index 3e83a04..23bb7b1 100644 --- a/test/list.cpp +++ b/test/list.cpp @@ -11,51 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# include -# include -# include - -# define LIST (4, (1, (5, (2, BOOST_PP_NIL)))) - -# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x) - -BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END -BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 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_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END - -BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END -BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END - -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END -BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END - -# define F1(r, state, x) + x + state -BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 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 - -# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x) -BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END - -# 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))) - -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_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END +# include diff --git a/test/list.cxx b/test/list.cxx new file mode 100644 index 0000000..3e83a04 --- /dev/null +++ b/test/list.cxx @@ -0,0 +1,61 @@ +# /* ************************************************************************** +# * * +# * (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 + +# define LIST (4, (1, (5, (2, BOOST_PP_NIL)))) + +# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x) + +BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END +BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 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_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END + +BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END +BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END + +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END +BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END + +# define F1(r, state, x) + x + state +BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 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 + +# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x) +BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END + +# 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))) + +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_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END diff --git a/test/logical.c b/test/logical.c index ec770a5..9f50287 100644 --- a/test/logical.c +++ b/test/logical.c @@ -9,28 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -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 +# include diff --git a/test/logical.cpp b/test/logical.cpp index ec770a5..9f50287 100644 --- a/test/logical.cpp +++ b/test/logical.cpp @@ -9,28 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -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 +# include diff --git a/test/logical.cxx b/test/logical.cxx new file mode 100644 index 0000000..ec770a5 --- /dev/null +++ b/test/logical.cxx @@ -0,0 +1,36 @@ +# /* ************************************************************************** +# * * +# * (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 + +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 diff --git a/test/selection.c b/test/selection.c index b528934..f8fdaba 100644 --- a/test/selection.c +++ b/test/selection.c @@ -9,13 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -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 +# include diff --git a/test/selection.cpp b/test/selection.cpp index b528934..f8fdaba 100644 --- a/test/selection.cpp +++ b/test/selection.cpp @@ -9,13 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include - -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 +# include diff --git a/test/selection.cxx b/test/selection.cxx new file mode 100644 index 0000000..b528934 --- /dev/null +++ b/test/selection.cxx @@ -0,0 +1,21 @@ +# /* ************************************************************************** +# * * +# * (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 + +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 diff --git a/test/seq.c b/test/seq.c index 819ccb2..e36c5d1 100644 --- a/test/seq.c +++ b/test/seq.c @@ -11,80 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# include -# include - -# define SEQ (4)(1)(5)(2) - -# 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) - -BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 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_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END - -BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END -BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END - -# define F1(r, state, x) + x + state -BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END - -BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END - -# define LESS_S(s, x, y) BOOST_PP_LESS(x, y) -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 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_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END - -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_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_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 - -# 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 +# include diff --git a/test/seq.cpp b/test/seq.cpp index 819ccb2..e36c5d1 100644 --- a/test/seq.cpp +++ b/test/seq.cpp @@ -11,80 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# include -# include - -# define SEQ (4)(1)(5)(2) - -# 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) - -BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 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_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END - -BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END -BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END - -# define F1(r, state, x) + x + state -BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END - -BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END - -# define LESS_S(s, x, y) BOOST_PP_LESS(x, y) -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 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_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END - -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END -BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END - -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_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_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 - -# 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 +# include diff --git a/test/seq.cxx b/test/seq.cxx new file mode 100644 index 0000000..819ccb2 --- /dev/null +++ b/test/seq.cxx @@ -0,0 +1,90 @@ +# /* ************************************************************************** +# * * +# * (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 + +# define SEQ (4)(1)(5)(2) + +# 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) + +BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 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_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END + +BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END +BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END + +# define F1(r, state, x) + x + state +BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END + +BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END + +# define LESS_S(s, x, y) BOOST_PP_LESS(x, y) +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 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_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END + +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END +BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END + +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_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_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 + +# 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 diff --git a/test/slot.c b/test/slot.c index d4aee49..4b97bcd 100644 --- a/test/slot.c +++ b/test/slot.c @@ -9,19 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# 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 +# include diff --git a/test/slot.cpp b/test/slot.cpp index d4aee49..4b97bcd 100644 --- a/test/slot.cpp +++ b/test/slot.cpp @@ -9,19 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# 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 +# include diff --git a/test/slot.cxx b/test/slot.cxx new file mode 100644 index 0000000..d4aee49 --- /dev/null +++ b/test/slot.cxx @@ -0,0 +1,27 @@ +# /* ************************************************************************** +# * * +# * (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 + +# 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 diff --git a/test/tuple.c b/test/tuple.c index 598e09b..e9864a0 100644 --- a/test/tuple.c +++ b/test/tuple.c @@ -11,94 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# if BOOST_PP_VARIADICS -# include -# include -# endif -# include - -# define TUPLE (0, 1, 2, 3, 4, 5) -# 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_VARIADICS - -# 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_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 - -#else - -# define CALC(x) BOOST_PP_TUPLE_ELEM(3, 0, x) BOOST_PP_TUPLE_ELEM(3, 1, x) BOOST_PP_TUPLE_ELEM(3, 2, x) -# define TEST_EAT BOOST_PP_TUPLE_EAT(2)(1, 2) 4 -# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT(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) 6 -# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT(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) 8 - -#endif - -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 -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 -BEGIN TEST_EAT == 4 END -BEGIN TEST_EAT_LARGE == 6 END -BEGIN TEST_EAT_VERY_LARGE == 8 END -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_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_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 - -#if BOOST_PP_VARIADICS - -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 -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 -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 -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 -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_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_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 - -#endif +# include diff --git a/test/tuple.cpp b/test/tuple.cpp index 598e09b..e9864a0 100644 --- a/test/tuple.cpp +++ b/test/tuple.cpp @@ -11,94 +11,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# if BOOST_PP_VARIADICS -# include -# include -# endif -# include - -# define TUPLE (0, 1, 2, 3, 4, 5) -# 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_VARIADICS - -# 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_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 - -#else - -# define CALC(x) BOOST_PP_TUPLE_ELEM(3, 0, x) BOOST_PP_TUPLE_ELEM(3, 1, x) BOOST_PP_TUPLE_ELEM(3, 2, x) -# define TEST_EAT BOOST_PP_TUPLE_EAT(2)(1, 2) 4 -# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT(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) 6 -# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT(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) 8 - -#endif - -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 -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 -BEGIN TEST_EAT == 4 END -BEGIN TEST_EAT_LARGE == 6 END -BEGIN TEST_EAT_VERY_LARGE == 8 END -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_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_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 - -#if BOOST_PP_VARIADICS - -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 -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 -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 -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 -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_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_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 - -#endif +# include diff --git a/test/tuple.cxx b/test/tuple.cxx new file mode 100644 index 0000000..598e09b --- /dev/null +++ b/test/tuple.cxx @@ -0,0 +1,104 @@ +# /* ************************************************************************** +# * * +# * (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 +# if BOOST_PP_VARIADICS +# include +# include +# endif +# include + +# define TUPLE (0, 1, 2, 3, 4, 5) +# 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_VARIADICS + +# 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_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 + +#else + +# define CALC(x) BOOST_PP_TUPLE_ELEM(3, 0, x) BOOST_PP_TUPLE_ELEM(3, 1, x) BOOST_PP_TUPLE_ELEM(3, 2, x) +# define TEST_EAT BOOST_PP_TUPLE_EAT(2)(1, 2) 4 +# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT(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) 6 +# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT(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) 8 + +#endif + +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 +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 +BEGIN TEST_EAT == 4 END +BEGIN TEST_EAT_LARGE == 6 END +BEGIN TEST_EAT_VERY_LARGE == 8 END +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_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_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 + +#if BOOST_PP_VARIADICS + +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 +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 +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 +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 +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_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_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 + +#endif diff --git a/test/variadic.c b/test/variadic.c index e1a3a15..a9d2532 100644 --- a/test/variadic.c +++ b/test/variadic.c @@ -9,48 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -#if BOOST_PP_VARIADICS - -#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 - -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 -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 - -#endif +# include diff --git a/test/variadic.cpp b/test/variadic.cpp index e1a3a15..a9d2532 100644 --- a/test/variadic.cpp +++ b/test/variadic.cpp @@ -9,48 +9,4 @@ # # /* See http://www.boost.org for most recent version. */ # -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -#if BOOST_PP_VARIADICS - -#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 - -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 -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 - -#endif +# include diff --git a/test/variadic.cxx b/test/variadic.cxx new file mode 100644 index 0000000..e1a3a15 --- /dev/null +++ b/test/variadic.cxx @@ -0,0 +1,56 @@ +# /* ************************************************************************** +# * * +# * (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 + +#if BOOST_PP_VARIADICS + +#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 + +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 +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 + +#endif