[llvm] [ADT] Add begin and end to EytzingerTableSpan and EytzingerTable (NFC) (PR #210478)
Jakub Kuderski via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 18 17:45:08 PDT 2026
================
@@ -297,4 +303,44 @@ TEST(EytzingerTest, EytzingerTableHeterogeneousCreate) {
EXPECT_FALSE(Table.contains(uint64_t(999ULL)));
}
+TEST(EytzingerTest, EytzingerTableSpanBeginEnd) {
+ const int Data[] = {40, 20, 60, 10, 30, 50, 70};
+ EytzingerTableSpan<int> Span(Data, 7);
+
+ EXPECT_EQ(Span.begin(), Data);
+ EXPECT_EQ(Span.end(), Data + 7);
+ EXPECT_EQ(std::distance(Span.begin(), Span.end()), 7);
+
+ std::vector<int> Traversed(Span.begin(), Span.end());
+ std::vector<int> Expected = {40, 20, 60, 10, 30, 50, 70};
+ EXPECT_EQ(Traversed, Expected);
+
+ // Range-based for loop verification.
+ std::vector<int> RangeTraversed;
+ for (const int &Val : Span)
+ RangeTraversed.push_back(Val);
+ EXPECT_EQ(RangeTraversed, Expected);
+}
+
+TEST(EytzingerTest, EytzingerTableBeginEnd) {
+ std::vector<int> Unsorted = {70, 20, 40, 10, 60, 30, 50};
+ auto Table = EytzingerTable<int>::create(std::move(Unsorted));
+
+ EXPECT_EQ(std::distance(Table.begin(), Table.end()), 7);
+
+ std::vector<int> Traversed(Table.begin(), Table.end());
+ std::vector<int> Expected = {40, 20, 60, 10, 30, 50, 70};
+ EXPECT_EQ(Traversed, Expected);
----------------
kuhar wrote:
similar here
https://github.com/llvm/llvm-project/pull/210478
More information about the llvm-commits
mailing list