swap_member.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// License. See LICENSE.TXT for details.
7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)//
8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)//===----------------------------------------------------------------------===//
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// <unordered_map>
1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//           class Alloc = allocator<pair<const Key, T>>>
149ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// class unordered_map
15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// void swap(unordered_map& __u);
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <unordered_map>
19868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include <string>
2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include <cassert>
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "../../test_compare.h"
23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "../../test_hash.h"
24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "../../test_allocator.h"
25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)int main()
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef test_compare<std::equal_to<int> > Compare;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_allocator<std::pair<const int, std::string> > Alloc;
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        typedef std::pair<int, std::string> P;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c1(0, Hash(1), Compare(1), Alloc(1));
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c2(0, Hash(2), Compare(2), Alloc(2));
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c2.max_load_factor(2);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c1.swap(c2);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.bucket_count() == 0);
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.size() == 0);
4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)        assert(c1.hash_function() == Hash(2));
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.key_eq() == Compare(2));
43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        assert(c1.get_allocator() == Alloc(1));
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(c1.max_load_factor() == 2);
477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)        assert(c2.bucket_count() == 0);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.size() == 0);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.hash_function() == Hash(1));
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        assert(c2.key_eq() == Compare(1));
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.get_allocator() == Alloc(2));
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.max_load_factor() == 1);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    {
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_compare<std::equal_to<int> > Compare;
6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        typedef test_allocator<std::pair<const int, std::string> > Alloc;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::pair<int, std::string> P;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        P a2[] =
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            P(10, "ten"),
66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            P(20, "twenty"),
67d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)            P(30, "thirty"),
68d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)            P(40, "fourty"),
6968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            P(50, "fifty"),
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(60, "sixty"),
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(70, "seventy"),
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(80, "eighty"),
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        };
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c1(0, Hash(1), Compare(1), Alloc(1));
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c2(std::begin(a2), std::end(a2), 0, Hash(2), Compare(2), Alloc(2));
76effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        c2.max_load_factor(2);
77effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        c1.swap(c2);
78effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
79effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        assert(c1.bucket_count() >= 11);
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.size() == 8);
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.at(10) == "ten");
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.at(20) == "twenty");
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(30) == "thirty");
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(40) == "fourty");
855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(50) == "fifty");
86f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(c1.at(60) == "sixty");
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.at(70) == "seventy");
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(80) == "eighty");
89d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)        assert(c1.hash_function() == Hash(2));
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.key_eq() == Compare(2));
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.get_allocator() == Alloc(1));
92c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch        assert(std::distance(c1.begin(), c1.end()) == c1.size());
93e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
94c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch        assert(c1.max_load_factor() == 2);
95c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
96e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch        assert(c2.bucket_count() == 0);
97e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch        assert(c2.size() == 0);
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.hash_function() == Hash(1));
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.key_eq() == Compare(1));
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.get_allocator() == Alloc(2));
101f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)        assert(c2.max_load_factor() == 1);
104f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    }
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
107558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        typedef test_compare<std::equal_to<int> > Compare;
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_allocator<std::pair<const int, std::string> > Alloc;
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::pair<int, std::string> P;
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        P a1[] =
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(1, "one"),
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(2, "two"),
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(3, "three"),
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(4, "four"),
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(1, "four"),
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(2, "four"),
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        };
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c1(std::begin(a1), std::end(a1), 0, Hash(1), Compare(1), Alloc(1));
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c2(0, Hash(2), Compare(2), Alloc(2));
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c2.max_load_factor(2);
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c1.swap(c2);
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.bucket_count() == 0);
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.size() == 0);
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.hash_function() == Hash(2));
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.key_eq() == Compare(2));
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.get_allocator() == Alloc(1));
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.max_load_factor() == 2);
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.bucket_count() >= 5);
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.size() == 4);
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.at(1) == "one");
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.at(2) == "two");
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.at(3) == "three");
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.at(4) == "four");
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.hash_function() == Hash(1));
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.key_eq() == Compare(1));
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.get_allocator() == Alloc(2));
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.max_load_factor() == 1);
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_compare<std::equal_to<int> > Compare;
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_allocator<std::pair<const int, std::string> > Alloc;
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        typedef std::pair<int, std::string> P;
153a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        P a1[] =
154a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        {
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(1, "one"),
1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(2, "two"),
1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(3, "three"),
1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(4, "four"),
1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(1, "four"),
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(2, "four"),
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        };
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        P a2[] =
163ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        {
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(10, "ten"),
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(20, "twenty"),
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(30, "thirty"),
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(40, "fourty"),
1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(50, "fifty"),
1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(60, "sixty"),
1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(70, "seventy"),
1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(80, "eighty"),
1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        };
1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c1(std::begin(a1), std::end(a1), 0, Hash(1), Compare(1), Alloc(1));
1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c2(std::begin(a2), std::end(a2), 0, Hash(2), Compare(2), Alloc(2));
1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        c2.max_load_factor(2);
176a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        c1.swap(c2);
177a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.bucket_count() >= 11);
1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.size() == 8);
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(10) == "ten");
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(20) == "twenty");
1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(30) == "thirty");
1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(40) == "fourty");
184ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        assert(c1.at(50) == "fifty");
1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(60) == "sixty");
1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(70) == "seventy");
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(80) == "eighty");
1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.hash_function() == Hash(2));
1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.key_eq() == Compare(2));
1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.get_allocator() == Alloc(1));
1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.max_load_factor() == 2);
1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.bucket_count() >= 5);
1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.size() == 4);
1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.at(1) == "one");
1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.at(2) == "two");
1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.at(3) == "three");
2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.at(4) == "four");
2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.hash_function() == Hash(1));
2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.key_eq() == Compare(1));
2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.get_allocator() == Alloc(2));
2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.max_load_factor() == 1);
2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    {
2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        typedef test_compare<std::equal_to<int> > Compare;
2125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        typedef other_allocator<std::pair<const int, std::string> > Alloc;
2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef std::pair<int, std::string> P;
2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c1(0, Hash(1), Compare(1), Alloc(1));
2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c2(0, Hash(2), Compare(2), Alloc(2));
2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        c2.max_load_factor(2);
2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        c1.swap(c2);
2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.bucket_count() == 0);
2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.size() == 0);
2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.hash_function() == Hash(2));
2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.key_eq() == Compare(2));
2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.get_allocator() == Alloc(2));
2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.max_load_factor() == 2);
2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.bucket_count() == 0);
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.size() == 0);
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.hash_function() == Hash(1));
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c2.key_eq() == Compare(1));
233f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(c2.get_allocator() == Alloc(1));
234f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
235f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
236f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        assert(c2.max_load_factor() == 1);
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    {
239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        typedef test_hash<std::hash<int> > Hash;
240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        typedef test_compare<std::equal_to<int> > Compare;
241116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        typedef other_allocator<std::pair<const int, std::string> > Alloc;
242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        typedef std::pair<int, std::string> P;
244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        P a2[] =
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            P(10, "ten"),
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(20, "twenty"),
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(30, "thirty"),
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(40, "fourty"),
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(50, "fifty"),
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(60, "sixty"),
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(70, "seventy"),
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            P(80, "eighty"),
2542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        };
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c1(0, Hash(1), Compare(1), Alloc(1));
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        C c2(std::begin(a2), std::end(a2), 0, Hash(2), Compare(2), Alloc(2));
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c2.max_load_factor(2);
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c1.swap(c2);
2592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.bucket_count() >= 11);
2615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.size() == 8);
2625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(10) == "ten");
2635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(20) == "twenty");
2645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(30) == "thirty");
2655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(40) == "fourty");
2665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(50) == "fifty");
2675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(60) == "sixty");
2685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(70) == "seventy");
2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(80) == "eighty");
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.hash_function() == Hash(2));
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.key_eq() == Compare(2));
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.get_allocator() == Alloc(2));
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.max_load_factor() == 2);
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(c2.bucket_count() == 0);
27823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(c2.size() == 0);
27923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(c2.hash_function() == Hash(1));
28023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(c2.key_eq() == Compare(1));
28123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(c2.get_allocator() == Alloc(1));
28223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
28323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
28423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)        assert(c2.max_load_factor() == 1);
28523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    }
28623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    {
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef test_compare<std::equal_to<int> > Compare;
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef other_allocator<std::pair<const int, std::string> > Alloc;
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef std::pair<int, std::string> P;
2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        P a1[] =
2932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        {
2942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(1, "one"),
2952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(2, "two"),
2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(3, "three"),
2972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(4, "four"),
2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(1, "four"),
2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(2, "four"),
3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        };
3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c1(std::begin(a1), std::end(a1), 0, Hash(1), Compare(1), Alloc(1));
3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c2(0, Hash(2), Compare(2), Alloc(2));
3032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        c2.max_load_factor(2);
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        c1.swap(c2);
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.bucket_count() == 0);
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.size() == 0);
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.hash_function() == Hash(2));
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.key_eq() == Compare(2));
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(c1.get_allocator() == Alloc(2));
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
3132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.max_load_factor() == 2);
314f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
315f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.bucket_count() >= 5);
316f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.size() == 4);
317f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.at(1) == "one");
318f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.at(2) == "two");
3190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch        assert(c2.at(3) == "three");
320f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.at(4) == "four");
321f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.hash_function() == Hash(1));
322f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.key_eq() == Compare(1));
323f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)        assert(c2.get_allocator() == Alloc(1));
324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        assert(std::distance(c2.begin(), c2.end()) == c2.size());
325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
326116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        assert(c2.max_load_factor() == 1);
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
3292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef test_hash<std::hash<int> > Hash;
3302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef test_compare<std::equal_to<int> > Compare;
3312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef other_allocator<std::pair<const int, std::string> > Alloc;
3322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef std::unordered_map<int, std::string, Hash, Compare, Alloc> C;
3332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        typedef std::pair<int, std::string> P;
3342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        P a1[] =
3352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        {
3362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(1, "one"),
3372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(2, "two"),
3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(3, "three"),
3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(4, "four"),
3402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(1, "four"),
3412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(2, "four"),
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        };
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        P a2[] =
3442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        {
3452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(10, "ten"),
3465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            P(20, "twenty"),
3475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            P(30, "thirty"),
3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(40, "fourty"),
3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(50, "fifty"),
3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(60, "sixty"),
3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            P(70, "seventy"),
3525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            P(80, "eighty"),
3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        };
3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c1(std::begin(a1), std::end(a1), 0, Hash(1), Compare(1), Alloc(1));
3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        C c2(std::begin(a2), std::end(a2), 0, Hash(2), Compare(2), Alloc(2));
3565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        c2.max_load_factor(2);
3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        c1.swap(c2);
3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.bucket_count() >= 11);
3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.size() == 8);
3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(10) == "ten");
3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(20) == "twenty");
3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(30) == "thirty");
3645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(40) == "fourty");
3655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(50) == "fifty");
3665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(60) == "sixty");
3675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c1.at(70) == "seventy");
3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.at(80) == "eighty");
3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.hash_function() == Hash(2));
3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.key_eq() == Compare(2));
3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.get_allocator() == Alloc(2));
3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c1.begin(), c1.end()) == c1.size());
3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(std::distance(c1.cbegin(), c1.cend()) == c1.size());
3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c1.max_load_factor() == 2);
3755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
3765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c2.bucket_count() >= 5);
3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.size() == 4);
378c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        assert(c2.at(1) == "one");
3795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c2.at(2) == "two");
3805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c2.at(3) == "three");
3812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.at(4) == "four");
3825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        assert(c2.hash_function() == Hash(1));
3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.key_eq() == Compare(1));
3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        assert(c2.get_allocator() == Alloc(1));
385868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)        assert(std::distance(c2.begin(), c2.end()) == c2.size());
386868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)        assert(std::distance(c2.cbegin(), c2.cend()) == c2.size());
387868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)        assert(c2.max_load_factor() == 1);
388868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    }
389868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
3902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)