[libcxx][test][NFC] Add tests for backward iteration over associative
authorRuslan Arutyunyan <ruslan.arutyunyan@intel.com>
Mon, 7 Feb 2022 22:02:57 +0000 (01:02 +0300)
committerRuslan Arutyunyan <ruslan.arutyunyan@intel.com>
Mon, 7 Feb 2022 22:21:42 +0000 (01:21 +0300)
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

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

index 39b573a..4589f93 100644 (file)
@@ -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
index 0a61531..b12645a 100644 (file)
@@ -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
index 4ab1d79..27a8dbf 100644 (file)
@@ -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
index da0f9a7..b4344c9 100644 (file)
@@ -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