eq.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <unordered_map> 11 12// template <class Key, class T, class Hash, class Pred, class Alloc> 13// bool 14// operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& x, 15// const unordered_map<Key, T, Hash, Pred, Alloc>& y); 16// 17// template <class Key, class T, class Hash, class Pred, class Alloc> 18// bool 19// operator!=(const unordered_map<Key, T, Hash, Pred, Alloc>& x, 20// const unordered_map<Key, T, Hash, Pred, Alloc>& y); 21 22#include <unordered_map> 23#include <string> 24#include <cassert> 25 26int main() 27{ 28 { 29 typedef std::unordered_map<int, std::string> C; 30 typedef std::pair<int, std::string> P; 31 P a[] = 32 { 33 P(10, "ten"), 34 P(20, "twenty"), 35 P(30, "thirty"), 36 P(40, "fourty"), 37 P(50, "fifty"), 38 P(60, "sixty"), 39 P(70, "seventy"), 40 P(80, "eighty"), 41 }; 42 const C c1(std::begin(a), std::end(a)); 43 const C c2; 44 assert(!(c1 == c2)); 45 assert( (c1 != c2)); 46 } 47 { 48 typedef std::unordered_map<int, std::string> C; 49 typedef std::pair<int, std::string> P; 50 P a[] = 51 { 52 P(10, "ten"), 53 P(20, "twenty"), 54 P(30, "thirty"), 55 P(40, "fourty"), 56 P(50, "fifty"), 57 P(60, "sixty"), 58 P(70, "seventy"), 59 P(80, "eighty"), 60 }; 61 const C c1(std::begin(a), std::end(a)); 62 const C c2 = c1; 63 assert( (c1 == c2)); 64 assert(!(c1 != c2)); 65 } 66 { 67 typedef std::unordered_map<int, std::string> C; 68 typedef std::pair<int, std::string> P; 69 P a[] = 70 { 71 P(10, "ten"), 72 P(20, "twenty"), 73 P(30, "thirty"), 74 P(40, "fourty"), 75 P(50, "fifty"), 76 P(60, "sixty"), 77 P(70, "seventy"), 78 P(80, "eighty"), 79 }; 80 C c1(std::begin(a), std::end(a)); 81 C c2 = c1; 82 c2.rehash(30); 83 assert( (c1 == c2)); 84 assert(!(c1 != c2)); 85 c2.insert(P(90, "ninety")); 86 assert(!(c1 == c2)); 87 assert( (c1 != c2)); 88 c1.insert(P(90, "ninety")); 89 assert( (c1 == c2)); 90 assert(!(c1 != c2)); 91 } 92} 93