1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 01:07:44 +00:00

AK: Add a Utf16View::starts_with method

Based heavily on Utf8View::starts_with.
This commit is contained in:
Timothy Flynn 2024-01-03 13:17:57 -05:00 committed by Andreas Kling
parent c46ba7e68d
commit 1b4a23095c
3 changed files with 47 additions and 0 deletions

View file

@ -310,3 +310,29 @@ TEST_CASE(substring_view)
EXPECT_EQ(MUST(view.to_utf8(Utf16View::AllowInvalidCodeUnits::No)), "\ufffd"sv);
}
}
TEST_CASE(starts_with)
{
EXPECT(Utf16View {}.starts_with(u""));
EXPECT(!Utf16View {}.starts_with(u" "));
EXPECT(Utf16View { u"a" }.starts_with(u""));
EXPECT(Utf16View { u"a" }.starts_with(u"a"));
EXPECT(!Utf16View { u"a" }.starts_with(u"b"));
EXPECT(!Utf16View { u"a" }.starts_with(u"ab"));
EXPECT(Utf16View { u"abc" }.starts_with(u""));
EXPECT(Utf16View { u"abc" }.starts_with(u"a"));
EXPECT(Utf16View { u"abc" }.starts_with(u"ab"));
EXPECT(Utf16View { u"abc" }.starts_with(u"abc"));
EXPECT(!Utf16View { u"abc" }.starts_with(u"b"));
EXPECT(!Utf16View { u"abc" }.starts_with(u"bc"));
auto emoji = Utf16View { u"😀🙃" };
EXPECT(emoji.starts_with(u""));
EXPECT(emoji.starts_with(u"😀"));
EXPECT(emoji.starts_with(u"😀🙃"));
EXPECT(!emoji.starts_with(u"a"));
EXPECT(!emoji.starts_with(u"🙃"));
}