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