1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
14 // multiset& operator=(const multiset& s);
19 #include "../../../test_compare.h"
20 #include "test_allocator.h"
38 typedef test_compare<std::less<int> > C;
39 typedef test_allocator<V> A;
40 std::multiset<int, C, A> mo(ar, ar+sizeof(ar)/sizeof(ar[0]), C(5), A(2));
41 std::multiset<int, C, A> m(ar, ar+sizeof(ar)/sizeof(ar[0])/2, C(3), A(7));
43 assert(m.get_allocator() == A(7));
44 assert(m.key_comp() == C(5));
45 assert(m.size() == 9);
46 assert(distance(m.begin(), m.end()) == 9);
47 assert(*next(m.begin(), 0) == 1);
48 assert(*next(m.begin(), 1) == 1);
49 assert(*next(m.begin(), 2) == 1);
50 assert(*next(m.begin(), 3) == 2);
51 assert(*next(m.begin(), 4) == 2);
52 assert(*next(m.begin(), 5) == 2);
53 assert(*next(m.begin(), 6) == 3);
54 assert(*next(m.begin(), 7) == 3);
55 assert(*next(m.begin(), 8) == 3);
57 assert(mo.get_allocator() == A(2));
58 assert(mo.key_comp() == C(5));
59 assert(mo.size() == 9);
60 assert(distance(mo.begin(), mo.end()) == 9);
61 assert(*next(mo.begin(), 0) == 1);
62 assert(*next(mo.begin(), 1) == 1);
63 assert(*next(mo.begin(), 2) == 1);
64 assert(*next(mo.begin(), 3) == 2);
65 assert(*next(mo.begin(), 4) == 2);
66 assert(*next(mo.begin(), 5) == 2);
67 assert(*next(mo.begin(), 6) == 3);
68 assert(*next(mo.begin(), 7) == 3);
69 assert(*next(mo.begin(), 8) == 3);
85 std::multiset<int> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
86 std::multiset<int> *p = &m;
88 assert(m.size() == 9);
89 assert(std::equal(m.begin(), m.end(), ar));
105 typedef test_compare<std::less<int> > C;
106 typedef other_allocator<V> A;
107 std::multiset<int, C, A> mo(ar, ar+sizeof(ar)/sizeof(ar[0]), C(5), A(2));
108 std::multiset<int, C, A> m(ar, ar+sizeof(ar)/sizeof(ar[0])/2, C(3), A(7));
110 assert(m.get_allocator() == A(2));
111 assert(m.key_comp() == C(5));
112 assert(m.size() == 9);
113 assert(distance(m.begin(), m.end()) == 9);
114 assert(*next(m.begin(), 0) == 1);
115 assert(*next(m.begin(), 1) == 1);
116 assert(*next(m.begin(), 2) == 1);
117 assert(*next(m.begin(), 3) == 2);
118 assert(*next(m.begin(), 4) == 2);
119 assert(*next(m.begin(), 5) == 2);
120 assert(*next(m.begin(), 6) == 3);
121 assert(*next(m.begin(), 7) == 3);
122 assert(*next(m.begin(), 8) == 3);
124 assert(mo.get_allocator() == A(2));
125 assert(mo.key_comp() == C(5));
126 assert(mo.size() == 9);
127 assert(distance(mo.begin(), mo.end()) == 9);
128 assert(*next(mo.begin(), 0) == 1);
129 assert(*next(mo.begin(), 1) == 1);
130 assert(*next(mo.begin(), 2) == 1);
131 assert(*next(mo.begin(), 3) == 2);
132 assert(*next(mo.begin(), 4) == 2);
133 assert(*next(mo.begin(), 5) == 2);
134 assert(*next(mo.begin(), 6) == 3);
135 assert(*next(mo.begin(), 7) == 3);
136 assert(*next(mo.begin(), 8) == 3);