Updated iteration tests for 512 maximum

This commit is contained in:
Edward Diener
2020-07-25 12:43:39 -04:00
parent 42a283d112
commit ea15d11d2f
3 changed files with 105 additions and 6 deletions

View File

@ -12,7 +12,10 @@
# if !BOOST_PP_IS_ITERATING
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/comparison/equal.hpp>
# include <boost/preprocessor/control/expr_iif.hpp>
# include <boost/preprocessor/iteration.hpp>
# include <boost/preprocessor/logical/bitor.hpp>
# include <libs/preprocessor/test/test.h>
#
# define NO_FLAGS
@ -28,6 +31,60 @@
# define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 5, <libs/preprocessor/test/iteration.h>, 0x0002))
# include BOOST_PP_ITERATE()
#
# if BOOST_PP_LIMIT_ITERATION > 256
#
# define ITER100S(n) \
BOOST_PP_BITOR \
( \
BOOST_PP_BITOR \
( \
BOOST_PP_EQUAL(n,100), \
BOOST_PP_EQUAL(n,200) \
), \
BOOST_PP_BITOR \
( \
BOOST_PP_BITOR \
( \
BOOST_PP_EQUAL(n,300), \
BOOST_PP_EQUAL(n,400) \
), \
BOOST_PP_EQUAL(n,500) \
) \
) \
/* */
#
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, 512, <libs/preprocessor/test/iteration.h>, 0x0003))
# include BOOST_PP_ITERATE()
#
# undef ITER100S
#
# define ITER50S(n) \
BOOST_PP_BITOR \
( \
BOOST_PP_BITOR \
( \
BOOST_PP_EQUAL(n,450), \
BOOST_PP_EQUAL(n,350) \
), \
BOOST_PP_BITOR \
( \
BOOST_PP_BITOR \
( \
BOOST_PP_EQUAL(n,250), \
BOOST_PP_EQUAL(n,150) \
), \
BOOST_PP_EQUAL(n,50) \
) \
) \
/* */
#
# define BOOST_PP_ITERATION_PARAMS_1 (4, (512, 0, <libs/preprocessor/test/iteration.h>, 0x0004))
# include BOOST_PP_ITERATE()
#
# undef ITER50S
#
# endif
#
# else
# if defined NO_FLAGS
@ -49,6 +106,36 @@ struct BOOST_PP_CAT(Y, BOOST_PP_ITERATION()) { };
# define BOOST_PP_ITERATION_PARAMS_2 (3, (1, BOOST_PP_ITERATION(), <libs/preprocessor/test/iteration.h>))
# include BOOST_PP_ITERATE()
# elif BOOST_PP_ITERATION_DEPTH() == 1 \
&& BOOST_PP_ITERATION_FLAGS() == 0x0003
#define TEST_ITER_F(n) \
BOOST_PP_EXPR_IIF \
( \
ITER100S(n), \
struct BOOST_PP_CAT(iter_512_f,n) { }; \
) \
/* */
TEST_ITER_F(BOOST_PP_ITERATION())
# undef TEST_ITER_F
# elif BOOST_PP_ITERATION_DEPTH() == 1 \
&& BOOST_PP_ITERATION_FLAGS() == 0x0004
#define TEST_ITER_B(n) \
BOOST_PP_EXPR_IIF \
( \
ITER50S(n), \
struct BOOST_PP_CAT(iter_512_b,n) { }; \
) \
/* */
TEST_ITER_B(BOOST_PP_ITERATION())
# undef TEST_ITER_B
# elif BOOST_PP_ITERATION_DEPTH() == 2 \
&& BOOST_PP_FRAME_FLAGS(1) == 0x0002