isl_map_is_subset: a map cannot be as subset of a map in a different space
[platform/upstream/isl.git] / isl_test.c
index 610e67c..de558b9 100644 (file)
@@ -1920,8 +1920,9 @@ int test_one_schedule(isl_ctx *ctx, const char *d, const char *w,
                is_tilable = 1;
                is_parallel = 1;
                is_nonneg = 1;
+               isl_union_set_free(delta);
        } else {
-               delta_set = isl_union_set_copy_set(delta);
+               delta_set = isl_set_from_union_set(delta);
 
                slice = isl_set_universe(isl_set_get_dim(delta_set));
                for (i = 0; i < tilable; ++i)
@@ -1947,7 +1948,6 @@ int test_one_schedule(isl_ctx *ctx, const char *d, const char *w,
                isl_set_free(origin);
                isl_set_free(delta_set);
        }
-       isl_union_set_free(delta);
 
        if (is_nonneg < 0 || is_parallel < 0 || is_tilable < 0 ||
            is_injection < 0 || is_complete < 0)
@@ -2337,6 +2337,46 @@ int test_dim_max(isl_ctx *ctx)
        return 0;
 }
 
+int test_product(isl_ctx *ctx)
+{
+       const char *str;
+       isl_set *set;
+       int ok;
+
+       str = "{ A[i] }";
+       set = isl_set_read_from_str(ctx, str, -1);
+       set = isl_set_product(set, isl_set_copy(set));
+       ok = isl_set_is_wrapping(set);
+       isl_set_free(set);
+       if (ok < 0)
+               return -1;
+       if (!ok)
+               isl_die(ctx, isl_error_unknown, "unexpected result", return -1);
+
+       return 0;
+}
+
+int test_equal(isl_ctx *ctx)
+{
+       const char *str;
+       isl_set *set, *set2;
+       int equal;
+
+       str = "{ S_6[i] }";
+       set = isl_set_read_from_str(ctx, str, -1);
+       str = "{ S_7[i] }";
+       set2 = isl_set_read_from_str(ctx, str, -1);
+       equal = isl_set_is_equal(set, set2);
+       isl_set_free(set);
+       isl_set_free(set2);
+       if (equal < 0)
+               return -1;
+       if (equal)
+               isl_die(ctx, isl_error_unknown, "unexpected result", return -1);
+
+       return 0;
+}
+
 int main()
 {
        struct isl_ctx *ctx;
@@ -2345,6 +2385,10 @@ int main()
        assert(srcdir);
 
        ctx = isl_ctx_alloc();
+       if (test_equal(ctx) < 0)
+               goto error;
+       if (test_product(ctx) < 0)
+               goto error;
        if (test_dim_max(ctx) < 0)
                goto error;
        if (test_aff(ctx) < 0)