mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 19:27:45 +00:00
AK+Tests: Add Vector::find_first_index_if()
This commit is contained in:
parent
1352f8820b
commit
89e55c5297
2 changed files with 17 additions and 0 deletions
|
@ -796,6 +796,15 @@ public:
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename TUnaryPredicate>
|
||||||
|
Optional<size_t> find_first_index_if(TUnaryPredicate&& finder) const
|
||||||
|
{
|
||||||
|
auto maybe_result = AK::find_if(begin(), end(), finder);
|
||||||
|
if (maybe_result == end())
|
||||||
|
return {};
|
||||||
|
return maybe_result.index();
|
||||||
|
}
|
||||||
|
|
||||||
void reverse()
|
void reverse()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < size() / 2; ++i)
|
for (size_t i = 0; i < size() / 2; ++i)
|
||||||
|
|
|
@ -423,6 +423,14 @@ TEST_CASE(should_find_index)
|
||||||
EXPECT(!v.find_first_index(42).has_value());
|
EXPECT(!v.find_first_index(42).has_value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE(should_find_predicate_index)
|
||||||
|
{
|
||||||
|
Vector<int> v { 1, 2, 3, 4, 0, 6, 7, 8, 0, 0 };
|
||||||
|
|
||||||
|
EXPECT_EQ(4u, v.find_first_index_if([](auto const v) { return v == 0; }).value());
|
||||||
|
EXPECT(!v.find_first_index_if([](auto const v) { return v == 123; }).has_value());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE(should_contain_start)
|
TEST_CASE(should_contain_start)
|
||||||
{
|
{
|
||||||
// Tests whether value is found if at the start of the range.
|
// Tests whether value is found if at the start of the range.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue