diff options
author | Abseil Team <absl-team@google.com> | 2024-06-26 14:45:44 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-06-26 14:46:45 -0700 |
commit | 63d4b2fe1e0d4bd6a7b916f398643db40c35624b (patch) | |
tree | c2e28b160f1e3a942ccb0799e893999ae144dfea /absl/algorithm/container_test.cc | |
parent | c98bd9c8840f9ded87cf1fd1238455468d325628 (diff) | |
download | abseil-63d4b2fe1e0d4bd6a7b916f398643db40c35624b.tar.gz abseil-63d4b2fe1e0d4bd6a7b916f398643db40c35624b.tar.bz2 abseil-63d4b2fe1e0d4bd6a7b916f398643db40c35624b.zip |
Add `c_contains()` and `c_contains_subrange()` to `absl/algorithm/container.h`.
These functions are based on the C++23's `std::ranges::contains()` and `std::ranges::contains_subrange()` functions, see: https://en.cppreference.com/w/cpp/algorithm/ranges/contains
PiperOrigin-RevId: 647084955
Change-Id: If5a01784e3cf1cc4d88e7f2fef92a3701fafc886
Diffstat (limited to 'absl/algorithm/container_test.cc')
-rw-r--r-- | absl/algorithm/container_test.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/absl/algorithm/container_test.cc b/absl/algorithm/container_test.cc index c01f5fc0..7e54e2b2 100644 --- a/absl/algorithm/container_test.cc +++ b/absl/algorithm/container_test.cc @@ -113,6 +113,11 @@ TEST_F(NonMutatingTest, FindReturnsCorrectType) { absl::c_find(absl::implicit_cast<const std::list<int>&>(sequence_), 3); } +TEST_F(NonMutatingTest, Contains) { + EXPECT_TRUE(absl::c_contains(container_, 3)); + EXPECT_FALSE(absl::c_contains(container_, 4)); +} + TEST_F(NonMutatingTest, FindIf) { absl::c_find_if(container_, Predicate); } TEST_F(NonMutatingTest, FindIfNot) { @@ -305,6 +310,17 @@ TEST_F(NonMutatingTest, SearchWithPredicate) { absl::c_search(vector_, sequence_, BinPredicate); } +TEST_F(NonMutatingTest, ContainsSubrange) { + EXPECT_TRUE(absl::c_contains_subrange(sequence_, vector_)); + EXPECT_TRUE(absl::c_contains_subrange(vector_, sequence_)); + EXPECT_TRUE(absl::c_contains_subrange(array_, sequence_)); +} + +TEST_F(NonMutatingTest, ContainsSubrangeWithPredicate) { + EXPECT_TRUE(absl::c_contains_subrange(sequence_, vector_, Equals)); + EXPECT_TRUE(absl::c_contains_subrange(vector_, sequence_, Equals)); +} + TEST_F(NonMutatingTest, SearchN) { absl::c_search_n(sequence_, 3, 1); } TEST_F(NonMutatingTest, SearchNWithPredicate) { |