isl_scheduler.c: node_update_vmap: extract out extract_linear_schedule
[isl.git] / isl_test_list_templ.c
blobcd574cecba810951985570d219a62816df004b97
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)
8 #undef SET
9 #define SET CAT(isl_,SET_BASE)
10 #undef EL
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,
17 const char *str)
19 int i;
20 isl_bool equal;
21 SET *set, *set2;
22 LIST(EL) *list;
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++) {
30 EL *el;
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);
37 FN(SET,free)(set);
38 FN(SET,free)(set2);
39 FN(LIST(EL),free)(list);
41 if (equal < 0)
42 return isl_stat_error;
44 if (!equal)
45 isl_die(ctx, isl_error_unknown, "collections are not equal",
46 return isl_stat_error);
48 return isl_stat_ok;