load_factor.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02
1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===//
2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//
3bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// ��������������������The LLVM Compiler Infrastructure
4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//
5bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// This file is distributed under the University of Illinois Open Source
6bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// License. See LICENSE.TXT for details.
7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//
8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===//
9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <unordered_set>
11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,
13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//           class Alloc = allocator<Value>>
14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// class unordered_set
15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// float load_factor() const
17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <unordered_set>
19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cassert>
20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main()
22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{
23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    {
24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        typedef std::unordered_set<int> C;
25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        typedef int P;
26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        P a[] =
27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        {
28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(10),
29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(20),
30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(30),
31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(40),
32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(50),
33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(60),
34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(70),
35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant            P(80)
36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        };
37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        const C c(std::begin(a), std::end(a));
38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        assert(c.load_factor() == (float)c.size() / c.bucket_count());
39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    }
40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    {
41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        typedef std::unordered_set<int> C;
42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        typedef int P;
43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        const C c;
44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant        assert(c.load_factor() == 0);
45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    }
46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant}
47