From ea15d11d2fa9fef637d7a52456bb66c08c03e791 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sat, 25 Jul 2020 12:43:39 -0400 Subject: [PATCH] Updated iteration tests for 512 maximum --- test/Jamfile.v2 | 12 +++---- test/iteration.cpp | 12 +++++++ test/iteration.h | 87 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 6 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 114fdac..4d43b5a 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -81,12 +81,12 @@ alias preprocessor_number_512 [ compile control.cpp : BOOST_PP_LIMIT_MAG=512 : control_num ] [ compile debug.cpp : BOOST_PP_LIMIT_MAG=512 : debug_num ] [ compile facilities.cpp : BOOST_PP_LIMIT_MAG=512 : facilities_num ] - [ compile iteration.cpp : BOOST_PP_LIMIT_MAG=512 : iteration_num ] + [ compile iteration.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_LIMIT_ITERATION=512 : iteration_num ] [ compile list.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_LIMIT_FOR=512 : list_num ] [ compile logical.cpp : BOOST_PP_LIMIT_MAG=512 : logical_num ] [ compile repetition.cpp : BOOST_PP_LIMIT_MAG=512 : repetition_num ] [ compile selection.cpp : BOOST_PP_LIMIT_MAG=512 : selection_num ] - [ compile seq.cpp : BOOST_PP_LIMIT_MAG=512 : seq_num ] + [ compile seq.cpp : BOOST_PP_LIMIT_SEQ=512 : seq_num ] [ compile slot.cpp : BOOST_PP_LIMIT_MAG=512 : slot_num ] [ compile stringize.cpp : BOOST_PP_LIMIT_MAG=512 : stringize_num ] [ compile tuple.cpp : BOOST_PP_LIMIT_MAG=512 : tuple_num ] @@ -129,12 +129,12 @@ alias preprocessor_number_nvm_512 [ compile control.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : control_nvm_num ] [ compile debug.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : debug_nvm_num ] [ compile facilities.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : facilities_nvm_num ] - [ compile iteration.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : iteration_nvm_num ] + [ compile iteration.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_LIMIT_ITERATION=512 BOOST_PP_VARIADICS=0 : iteration_nvm_num ] [ compile list.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : list_nvm_num ] [ compile logical.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : logical_nvm_num ] [ compile repetition.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : repetition_nvm_num ] [ compile selection.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : selection_nvm_num ] - [ compile seq.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : seq_nvm_num ] + [ compile seq.cpp : BOOST_PP_LIMIT_SEQ=512 BOOST_PP_VARIADICS=0 : seq_nvm_num ] [ compile slot.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : slot_nvm_num ] [ compile stringize.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : stringize_nvm_num ] [ compile tuple.cpp : BOOST_PP_LIMIT_MAG=512 BOOST_PP_VARIADICS=0 : tuple_nvm_num ] @@ -247,7 +247,7 @@ alias preprocessor_c_number_512 : selection_c_num ] [ compile seq.c - : BOOST_PP_LIMIT_MAG=512 + : BOOST_PP_LIMIT_SEQ=512 : seq_c_num ] [ compile slot.c @@ -374,7 +374,7 @@ alias preprocessor_c_nvm_num ] [ compile seq.c : BOOST_PP_VARIADICS=0 - BOOST_PP_LIMIT_MAG=512 + BOOST_PP_LIMIT_SEQ=512 : seq_c_nvm_num ] [ compile slot.c diff --git a/test/iteration.cpp b/test/iteration.cpp index 35494ef..b170c22 100644 --- a/test/iteration.cpp +++ b/test/iteration.cpp @@ -23,6 +23,18 @@ # define BOOST_PP_LOCAL_LIMITS (5, 1) # include BOOST_PP_LOCAL_ITERATE() # +# if BOOST_PP_LIMIT_ITERATION > 256 +# +# define BOOST_PP_LOCAL_MACRO(n) int BOOST_PP_CAT(int_li_f_,n) = n ; +# define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_LIMIT_ITERATION) +# include BOOST_PP_LOCAL_ITERATE() +# +# define BOOST_PP_LOCAL_MACRO(n) int BOOST_PP_CAT(int_li_r_,n) = n ; +# define BOOST_PP_LOCAL_LIMITS (BOOST_PP_LIMIT_ITERATION, 0) +# include BOOST_PP_LOCAL_ITERATE() +# +# endif +# # define BOOST_PP_INDIRECT_SELF # include BOOST_PP_INCLUDE_SELF() # diff --git a/test/iteration.h b/test/iteration.h index 97e676b..5633963 100644 --- a/test/iteration.h +++ b/test/iteration.h @@ -12,7 +12,10 @@ # if !BOOST_PP_IS_ITERATING # # include +# include +# include # include +# include # include # # define NO_FLAGS @@ -28,6 +31,60 @@ # define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 5, , 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, , 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, , 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(), )) # 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