AK: Implement a method to count instances of a needle in a UTF-16 string

This commit is contained in:
Timothy Flynn 2025-07-26 09:59:47 -04:00 β€’ committed by Andreas Kling
parent b6732240c7
commit 48a3b2c28e
Notes: github-actions[bot] 2025-07-28 10:27:19 +00:00
3 changed files with 40 additions and 0 deletions

View file

@ -558,6 +558,30 @@ TEST_CASE(contains)
EXPECT(u"abπŸ˜€"sv.contains(u"πŸ˜€"sv));
}
TEST_CASE(count)
{
EXPECT_EQ(u""sv.count({}), 0uz);
EXPECT_EQ(u"abc"sv.count({}), 3uz);
EXPECT_EQ(u""sv.count(u"a"sv), 0uz);
EXPECT_EQ(u"abc"sv.count(u"a"sv), 1uz);
EXPECT_EQ(u"abc"sv.count(u"b"sv), 1uz);
EXPECT_EQ(u"abc"sv.count(u"c"sv), 1uz);
EXPECT_EQ(u"abc"sv.count(u"ab"sv), 1uz);
EXPECT_EQ(u"abc"sv.count(u"bc"sv), 1uz);
EXPECT_EQ(u"abc"sv.count(u"abc"sv), 1uz);
EXPECT_EQ(u"abc"sv.count(u"d"sv), 0uz);
EXPECT_EQ(u"aaaa"sv.count(u"aa"sv), 3uz);
EXPECT_EQ(u"πŸ˜€"sv.count({}), 2uz);
EXPECT_EQ(u"πŸ˜€"sv.count(u"\xd83d"sv), 1uz);
EXPECT_EQ(u"πŸ˜€"sv.count(u"\xde00"sv), 1uz);
EXPECT_EQ(u"πŸ˜€"sv.count(u"πŸ˜€"sv), 1uz);
EXPECT_EQ(u"πŸ˜€πŸ˜€πŸ˜€"sv.count(u"πŸ˜€"sv), 3uz);
EXPECT_EQ(u"πŸ˜€πŸ˜€πŸ˜€"sv.count(u"πŸ˜€πŸ˜€"sv), 2uz);
}
TEST_CASE(starts_with)
{
EXPECT(Utf16View {}.starts_with(u""sv));