diff options
Diffstat (limited to 'polly/unittests/Support/ISLTools.cpp')
-rw-r--r-- | polly/unittests/Support/ISLTools.cpp | 27 |
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)); +} |