size.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//===----------------------------------------------------------------------===//
26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//
36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//
56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open
66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details.
76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//===----------------------------------------------------------------------===//
96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// <unordered_map>
116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,
136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)//           class Alloc = allocator<pair<const Key, T>>>
146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// class unordered_map
156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// unordered_map(size_type n);
176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include <unordered_map>
196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include <cassert>
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "../../../NotConstructible.h"
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "../../../test_compare.h"
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "../../../test_hash.h"
246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "../../../test_allocator.h"
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)int main()
276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles){
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    {
296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        typedef std::unordered_map<NotConstructible, NotConstructible,
306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                                   test_hash<std::hash<NotConstructible> >,
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                                   test_compare<std::equal_to<NotConstructible> >,
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                                   test_allocator<std::pair<const NotConstructible,
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                                                                  NotConstructible> >
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                                   > C;
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        C c(7);
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.bucket_count() == 7);
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.hash_function() == test_hash<std::hash<NotConstructible> >());
386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.key_eq() == test_compare<std::equal_to<NotConstructible> >());
396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.get_allocator() ==
406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)               (test_allocator<std::pair<const NotConstructible, NotConstructible> >()));
416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.size() == 0);
426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.empty());
436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(std::distance(c.begin(), c.end()) == 0);
446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.load_factor() == 0);
456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)        assert(c.max_load_factor() == 1);
466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    }
476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)}
486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)