1// { dg-options "-std=gnu++11" } 2 3// 2010-03-25 Paolo Carlini <paolo.carlini@oracle.com> 4 5// Copyright (C) 2010-2015 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_set> 23#include <testsuite_hooks.h> 24 25void test01() 26{ 27 bool test __attribute__((unused)) = true; 28 29 std::unordered_set<int> us1, us2; 30 VERIFY( us1 == us2 ); 31 VERIFY( !(us1 != us2) ); 32 33 us1.insert(1); 34 us2.insert(1); 35 VERIFY( us1 == us2 ); 36 VERIFY( !(us1 != us2) ); 37 38 us1.insert(2); 39 us2.insert(2); 40 VERIFY( us1 == us2 ); 41 VERIFY( !(us1 != us2) ); 42 43 us1.insert(1); 44 us2.insert(1); 45 VERIFY( us1 == us2 ); 46 VERIFY( !(us1 != us2) ); 47 48 us1.insert(3); 49 VERIFY( us1 != us2 ); 50 VERIFY( !(us1 == us2) ); 51 52 us2.insert(3); 53 VERIFY( (us1 == us2) ); 54 VERIFY( !(us1 != us2) ); 55 56 us2.clear(); 57 VERIFY( us1 != us2 ); 58 VERIFY( !(us1 == us2) ); 59 60 us1.clear(); 61 VERIFY( us1 == us2 ); 62 VERIFY( !(us1 != us2) ); 63 64 us1.insert(1); 65 us2.insert(2); 66 VERIFY( us1 != us2 ); 67 VERIFY( !(us1 == us2) ); 68 69 us1.insert(2); 70 us2.insert(1); 71 VERIFY( us1 == us2 ); 72 VERIFY( !(us1 != us2) ); 73 74 us1.insert(3); 75 us2.insert(4); 76 VERIFY( us1 != us2 ); 77 VERIFY( !(us1 == us2) ); 78 79 us1.insert(4); 80 VERIFY( us1 != us2 ); 81 VERIFY( !(us1 == us2) ); 82 83 us2.insert(3); 84 VERIFY( us1 == us2 ); 85 VERIFY( !(us1 != us2) ); 86 87 us1.insert(1); 88 us2.insert(1); 89 VERIFY( us1 == us2 ); 90 VERIFY( !(us1 != us2) ); 91 92 us1.insert(4); 93 us2.insert(4); 94 VERIFY( us1 == us2 ); 95 VERIFY( !(us1 != us2) ); 96 97 const std::unordered_set<int> cus1(us1), cus2(us2); 98 VERIFY( cus1 == cus2 ); 99 VERIFY( !(cus1 != cus2) ); 100 VERIFY( cus1 == us2 ); 101 VERIFY( !(us1 != cus2) ); 102} 103 104int main() 105{ 106 test01(); 107 return 0; 108} 109