mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-08 06:09:58 +00:00
AK: Implement creating a UTF-16 string from a repeated code point
This commit is contained in:
parent
a46e9b2adb
commit
df77ae1920
Notes:
github-actions[bot]
2025-07-25 16:18:13 +00:00
Author: https://github.com/trflynn89
Commit: df77ae1920
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5604
Reviewed-by: https://github.com/gmta ✅
5 changed files with 110 additions and 0 deletions
|
|
@ -356,6 +356,61 @@ TEST_CASE(formatted)
|
|||
}
|
||||
}
|
||||
|
||||
TEST_CASE(repeated)
|
||||
{
|
||||
{
|
||||
auto string1 = Utf16String::repeated('a', 0);
|
||||
EXPECT(string1.is_empty());
|
||||
|
||||
auto string2 = Utf16String::repeated(0x03C9U, 0);
|
||||
EXPECT(string2.is_empty());
|
||||
|
||||
auto string3 = Utf16String::repeated(0x10300, 0);
|
||||
EXPECT(string3.is_empty());
|
||||
}
|
||||
{
|
||||
auto string1 = Utf16String::repeated('a', 1);
|
||||
EXPECT_EQ(string1.length_in_code_units(), 1uz);
|
||||
EXPECT_EQ(string1, u"a"sv);
|
||||
|
||||
auto string2 = Utf16String::repeated(0x03C9U, 1);
|
||||
EXPECT_EQ(string2.length_in_code_units(), 1uz);
|
||||
EXPECT_EQ(string2, u"ω"sv);
|
||||
|
||||
auto string3 = Utf16String::repeated(0x10300, 1);
|
||||
EXPECT_EQ(string3.length_in_code_units(), 2uz);
|
||||
EXPECT_EQ(string3, u"𐌀"sv);
|
||||
}
|
||||
{
|
||||
auto string1 = Utf16String::repeated('a', 3);
|
||||
EXPECT_EQ(string1.length_in_code_units(), 3uz);
|
||||
EXPECT_EQ(string1, u"aaa"sv);
|
||||
|
||||
auto string2 = Utf16String::repeated(0x03C9U, 3);
|
||||
EXPECT_EQ(string2.length_in_code_units(), 3uz);
|
||||
EXPECT_EQ(string2, u"ωωω"sv);
|
||||
|
||||
auto string3 = Utf16String::repeated(0x10300, 3);
|
||||
EXPECT_EQ(string3.length_in_code_units(), 6uz);
|
||||
EXPECT_EQ(string3, u"𐌀𐌀𐌀"sv);
|
||||
}
|
||||
{
|
||||
auto string1 = Utf16String::repeated('a', 10);
|
||||
EXPECT_EQ(string1.length_in_code_units(), 10uz);
|
||||
EXPECT_EQ(string1, u"aaaaaaaaaa"sv);
|
||||
|
||||
auto string2 = Utf16String::repeated(0x03C9U, 10);
|
||||
EXPECT_EQ(string2.length_in_code_units(), 10uz);
|
||||
EXPECT_EQ(string2, u"ωωωωωωωωωω"sv);
|
||||
|
||||
auto string3 = Utf16String::repeated(0x10300, 10);
|
||||
EXPECT_EQ(string3.length_in_code_units(), 20uz);
|
||||
EXPECT_EQ(string3, u"𐌀𐌀𐌀𐌀𐌀𐌀𐌀𐌀𐌀𐌀"sv);
|
||||
}
|
||||
|
||||
EXPECT_DEATH("Creating a string from an invalid code point", (void)Utf16String::repeated(0xffffffff, 1));
|
||||
}
|
||||
|
||||
TEST_CASE(copy_operations)
|
||||
{
|
||||
auto test = [](Utf16String const& string1) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue