// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/stl_util.h" #include <set> #include "testing/gtest/include/gtest/gtest.h" namespace base { namespace { TEST(STLUtilTest, STLIsSorted) { { std::set<int> set; set.insert(24); set.insert(1); set.insert(12); EXPECT_TRUE(STLIsSorted(set)); } { std::vector<int> vector; vector.push_back(1); vector.push_back(1); vector.push_back(4); vector.push_back(64); vector.push_back(12432); EXPECT_TRUE(STLIsSorted(vector)); vector.back() = 1; EXPECT_FALSE(STLIsSorted(vector)); } } TEST(STLUtilTest, STLSetDifference) { std::set<int> a1; a1.insert(1); a1.insert(2); a1.insert(3); a1.insert(4); std::set<int> a2; a2.insert(3); a2.insert(4); a2.insert(5); a2.insert(6); a2.insert(7); { std::set<int> difference; difference.insert(1); difference.insert(2); EXPECT_EQ(difference, STLSetDifference<std::set<int> >(a1, a2)); } { std::set<int> difference; difference.insert(5); difference.insert(6); difference.insert(7); EXPECT_EQ(difference, STLSetDifference<std::set<int> >(a2, a1)); } { std::vector<int> difference; difference.push_back(1); difference.push_back(2); EXPECT_EQ(difference, STLSetDifference<std::vector<int> >(a1, a2)); } { std::vector<int> difference; difference.push_back(5); difference.push_back(6); difference.push_back(7); EXPECT_EQ(difference, STLSetDifference<std::vector<int> >(a2, a1)); } } } // namespace } // namespace base