mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-20 08:03:21 +00:00
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
![]() |
/*
|
||
|
* Copyright (c) 2021, Tim Flynn <trflynn89@pm.me>
|
||
|
*
|
||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||
|
*/
|
||
|
|
||
|
#include <LibTest/TestCase.h>
|
||
|
|
||
|
#include <LibUnicode/CharacterTypes.h>
|
||
|
#include <ctype.h>
|
||
|
|
||
|
static void compare_to_ascii(auto& old_function, auto& new_function)
|
||
|
{
|
||
|
i64 result1 = 0;
|
||
|
i64 result2 = 0;
|
||
|
|
||
|
for (u32 i = 0; i < 0x80; ++i) {
|
||
|
EXPECT_EQ(result1 = old_function(i), result2 = new_function(i));
|
||
|
if (result1 != result2)
|
||
|
dbgln("Function input value was {}.", i);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
TEST_CASE(to_unicode_lowercase)
|
||
|
{
|
||
|
compare_to_ascii(tolower, Unicode::to_unicode_lowercase);
|
||
|
|
||
|
EXPECT_EQ(Unicode::to_unicode_lowercase(0x03c9u), 0x03c9u); // "ω" to "ω"
|
||
|
EXPECT_EQ(Unicode::to_unicode_lowercase(0x03a9u), 0x03c9u); // "Ω" to "ω"
|
||
|
|
||
|
// Code points encoded by ranges in UnicodeData.txt
|
||
|
EXPECT_EQ(Unicode::to_unicode_lowercase(0x3400u), 0x3400u);
|
||
|
EXPECT_EQ(Unicode::to_unicode_lowercase(0x3401u), 0x3401u);
|
||
|
EXPECT_EQ(Unicode::to_unicode_lowercase(0x3402u), 0x3402u);
|
||
|
EXPECT_EQ(Unicode::to_unicode_lowercase(0x4dbfu), 0x4dbfu);
|
||
|
}
|
||
|
|
||
|
TEST_CASE(to_unicode_uppercase)
|
||
|
{
|
||
|
compare_to_ascii(toupper, Unicode::to_unicode_uppercase);
|
||
|
|
||
|
EXPECT_EQ(Unicode::to_unicode_uppercase(0x03c9u), 0x03a9u); // "ω" to "Ω"
|
||
|
EXPECT_EQ(Unicode::to_unicode_uppercase(0x03a9u), 0x03a9u); // "Ω" to "Ω"
|
||
|
|
||
|
// Code points encoded by ranges in UnicodeData.txt
|
||
|
EXPECT_EQ(Unicode::to_unicode_uppercase(0x3400u), 0x3400u);
|
||
|
EXPECT_EQ(Unicode::to_unicode_uppercase(0x3401u), 0x3401u);
|
||
|
EXPECT_EQ(Unicode::to_unicode_uppercase(0x3402u), 0x3402u);
|
||
|
EXPECT_EQ(Unicode::to_unicode_uppercase(0x4dbfu), 0x4dbfu);
|
||
|
}
|