// 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 #include "testing/gtest/include/gtest/gtest.h" namespace base { namespace { TEST(STLUtilTest, STLIsSorted) { { std::set set; set.insert(24); set.insert(1); set.insert(12); EXPECT_TRUE(STLIsSorted(set)); } { std::vector 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 a1; a1.insert(1); a1.insert(2); a1.insert(3); a1.insert(4); std::set a2; a2.insert(3); a2.insert(4); a2.insert(5); a2.insert(6); a2.insert(7); { std::set difference; difference.insert(1); difference.insert(2); EXPECT_EQ(difference, STLSetDifference >(a1, a2)); } { std::set difference; difference.insert(5); difference.insert(6); difference.insert(7); EXPECT_EQ(difference, STLSetDifference >(a2, a1)); } { std::vector difference; difference.push_back(1); difference.push_back(2); EXPECT_EQ(difference, STLSetDifference >(a1, a2)); } { std::vector difference; difference.push_back(5); difference.push_back(6); difference.push_back(7); EXPECT_EQ(difference, STLSetDifference >(a2, a1)); } } } // namespace } // namespace base