@@ -103,7 +103,8 @@ TEST_CASE("for", "[preprocess]")
103103 STATIC_CHECK (foo4 == 4 );
104104}
105105
106- #define IRIS_TEST_SEQ_EXEC (elem, data ) constexpr int IRIS_PP_CAT (data, elem) = elem;
106+ #define IRIS_TEST_SEQ_EXEC (elem, data ) constexpr std::string_view IRIS_PP_CAT (data, elem) = IRIS_PP_STRINGIZE(elem);
107+ #define IRIS_TEST_SEQ_EXEC2 (index, elem, data ) constexpr int IRIS_PP_CAT (data, elem) = index;
107108
108109TEST_CASE (" seq" , " [preprocess]" )
109110{
@@ -119,16 +120,24 @@ TEST_CASE("seq", "[preprocess]")
119120 STATIC_CHECK (IRIS_PP_STRINGIZE (IRIS_PP_SEQ_HEAD ((a)(b)(c))) == " a" sv);
120121 STATIC_CHECK (IRIS_PP_STRINGIZE (IRIS_PP_SEQ_TAIL ((a)(b)(c))) == " (b)(c)" sv);
121122
122- IRIS_PP_SEQ_FOR_EACH ((0 )( 1 )( 2 ), IRIS_TEST_SEQ_EXEC, foo)
123+ IRIS_PP_SEQ_FOR_EACH ((a)(b)(c ), IRIS_TEST_SEQ_EXEC, foo)
123124
124- STATIC_CHECK (foo0 == 0 );
125- STATIC_CHECK (foo1 == 1 );
126- STATIC_CHECK (foo2 == 2 );
125+ STATIC_CHECK (fooa == " a" );
126+ STATIC_CHECK (foob == " b" );
127+ STATIC_CHECK (fooc == " c" );
128+
129+ IRIS_PP_SEQ_FOR_EACH_WITH_INDEX ((a)(b)(c), IRIS_TEST_SEQ_EXEC2, bar)
130+
131+ STATIC_CHECK (bara == 0 );
132+ STATIC_CHECK (barb == 1 );
133+ STATIC_CHECK (barc == 2 );
127134}
128135
136+ #define IRIS_TEST_WHILE_NEQ_5 (expr ) IRIS_PP_NOT_EQUAL(expr, 5 )
137+
129138TEST_CASE (" while" , " [preprocess]" )
130139{
131- // TODO
140+ STATIC_CHECK ( IRIS_PP_WHILE ( 0 , IRIS_TEST_WHILE_NEQ_5, IRIS_PP_INCREMENT) == 5 );
132141}
133142
134143TEST_CASE (" add" , " [preprocess]" )
0 commit comments