diff options
| author | pavook <[email protected]> | 2024-07-31 12:03:17 +0300 | 
|---|---|---|
| committer | pavook <[email protected]> | 2024-07-31 12:17:03 +0300 | 
| commit | c4fb2cdf41179910a4e9632de119ab3c94b741bc (patch) | |
| tree | bed136492bcce6a53acb13c6145f0afd06843677 /library/cpp/iterator/ut/functools_ut.cpp | |
| parent | 27b7ec6ec161019a7cb8f731166e892c60e863e1 (diff) | |
Fix TEnumerator::TIterator
082782faf0e6e05d3aa1c56e096d33ea69282f57
Diffstat (limited to 'library/cpp/iterator/ut/functools_ut.cpp')
| -rw-r--r-- | library/cpp/iterator/ut/functools_ut.cpp | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/library/cpp/iterator/ut/functools_ut.cpp b/library/cpp/iterator/ut/functools_ut.cpp index 2dee9a55c85..b11a715e0c4 100644 --- a/library/cpp/iterator/ut/functools_ut.cpp +++ b/library/cpp/iterator/ut/functools_ut.cpp @@ -99,7 +99,7 @@ using namespace NFuncTools;      struct TTestSentinel {};      struct TTestIterator { -        int operator*() { +        int operator*() const {              return X;          }          void operator++() { @@ -139,6 +139,18 @@ using namespace NFuncTools;              EXPECT_EQ(j, v.size());          } +        // Test correctness of iterator traits. +        auto enumerated = Enumerate(a); +        static_assert(std::ranges::input_range<decltype(enumerated)>); +        static_assert( +            std::is_same_v<decltype(enumerated.begin())::pointer, +            std::iterator_traits<decltype(enumerated.begin())>::pointer>); + +        // Post-increment test. +        auto it = enumerated.begin(); +        EXPECT_EQ(*(it++), (std::tuple{0, 1})); +        EXPECT_EQ(*it, (std::tuple{1, 2})); +          TVector<size_t> d = {0, 0, 0};          FOR_DISPATCH_2(i, x, Enumerate(d)) {              x = i;  | 
