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