12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright 2020 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/containers/contains.h"
- #include <set>
- #include <string>
- #include "base/containers/flat_set.h"
- #include "base/functional/identity.h"
- #include "base/strings/string_piece.h"
- #include "base/strings/string_util.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace base {
- TEST(ContainsTest, GenericContains) {
- constexpr char allowed_chars[] = {'a', 'b', 'c', 'd'};
- static_assert(Contains(allowed_chars, 'a'), "");
- static_assert(!Contains(allowed_chars, 'z'), "");
- static_assert(!Contains(allowed_chars, 0), "");
- constexpr char allowed_chars_including_nul[] = "abcd";
- static_assert(Contains(allowed_chars_including_nul, 0), "");
- }
- TEST(ContainsTest, GenericContainsWithProjection) {
- const char allowed_chars[] = {'A', 'B', 'C', 'D'};
- EXPECT_TRUE(Contains(allowed_chars, 'a', &ToLowerASCII<char>));
- EXPECT_FALSE(Contains(allowed_chars, 'z', &ToLowerASCII<char>));
- EXPECT_FALSE(Contains(allowed_chars, 0, &ToLowerASCII<char>));
- }
- TEST(ContainsTest, GenericSetContainsWithProjection) {
- constexpr StringPiece kFoo = "foo";
- std::set<std::string> set = {"foo", "bar", "baz"};
- // Opt into a linear search by explicitly providing a projection:
- EXPECT_TRUE(Contains(set, kFoo, identity{}));
- }
- TEST(ContainsTest, ContainsWithFindAndNpos) {
- std::string str = "abcd";
- EXPECT_TRUE(Contains(str, 'a'));
- EXPECT_FALSE(Contains(str, 'z'));
- EXPECT_FALSE(Contains(str, 0));
- }
- TEST(ContainsTest, ContainsWithFindAndEnd) {
- std::set<int> set = {1, 2, 3, 4};
- EXPECT_TRUE(Contains(set, 1));
- EXPECT_FALSE(Contains(set, 5));
- EXPECT_FALSE(Contains(set, 0));
- }
- TEST(ContainsTest, ContainsWithContains) {
- flat_set<int> set = {1, 2, 3, 4};
- EXPECT_TRUE(Contains(set, 1));
- EXPECT_FALSE(Contains(set, 5));
- EXPECT_FALSE(Contains(set, 0));
- }
- } // namespace base
|