aboutsummaryrefslogtreecommitdiff
path: root/test/std/containers/unord/unord.map/rehash.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/containers/unord/unord.map/rehash.pass.cpp')
-rw-r--r--test/std/containers/unord/unord.map/rehash.pass.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/std/containers/unord/unord.map/rehash.pass.cpp b/test/std/containers/unord/unord.map/rehash.pass.cpp
index 84ece2355511..e1a882c69ffd 100644
--- a/test/std/containers/unord/unord.map/rehash.pass.cpp
+++ b/test/std/containers/unord/unord.map/rehash.pass.cpp
@@ -22,6 +22,12 @@
#include "min_allocator.h"
template <class C>
+void rehash_postcondition(const C& c, size_t n)
+{
+ assert(c.bucket_count() >= c.size() / c.max_load_factor() && c.bucket_count() >= n);
+}
+
+template <class C>
void test(const C& c)
{
assert(c.size() == 4);
@@ -49,13 +55,16 @@ int main()
test(c);
assert(c.bucket_count() >= 5);
c.rehash(3);
+ rehash_postcondition(c, 3);
assert(c.bucket_count() == 5);
test(c);
c.max_load_factor(2);
c.rehash(3);
+ rehash_postcondition(c, 3);
assert(c.bucket_count() == 3);
test(c);
c.rehash(31);
+ rehash_postcondition(c, 31);
assert(c.bucket_count() == 31);
test(c);
}
@@ -77,13 +86,16 @@ int main()
test(c);
assert(c.bucket_count() >= 5);
c.rehash(3);
+ rehash_postcondition(c, 3);
assert(c.bucket_count() == 5);
test(c);
c.max_load_factor(2);
c.rehash(3);
+ rehash_postcondition(c, 3);
assert(c.bucket_count() == 3);
test(c);
c.rehash(31);
+ rehash_postcondition(c, 31);
assert(c.bucket_count() == 31);
test(c);
}