AK: Add ::ends_with() to Utf16View and Utf16StringBase

I noticed that we can significantly simplify ::starts_with(), and based
the new ::ends_with() on that.
This commit is contained in:
Jelle Raaijmakers 2025-07-23 09:56:19 +02:00 committed by Tim Flynn
parent 7f8468b0e6
commit 15178d5230
Notes: github-actions[bot] 2025-07-24 11:19:55 +00:00
3 changed files with 40 additions and 13 deletions

View file

@ -568,6 +568,32 @@ TEST_CASE(starts_with)
EXPECT(!emoji.starts_with(u"🙃"sv));
}
TEST_CASE(ends_with)
{
EXPECT(Utf16View {}.ends_with(u""sv));
EXPECT(!Utf16View {}.ends_with(u" "sv));
EXPECT(u"a"sv.ends_with(u""sv));
EXPECT(u"a"sv.ends_with(u"a"sv));
EXPECT(!u"a"sv.ends_with(u"b"sv));
EXPECT(!u"a"sv.ends_with(u"ab"sv));
EXPECT(u"abc"sv.ends_with(u""sv));
EXPECT(u"abc"sv.ends_with(u"c"sv));
EXPECT(u"abc"sv.ends_with(u"bc"sv));
EXPECT(u"abc"sv.ends_with(u"abc"sv));
EXPECT(!u"abc"sv.ends_with(u"b"sv));
EXPECT(!u"abc"sv.ends_with(u"ab"sv));
auto emoji = u"😀🙃"sv;
EXPECT(emoji.ends_with(u""sv));
EXPECT(emoji.ends_with(u"🙃"sv));
EXPECT(emoji.ends_with(u"😀🙃"sv));
EXPECT(!emoji.ends_with(u"a"sv));
EXPECT(!emoji.ends_with(u"😀"sv));
}
TEST_CASE(find_code_unit_offset)
{
auto conversion_result = Utf16String::from_utf8("😀foo😀bar"sv);