#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); } } // namespace isl TEST(Support, isl_iterator) { std::unique_ptr 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 Sets; for (auto BS : S.get_basic_set_list()) Sets.push_back(BS); EXPECT_THAT(Sets, testing::UnorderedElementsAre(A, B)); }