1 #define xCAT(A,B) A ## B
2 #define CAT(A,B) xCAT(A,B)
3 #define xFN(TYPE,NAME) TYPE ## _ ## NAME
4 #define FN(TYPE,NAME) xFN(TYPE,NAME)
5 #define xLIST(EL) EL ## _list
6 #define LIST(EL) xLIST(EL)
9 #define SET CAT(isl_,SET_BASE)
11 #define EL CAT(isl_,EL_BASE)
13 /* Check that the conversion from SET to list of EL works as expected,
14 * using input described by "str".
16 static isl_stat
FN(FN(FN(test_get_list
,EL_BASE
),from
),SET_BASE
)(isl_ctx
*ctx
,
24 set
= FN(SET
,read_from_str
)(ctx
, str
);
25 list
= FN(FN(SET
,get
),LIST(EL_BASE
))(set
);
27 set2
= FN(SET
,empty
)(FN(SET
,get_space
)(set
));
29 for (i
= 0; i
< FN(LIST(EL
),size
)(list
); i
++) {
31 el
= FN(LIST(EL
),get_at
)(list
, i
);
32 set2
= FN(SET
,union)(set2
, FN(FN(SET
,from
),EL_BASE
)(el
));
35 equal
= FN(SET
,is_equal
)(set
, set2
);
39 FN(LIST(EL
),free
)(list
);
42 return isl_stat_error
;
45 isl_die(ctx
, isl_error_unknown
, "collections are not equal",
46 return isl_stat_error
);