[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