tok = NULL;
if (read_div_definition(s, v) < 0)
goto error;
+ aff = isl_vec_zero_extend(aff, 1 + v->n);
} else {
isl_stream_error(s, tok, "expecting factor");
goto error;
isl_map_free(map);
}
+void test_parse_map_equal(isl_ctx *ctx, const char *str, const char *str2)
+{
+ isl_map *map, *map2;
+
+ map = isl_map_read_from_str(ctx, str, -1);
+ map2 = isl_map_read_from_str(ctx, str2, -1);
+ assert(map && map2 && isl_map_is_equal(map, map2));
+ isl_map_free(map);
+ isl_map_free(map2);
+}
+
void test_parse_pwqp(isl_ctx *ctx, const char *str)
{
isl_pw_qpolynomial *pwqp;
void test_parse(struct isl_ctx *ctx)
{
isl_map *map, *map2;
- const char *str;
+ const char *str, *str2;
str = "{ [i] -> [-i] }";
map = isl_map_read_from_str(ctx, str, -1);
test_parse_map(ctx, "{ [p1, y1, y2] -> [2, y1, y2] : "
"p1 = 1 && (y1 <= y2 || y2 = 0) }");
+ str = "{ [x,y] : [([x/2]+y)/3] >= 1 }";
+ str2 = "{ [x, y] : 2y >= 6 - x }";
+ test_parse_map_equal(ctx, str, str2);
+
str = "{[new,old] -> [new+1-2*[(new+1)/2],old+1-2*[(old+1)/2]]}";
map = isl_map_read_from_str(ctx, str, -1);
str = "{ [new, old] -> [o0, o1] : "