12544788eSJun Bum Lim //===- llvm/unittest/ADT/SetVector.cpp ------------------------------===//
22544788eSJun Bum Lim //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
62544788eSJun Bum Lim //
72544788eSJun Bum Lim //===----------------------------------------------------------------------===//
82544788eSJun Bum Lim //
92544788eSJun Bum Lim // SetVector unit tests.
102544788eSJun Bum Lim //
112544788eSJun Bum Lim //===----------------------------------------------------------------------===//
122544788eSJun Bum Lim 
132544788eSJun Bum Lim #include "llvm/ADT/SetVector.h"
142544788eSJun Bum Lim #include "gtest/gtest.h"
152544788eSJun Bum Lim 
162544788eSJun Bum Lim using namespace llvm;
172544788eSJun Bum Lim 
TEST(SetVector,EraseTest)182544788eSJun Bum Lim TEST(SetVector, EraseTest) {
192544788eSJun Bum Lim   SetVector<int> S;
202544788eSJun Bum Lim   S.insert(0);
212544788eSJun Bum Lim   S.insert(1);
222544788eSJun Bum Lim   S.insert(2);
232544788eSJun Bum Lim 
242544788eSJun Bum Lim   auto I = S.erase(std::next(S.begin()));
252544788eSJun Bum Lim 
262544788eSJun Bum Lim   // Test that the returned iterator is the expected one-after-erase
272544788eSJun Bum Lim   // and the size/contents is the expected sequence {0, 2}.
282544788eSJun Bum Lim   EXPECT_EQ(std::next(S.begin()), I);
292544788eSJun Bum Lim   EXPECT_EQ(2u, S.size());
302544788eSJun Bum Lim   EXPECT_EQ(0, *S.begin());
312544788eSJun Bum Lim   EXPECT_EQ(2, *std::next(S.begin()));
322544788eSJun Bum Lim }
332544788eSJun Bum Lim 
TEST(SetVector,ContainsTest)34*1d8eef41SDavid Blaikie TEST(SetVector, ContainsTest) {
35*1d8eef41SDavid Blaikie   SetVector<int> S;
36*1d8eef41SDavid Blaikie   S.insert(0);
37*1d8eef41SDavid Blaikie   S.insert(1);
38*1d8eef41SDavid Blaikie   S.insert(2);
39*1d8eef41SDavid Blaikie 
40*1d8eef41SDavid Blaikie   EXPECT_TRUE(S.contains(0));
41*1d8eef41SDavid Blaikie   EXPECT_TRUE(S.contains(1));
42*1d8eef41SDavid Blaikie   EXPECT_TRUE(S.contains(2));
43*1d8eef41SDavid Blaikie   EXPECT_FALSE(S.contains(-1));
44*1d8eef41SDavid Blaikie 
45*1d8eef41SDavid Blaikie   S.insert(2);
46*1d8eef41SDavid Blaikie   EXPECT_TRUE(S.contains(2));
47*1d8eef41SDavid Blaikie 
48*1d8eef41SDavid Blaikie   S.remove(2);
49*1d8eef41SDavid Blaikie   EXPECT_FALSE(S.contains(2));
50*1d8eef41SDavid Blaikie }
51