[libcxx-commits] [libcxx] 6a92949 - [libcxx][test][NFC] Add tests for backward iteration over associative

Ruslan Arutyunyan via libcxx-commits libcxx-commits at lists.llvm.org
Mon Feb 7 14:22:33 PST 2022


Author: Ruslan Arutyunyan
Date: 2022-02-08T01:21:42+03:00
New Revision: 6a929492a6038e759c11cf65f5f8063d57b911ad

URL: https://github.com/llvm/llvm-project/commit/6a929492a6038e759c11cf65f5f8063d57b911ad
DIFF: https://github.com/llvm/llvm-project/commit/6a929492a6038e759c11cf65f5f8063d57b911ad.diff

LOG: [libcxx][test][NFC] Add tests for backward iteration over associative
containers

Add test cases for iteration over the ordered associative container from
end to begin using operator--

Reviewed By: Quuxplusone, rarutyun

Differential Revision: https://reviews.llvm.org/D118114

Added: 
    

Modified: 
    libcxx/test/std/containers/associative/map/map.access/iterator.pass.cpp
    libcxx/test/std/containers/associative/multimap/iterator.pass.cpp
    libcxx/test/std/containers/associative/multiset/iterator.pass.cpp
    libcxx/test/std/containers/associative/set/iterator.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/containers/associative/map/map.access/iterator.pass.cpp b/libcxx/test/std/containers/associative/map/map.access/iterator.pass.cpp
index 39b573a1392e..4589f93fda1e 100644
--- a/libcxx/test/std/containers/associative/map/map.access/iterator.pass.cpp
+++ b/libcxx/test/std/containers/associative/map/map.access/iterator.pass.cpp
@@ -77,6 +77,16 @@ int main(int, char**)
             i->second = 2.5;
             assert(i->second == 2.5);
         }
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j)
+        {
+            --i;
+            assert(i->first == j);
+            assert(i->second == 2.5);
+            i->second = 1;
+            assert(i->second == 1);
+        }
+        assert(i == m.begin());
     }
     {
         typedef std::pair<const int, double> V;
@@ -119,6 +129,14 @@ int main(int, char**)
             assert(i->first == j);
             assert(i->second == 1);
         }
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j)
+        {
+            --i;
+            assert(i->first == j);
+            assert(i->second == 1);
+        }
+        assert(i == m.begin());
     }
 #if TEST_STD_VER >= 11
     {
@@ -164,6 +182,16 @@ int main(int, char**)
             i->second = 2.5;
             assert(i->second == 2.5);
         }
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j)
+        {
+            --i;
+            assert(i->first == j);
+            assert(i->second == 2.5);
+            i->second = 1;
+            assert(i->second == 1);
+        }
+        assert(i == m.begin());
     }
     {
         typedef std::pair<const int, double> V;
@@ -206,6 +234,14 @@ int main(int, char**)
             assert(i->first == j);
             assert(i->second == 1);
         }
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j)
+        {
+            --i;
+            assert(i->first == j);
+            assert(i->second == 1);
+        }
+        assert(i == m.begin());
     }
 #endif
 #if TEST_STD_VER > 11

diff  --git a/libcxx/test/std/containers/associative/multimap/iterator.pass.cpp b/libcxx/test/std/containers/associative/multimap/iterator.pass.cpp
index 0a61531187e3..b12645a3eb1a 100644
--- a/libcxx/test/std/containers/associative/multimap/iterator.pass.cpp
+++ b/libcxx/test/std/containers/associative/multimap/iterator.pass.cpp
@@ -78,6 +78,17 @@ int main(int, char**)
                 i->second = 2.5;
                 assert(i->second == 2.5);
             }
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (double d = 1; d <= 2; d += .5)
+            {
+                --i;
+                assert(i->first == j);
+                assert(i->second == 2.5);
+                i->second = d;
+                assert(i->second == d);
+            }
+        assert(i == m.begin());
     }
     {
         typedef std::pair<const int, double> V;
@@ -121,6 +132,15 @@ int main(int, char**)
                 assert(i->first == j);
                 assert(i->second == d);
             }
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (double d = 2; d >= 1; d -= .5)
+            {
+                --i;
+                assert(i->first == j);
+                assert(i->second == d);
+            }
+        assert(i == m.begin());
     }
 #if TEST_STD_VER >= 11
     {
@@ -167,6 +187,17 @@ int main(int, char**)
                 i->second = 2.5;
                 assert(i->second == 2.5);
             }
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (double d = 1; d <= 2; d += .5)
+            {
+                --i;
+                assert(i->first == j);
+                assert(i->second == 2.5);
+                i->second = d;
+                assert(i->second == d);
+            }
+        assert(i == m.begin());
     }
     {
         typedef std::pair<const int, double> V;
@@ -210,6 +241,15 @@ int main(int, char**)
                 assert(i->first == j);
                 assert(i->second == d);
             }
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (double d = 2; d >= 1; d -= .5)
+            {
+                --i;
+                assert(i->first == j);
+                assert(i->second == d);
+            }
+        assert(i == m.begin());
     }
 #endif
 #if TEST_STD_VER > 11

diff  --git a/libcxx/test/std/containers/associative/multiset/iterator.pass.cpp b/libcxx/test/std/containers/associative/multiset/iterator.pass.cpp
index 4ab1d79a0491..27a8dbf1a038 100644
--- a/libcxx/test/std/containers/associative/multiset/iterator.pass.cpp
+++ b/libcxx/test/std/containers/associative/multiset/iterator.pass.cpp
@@ -73,6 +73,13 @@ int main(int, char**)
         for (int j = 1; j <= 8; ++j)
             for (int n = 0; n < 3; ++n, ++i)
                 assert(*i == j);
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (int n = 0; n < 3; ++n) {
+                --i;
+                assert(*i == j);
+            }
+        assert(i == m.begin());
     }
     {
         typedef int V;
@@ -113,6 +120,13 @@ int main(int, char**)
         for (int j = 1; j <= 8; ++j)
             for (int k = 0; k < 3; ++k, ++i)
                 assert(*i == j);
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (int k = 0; k < 3; ++k) {
+                --i;
+                assert(*i == j);
+            }
+        assert(i == m.begin());
     }
 #if TEST_STD_VER >= 11
     {
@@ -154,6 +168,13 @@ int main(int, char**)
         for (int j = 1; j <= 8; ++j)
             for (int n = 0; n < 3; ++n, ++i)
                 assert(*i == j);
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (int n = 0; n < 3; ++n) {
+                --i;
+                assert(*i == j);
+            }
+        assert(i == m.begin());
     }
     {
         typedef int V;
@@ -194,6 +215,13 @@ int main(int, char**)
         for (int j = 1; j <= 8; ++j)
             for (int k = 0; k < 3; ++k, ++i)
                 assert(*i == j);
+        assert(i == m.end());
+        for (int j = 8; j >= 1; --j)
+            for (int k = 0; k < 3; ++k) {
+                --i;
+                assert(*i == j);
+            }
+        assert(i == m.begin());
     }
 #endif
 #if TEST_STD_VER > 11

diff  --git a/libcxx/test/std/containers/associative/set/iterator.pass.cpp b/libcxx/test/std/containers/associative/set/iterator.pass.cpp
index da0f9a7b946a..b4344c9d3888 100644
--- a/libcxx/test/std/containers/associative/set/iterator.pass.cpp
+++ b/libcxx/test/std/containers/associative/set/iterator.pass.cpp
@@ -72,6 +72,12 @@ int main(int, char**)
         assert(i == k);
         for (int j = 1; static_cast<std::size_t>(j) <= m.size(); ++j, ++i)
             assert(*i == j);
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j) {
+            --i;
+            assert(*i == j);
+        }
+        assert(i == m.begin());
     }
     {
         typedef int V;
@@ -111,6 +117,12 @@ int main(int, char**)
         i = m.begin();
         for (int j = 1; static_cast<std::size_t>(j) <= m.size(); ++j, ++i)
             assert(*i == j);
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j) {
+            --i;
+            assert(*i == j);
+        }
+        assert(i == m.begin());
     }
 #if TEST_STD_VER >= 11
     {
@@ -151,6 +163,12 @@ int main(int, char**)
         assert(i == k);
         for (int j = 1; static_cast<std::size_t>(j) <= m.size(); ++j, ++i)
             assert(*i == j);
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j) {
+            --i;
+            assert(*i == j);
+        }
+        assert(i == m.begin());
     }
     {
         typedef int V;
@@ -190,6 +208,12 @@ int main(int, char**)
         i = m.begin();
         for (int j = 1; static_cast<std::size_t>(j) <= m.size(); ++j, ++i)
             assert(*i == j);
+        assert(i == m.end());
+        for (int j = m.size(); j >= 1; --j) {
+            --i;
+            assert(*i == j);
+        }
+        assert(i == m.begin());
     }
 #endif
 #if TEST_STD_VER > 11


        


More information about the libcxx-commits mailing list