Changeset View
Changeset View
Standalone View
Standalone View
test/std/containers/unord/unord.multimap/swap_member.pass.cpp
Show All 11 Lines | |||||
// template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, | // template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, | ||||
// class Alloc = allocator<pair<const Key, T>>> | // class Alloc = allocator<pair<const Key, T>>> | ||||
// class unordered_multimap | // class unordered_multimap | ||||
// void swap(unordered_multimap& __u); | // void swap(unordered_multimap& __u); | ||||
#include <unordered_map> | #include <unordered_map> | ||||
#include <string> | #include <string> | ||||
#include <set> | |||||
#include <cassert> | #include <cassert> | ||||
#include <cstddef> | #include <cstddef> | ||||
#include "test_macros.h" | #include "test_macros.h" | ||||
#include "../../test_compare.h" | #include "../../test_compare.h" | ||||
#include "../../test_hash.h" | #include "../../test_hash.h" | ||||
#include "test_allocator.h" | #include "test_allocator.h" | ||||
▲ Show 20 Lines • Show All 103 Lines • ▼ Show 20 Lines | int main() | ||||
assert(c1.key_eq() == Compare(2)); | assert(c1.key_eq() == Compare(2)); | ||||
assert(c1.get_allocator().get_id() == 1); | assert(c1.get_allocator().get_id() == 1); | ||||
assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | ||||
assert(c1.max_load_factor() == 2); | assert(c1.max_load_factor() == 2); | ||||
assert(c2.bucket_count() >= 6); | assert(c2.bucket_count() >= 6); | ||||
assert(c2.size() == 6); | assert(c2.size() == 6); | ||||
assert(c2.find(1)->second == "one"); | { | ||||
assert(next(c2.find(1))->second == "four"); | std::set<std::string> s = {"one", "four"}; | ||||
assert(c2.find(2)->second == "two"); | assert(s.find(c2.find(1)->second) != s.end()); | ||||
assert(next(c2.find(2))->second == "four"); | s.erase(s.find(c2.find(1)->second)); | ||||
assert(s.find(next(c2.find(1))->second) != s.end()); | |||||
} | |||||
{ | |||||
std::set<std::string> s = {"two", "four"}; | |||||
assert(s.find(c2.find(2)->second) != s.end()); | |||||
s.erase(s.find(c2.find(2)->second)); | |||||
assert(s.find(next(c2.find(2))->second) != s.end()); | |||||
} | |||||
assert(c2.find(3)->second == "three"); | assert(c2.find(3)->second == "three"); | ||||
assert(c2.find(4)->second == "four"); | assert(c2.find(4)->second == "four"); | ||||
assert(c2.hash_function() == Hash(1)); | assert(c2.hash_function() == Hash(1)); | ||||
assert(c2.key_eq() == Compare(1)); | assert(c2.key_eq() == Compare(1)); | ||||
assert(c2.get_allocator().get_id() == 2); | assert(c2.get_allocator().get_id() == 2); | ||||
assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | ||||
assert(c2.max_load_factor() == 1); | assert(c2.max_load_factor() == 1); | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | int main() | ||||
assert(c1.key_eq() == Compare(2)); | assert(c1.key_eq() == Compare(2)); | ||||
assert(c1.get_allocator().get_id() == 1); | assert(c1.get_allocator().get_id() == 1); | ||||
assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | ||||
assert(c1.max_load_factor() == 2); | assert(c1.max_load_factor() == 2); | ||||
assert(c2.bucket_count() >= 6); | assert(c2.bucket_count() >= 6); | ||||
assert(c2.size() == 6); | assert(c2.size() == 6); | ||||
assert(c2.find(1)->second == "one"); | { | ||||
assert(next(c2.find(1))->second == "four"); | std::set<std::string> s = {"one", "four"}; | ||||
assert(c2.find(2)->second == "two"); | assert(s.find(c2.find(1)->second) != s.end()); | ||||
assert(next(c2.find(2))->second == "four"); | s.erase(s.find(c2.find(1)->second)); | ||||
assert(s.find(next(c2.find(1))->second) != s.end()); | |||||
} | |||||
{ | |||||
std::set<std::string> s = {"two", "four"}; | |||||
assert(s.find(c2.find(2)->second) != s.end()); | |||||
s.erase(s.find(c2.find(2)->second)); | |||||
assert(s.find(next(c2.find(2))->second) != s.end()); | |||||
} | |||||
assert(c2.find(3)->second == "three"); | assert(c2.find(3)->second == "three"); | ||||
assert(c2.find(4)->second == "four"); | assert(c2.find(4)->second == "four"); | ||||
assert(c2.hash_function() == Hash(1)); | assert(c2.hash_function() == Hash(1)); | ||||
assert(c2.key_eq() == Compare(1)); | assert(c2.key_eq() == Compare(1)); | ||||
assert(c2.get_allocator().get_id() == 2); | assert(c2.get_allocator().get_id() == 2); | ||||
assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | ||||
assert(c2.max_load_factor() == 1); | assert(c2.max_load_factor() == 1); | ||||
▲ Show 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | int main() | ||||
assert(c1.key_eq() == Compare(2)); | assert(c1.key_eq() == Compare(2)); | ||||
assert(c1.get_allocator() == Alloc(2)); | assert(c1.get_allocator() == Alloc(2)); | ||||
assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | ||||
assert(c1.max_load_factor() == 2); | assert(c1.max_load_factor() == 2); | ||||
assert(c2.bucket_count() >= 6); | assert(c2.bucket_count() >= 6); | ||||
assert(c2.size() == 6); | assert(c2.size() == 6); | ||||
assert(c2.find(1)->second == "one"); | { | ||||
assert(next(c2.find(1))->second == "four"); | std::set<std::string> s = {"one", "four"}; | ||||
assert(c2.find(2)->second == "two"); | assert(s.find(c2.find(1)->second) != s.end()); | ||||
assert(next(c2.find(2))->second == "four"); | s.erase(s.find(c2.find(1)->second)); | ||||
assert(s.find(next(c2.find(1))->second) != s.end()); | |||||
} | |||||
{ | |||||
std::set<std::string> s = {"two", "four"}; | |||||
assert(s.find(c2.find(2)->second) != s.end()); | |||||
s.erase(s.find(c2.find(2)->second)); | |||||
assert(s.find(next(c2.find(2))->second) != s.end()); | |||||
} | |||||
assert(c2.find(3)->second == "three"); | assert(c2.find(3)->second == "three"); | ||||
assert(c2.find(4)->second == "four"); | assert(c2.find(4)->second == "four"); | ||||
assert(c2.hash_function() == Hash(1)); | assert(c2.hash_function() == Hash(1)); | ||||
assert(c2.key_eq() == Compare(1)); | assert(c2.key_eq() == Compare(1)); | ||||
assert(c2.get_allocator() == Alloc(1)); | assert(c2.get_allocator() == Alloc(1)); | ||||
assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | ||||
assert(c2.max_load_factor() == 1); | assert(c2.max_load_factor() == 1); | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | int main() | ||||
assert(c1.key_eq() == Compare(2)); | assert(c1.key_eq() == Compare(2)); | ||||
assert(c1.get_allocator() == Alloc(2)); | assert(c1.get_allocator() == Alloc(2)); | ||||
assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | ||||
assert(c1.max_load_factor() == 2); | assert(c1.max_load_factor() == 2); | ||||
assert(c2.bucket_count() >= 6); | assert(c2.bucket_count() >= 6); | ||||
assert(c2.size() == 6); | assert(c2.size() == 6); | ||||
assert(c2.find(1)->second == "one"); | { | ||||
assert(next(c2.find(1))->second == "four"); | std::set<std::string> s = {"one", "four"}; | ||||
assert(c2.find(2)->second == "two"); | assert(s.find(c2.find(1)->second) != s.end()); | ||||
assert(next(c2.find(2))->second == "four"); | s.erase(s.find(c2.find(1)->second)); | ||||
assert(s.find(next(c2.find(1))->second) != s.end()); | |||||
} | |||||
{ | |||||
std::set<std::string> s = {"two", "four"}; | |||||
assert(s.find(c2.find(2)->second) != s.end()); | |||||
s.erase(s.find(c2.find(2)->second)); | |||||
assert(s.find(next(c2.find(2))->second) != s.end()); | |||||
} | |||||
assert(c2.find(3)->second == "three"); | assert(c2.find(3)->second == "three"); | ||||
assert(c2.find(4)->second == "four"); | assert(c2.find(4)->second == "four"); | ||||
assert(c2.hash_function() == Hash(1)); | assert(c2.hash_function() == Hash(1)); | ||||
assert(c2.key_eq() == Compare(1)); | assert(c2.key_eq() == Compare(1)); | ||||
assert(c2.get_allocator() == Alloc(1)); | assert(c2.get_allocator() == Alloc(1)); | ||||
assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | ||||
assert(c2.max_load_factor() == 1); | assert(c2.max_load_factor() == 1); | ||||
▲ Show 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | #if TEST_STD_VER >= 11 | ||||
assert(c1.key_eq() == Compare(2)); | assert(c1.key_eq() == Compare(2)); | ||||
assert(c1.get_allocator() == Alloc()); | assert(c1.get_allocator() == Alloc()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | ||||
assert(c1.max_load_factor() == 2); | assert(c1.max_load_factor() == 2); | ||||
assert(c2.bucket_count() >= 6); | assert(c2.bucket_count() >= 6); | ||||
assert(c2.size() == 6); | assert(c2.size() == 6); | ||||
assert(c2.find(1)->second == "one"); | { | ||||
assert(next(c2.find(1))->second == "four"); | std::set<std::string> s = {"one", "four"}; | ||||
assert(c2.find(2)->second == "two"); | assert(s.find(c2.find(1)->second) != s.end()); | ||||
assert(next(c2.find(2))->second == "four"); | s.erase(s.find(c2.find(1)->second)); | ||||
assert(s.find(next(c2.find(1))->second) != s.end()); | |||||
} | |||||
{ | |||||
std::set<std::string> s = {"two", "four"}; | |||||
assert(s.find(c2.find(2)->second) != s.end()); | |||||
s.erase(s.find(c2.find(2)->second)); | |||||
assert(s.find(next(c2.find(2))->second) != s.end()); | |||||
} | |||||
assert(c2.find(3)->second == "three"); | assert(c2.find(3)->second == "three"); | ||||
assert(c2.find(4)->second == "four"); | assert(c2.find(4)->second == "four"); | ||||
assert(c2.hash_function() == Hash(1)); | assert(c2.hash_function() == Hash(1)); | ||||
assert(c2.key_eq() == Compare(1)); | assert(c2.key_eq() == Compare(1)); | ||||
assert(c2.get_allocator() == Alloc()); | assert(c2.get_allocator() == Alloc()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | ||||
assert(c2.max_load_factor() == 1); | assert(c2.max_load_factor() == 1); | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | #if TEST_STD_VER >= 11 | ||||
assert(c1.key_eq() == Compare(2)); | assert(c1.key_eq() == Compare(2)); | ||||
assert(c1.get_allocator() == Alloc()); | assert(c1.get_allocator() == Alloc()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.begin(), c1.end())) == c1.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | assert(static_cast<std::size_t>(std::distance(c1.cbegin(), c1.cend())) == c1.size()); | ||||
assert(c1.max_load_factor() == 2); | assert(c1.max_load_factor() == 2); | ||||
assert(c2.bucket_count() >= 6); | assert(c2.bucket_count() >= 6); | ||||
assert(c2.size() == 6); | assert(c2.size() == 6); | ||||
assert(c2.find(1)->second == "one"); | { | ||||
assert(next(c2.find(1))->second == "four"); | std::set<std::string> s = {"one", "four"}; | ||||
assert(c2.find(2)->second == "two"); | assert(s.find(c2.find(1)->second) != s.end()); | ||||
assert(next(c2.find(2))->second == "four"); | s.erase(s.find(c2.find(1)->second)); | ||||
assert(s.find(next(c2.find(1))->second) != s.end()); | |||||
} | |||||
{ | |||||
std::set<std::string> s = {"two", "four"}; | |||||
assert(s.find(c2.find(2)->second) != s.end()); | |||||
s.erase(s.find(c2.find(2)->second)); | |||||
assert(s.find(next(c2.find(2))->second) != s.end()); | |||||
} | |||||
assert(c2.find(3)->second == "three"); | assert(c2.find(3)->second == "three"); | ||||
assert(c2.find(4)->second == "four"); | assert(c2.find(4)->second == "four"); | ||||
assert(c2.hash_function() == Hash(1)); | assert(c2.hash_function() == Hash(1)); | ||||
assert(c2.key_eq() == Compare(1)); | assert(c2.key_eq() == Compare(1)); | ||||
assert(c2.get_allocator() == Alloc()); | assert(c2.get_allocator() == Alloc()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.begin(), c2.end())) == c2.size()); | ||||
assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | assert(static_cast<std::size_t>(std::distance(c2.cbegin(), c2.cend())) == c2.size()); | ||||
assert(c2.max_load_factor() == 1); | assert(c2.max_load_factor() == 1); | ||||
} | } | ||||
#endif | #endif | ||||
} | } |