From: Ruslan Arutyunyan Date: Mon, 7 Feb 2022 22:02:57 +0000 (+0300) Subject: [libcxx][test][NFC] Add tests for backward iteration over associative X-Git-Tag: upstream/15.0.7~17477 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6a929492a6038e759c11cf65f5f8063d57b911ad;p=platform%2Fupstream%2Fllvm.git [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 --- 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 39b573a..4589f93 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 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 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 0a61531..b12645a 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 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 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 4ab1d79..27a8dbf 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 da0f9a7..b4344c9 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(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(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(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(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