16bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky//===- unittest/ADT/MapVectorTest.cpp - MapVector unit tests ----*- C++ -*-===// 26bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky// 36bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky// The LLVM Compiler Infrastructure 46bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky// 56bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky// This file is distributed under the University of Illinois Open Source 66bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky// License. See LICENSE.TXT for details. 76bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky// 86bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky//===----------------------------------------------------------------------===// 96bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 106bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky#include "gtest/gtest.h" 116bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky#include "llvm/ADT/MapVector.h" 126bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky#include <utility> 136bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 146bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewyckyusing namespace llvm; 156bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 161f1713ff7a53c9c491c59886984f6a0534ce3630Douglas GregorTEST(MapVectorTest, insert_pop) { 176bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky MapVector<int, int> MV; 186bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky std::pair<MapVector<int, int>::iterator, bool> R; 196bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 206bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky R = MV.insert(std::make_pair(1, 2)); 216bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky ASSERT_EQ(R.first, MV.begin()); 226bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(R.first->first, 1); 236bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(R.first->second, 2); 246bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_TRUE(R.second); 256bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 266bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky R = MV.insert(std::make_pair(1, 3)); 276bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky ASSERT_EQ(R.first, MV.begin()); 286bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(R.first->first, 1); 296bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(R.first->second, 2); 306bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_FALSE(R.second); 316bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 326bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky R = MV.insert(std::make_pair(4, 5)); 336bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky ASSERT_NE(R.first, MV.end()); 346bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(R.first->first, 4); 356bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(R.first->second, 5); 366bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_TRUE(R.second); 376bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky 386bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(MV.size(), 2u); 396bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(MV[1], 2); 406bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky EXPECT_EQ(MV[4], 5); 411f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor 421f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor MV.pop_back(); 431f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(MV.size(), 1u); 441f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(MV[1], 2); 451f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor 461f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor R = MV.insert(std::make_pair(4, 7)); 471f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor ASSERT_NE(R.first, MV.end()); 481f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(R.first->first, 4); 491f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(R.first->second, 7); 501f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_TRUE(R.second); 511f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor 521f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(MV.size(), 2u); 531f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(MV[1], 2); 541f1713ff7a53c9c491c59886984f6a0534ce3630Douglas Gregor EXPECT_EQ(MV[4], 7); 556bbf4ff9c545c881422da37494b1ccb9c18d9c6aNick Lewycky} 56