1// { dg-options "-std=gnu++0x" } 2 3// 2010-03-25 Paolo Carlini <paolo.carlini@oracle.com> 4 5// Copyright (C) 2010 Free Software Foundation, Inc. 6// 7// This file is part of the GNU ISO C++ Library. This library is free 8// software; you can redistribute it and/or modify it under the 9// terms of the GNU General Public License as published by the 10// Free Software Foundation; either version 3, or (at your option) 11// any later version. 12// 13// This library is distributed in the hope that it will be useful, 14// but WITHOUT ANY WARRANTY; without even the implied warranty of 15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16// GNU General Public License for more details. 17// 18// You should have received a copy of the GNU General Public License along 19// with this library; see the file COPYING3. If not see 20// <http://www.gnu.org/licenses/>. 21 22#include <unordered_map> 23#include <testsuite_hooks.h> 24 25void test01() 26{ 27 bool test __attribute__((unused)) = true; 28 29 typedef std::pair<const int, int> Pair; 30 std::unordered_map<int, int> um1, um2; 31 VERIFY( um1 == um2 ); 32 VERIFY( !(um1 != um2) ); 33 34 um1.insert(Pair(1, -1)); 35 um2.insert(Pair(1, -1)); 36 VERIFY( um1 == um2 ); 37 VERIFY( !(um1 != um2) ); 38 39 um1.insert(Pair(2, -1)); 40 um2.insert(Pair(2, -1)); 41 VERIFY( um1 == um2 ); 42 VERIFY( !(um1 != um2) ); 43 44 um1.insert(Pair(1, -1)); 45 um2.insert(Pair(1, -1)); 46 VERIFY( um1 == um2 ); 47 VERIFY( !(um1 != um2) ); 48 49 um1.insert(Pair(3, -3)); 50 VERIFY( um1 != um2 ); 51 VERIFY( !(um1 == um2) ); 52 53 um2.insert(Pair(3, -3)); 54 VERIFY( (um1 == um2) ); 55 VERIFY( !(um1 != um2) ); 56 57 um2.clear(); 58 VERIFY( um1 != um2 ); 59 VERIFY( !(um1 == um2) ); 60 61 um1.clear(); 62 VERIFY( um1 == um2 ); 63 VERIFY( !(um1 != um2) ); 64 65 um1.insert(Pair(1, -1)); 66 um2.insert(Pair(2, -2)); 67 VERIFY( um1 != um2 ); 68 VERIFY( !(um1 == um2) ); 69 70 um1.insert(Pair(2, -2)); 71 um2.insert(Pair(1, -1)); 72 VERIFY( um1 == um2 ); 73 VERIFY( !(um1 != um2) ); 74 75 um1.insert(Pair(3, -3)); 76 um2.insert(Pair(4, -4)); 77 VERIFY( um1 != um2 ); 78 VERIFY( !(um1 == um2) ); 79 80 um1.insert(Pair(4, -4)); 81 VERIFY( um1 != um2 ); 82 VERIFY( !(um1 == um2) ); 83 84 um2.insert(Pair(3, -3)); 85 VERIFY( um1 == um2 ); 86 VERIFY( !(um1 != um2) ); 87 88 um1.insert(Pair(1, -1)); 89 um2.insert(Pair(1, -1)); 90 VERIFY( um1 == um2 ); 91 VERIFY( !(um1 != um2) ); 92 93 um1.insert(Pair(4, -4)); 94 um2.insert(Pair(4, -4)); 95 VERIFY( um1 == um2 ); 96 VERIFY( !(um1 != um2) ); 97 98 um1.clear(); 99 um2.clear(); 100 VERIFY( um1 == um2 ); 101 VERIFY( !(um1 != um2) ); 102 103 um1.insert(Pair(1, -1)); 104 um2.insert(Pair(1, -2)); 105 VERIFY( um1 != um2 ); 106 VERIFY( !(um1 == um2) ); 107 108 um1.clear(); 109 um2.clear(); 110 VERIFY( um1 == um2 ); 111 VERIFY( !(um1 != um2) ); 112 113 um1.insert(Pair(1, -1)); 114 um2.insert(Pair(1, -1)); 115 VERIFY( um1 == um2 ); 116 VERIFY( !(um1 != um2) ); 117 118 um1.insert(Pair(2, -2)); 119 um2.insert(Pair(2, -3)); 120 VERIFY( um1 != um2 ); 121 VERIFY( !(um1 == um2) ); 122 123 um1.insert(Pair(2, -3)); 124 um2.insert(Pair(2, -2)); 125 VERIFY( um1 != um2 ); 126 VERIFY( !(um1 == um2) ); 127 128 um1.clear(); 129 um2.clear(); 130 VERIFY( um1 == um2 ); 131 VERIFY( !(um1 != um2) ); 132 133 um1.insert(Pair(2, -2)); 134 um2.insert(Pair(2, -3)); 135 VERIFY( um1 != um2 ); 136 VERIFY( !(um1 == um2) ); 137 138 um1.insert(Pair(1, -1)); 139 um2.insert(Pair(1, -1)); 140 VERIFY( um1 != um2 ); 141 VERIFY( !(um1 == um2) ); 142 143 um1.insert(Pair(2, -3)); 144 um2.insert(Pair(2, -2)); 145 VERIFY( um1 != um2 ); 146 VERIFY( !(um1 == um2) ); 147 148 um1.insert(Pair(1, -1)); 149 um2.insert(Pair(1, -1)); 150 VERIFY( um1 != um2 ); 151 VERIFY( !(um1 == um2) ); 152 153 um1.insert(Pair(1, -1)); 154 um2.insert(Pair(1, -2)); 155 VERIFY( um1 != um2 ); 156 VERIFY( !(um1 == um2) ); 157 158 const std::unordered_map<int, int> cum1(um1), cum2(um2); 159 VERIFY( cum1 != cum2 ); 160 VERIFY( !(cum1 == cum2) ); 161 VERIFY( cum1 != um2 ); 162 VERIFY( !(um1 == cum2) ); 163} 164 165int main() 166{ 167 test01(); 168 return 0; 169} 170