summaryrefslogtreecommitdiffstats
path: root/polly/unittests/Support/ISLTools.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/unittests/Support/ISLTools.cpp')
-rw-r--r--polly/unittests/Support/ISLTools.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/polly/unittests/Support/ISLTools.cpp b/polly/unittests/Support/ISLTools.cpp
new file mode 100644
index 00000000000..f33c56c520d
--- /dev/null
+++ b/polly/unittests/Support/ISLTools.cpp
@@ -0,0 +1,27 @@
+#include "polly/Support/ISLTools.h"
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+
+namespace isl {
+static bool operator==(const isl::basic_set &A, const isl::basic_set &B) {
+ return A.is_equal(B);
+}
+}
+
+TEST(Support, isl_iterator) {
+ std::unique_ptr<isl_ctx, decltype(&isl_ctx_free)> RawCtx(isl_ctx_alloc(),
+ &isl_ctx_free);
+ isl::ctx Ctx(RawCtx.get());
+
+ isl::basic_set A(
+ Ctx, "{ [x, y] : 0 <= x <= 5 and y >= 0 and x > 0 and 0 < y <= 5 }");
+ isl::basic_set B(
+ Ctx, "{ [x, y] : 0 <= x <= 5 and y >= 0 and x <= 4 and y <= 3 + x }");
+ isl::set S = A.unite(B);
+
+ ASSERT_EQ(S.n_basic_set(), 2);
+ std::vector<isl::basic_set> Sets;
+ for (auto BS : S.get_basic_set_list())
+ Sets.push_back(BS);
+ EXPECT_THAT(Sets, testing::UnorderedElementsAre(A, B));
+}
OpenPOWER on IntegriCloud