mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:57:35 +00:00
AK: Add CharacterTypes::is_ascii_base36_digit()
This can be used to validate the string passed to `parse_ascii_base36_digit()`.
This commit is contained in:
parent
bbdbd71439
commit
65827826fe
2 changed files with 17 additions and 0 deletions
|
@ -45,6 +45,11 @@ constexpr bool is_ascii_alphanumeric(u32 code_point)
|
||||||
return is_ascii_alpha(code_point) || is_ascii_digit(code_point);
|
return is_ascii_alpha(code_point) || is_ascii_digit(code_point);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr bool is_ascii_base36_digit(u32 code_point)
|
||||||
|
{
|
||||||
|
return is_ascii_digit(code_point) || (code_point >= 'A' && code_point <= 'Z') || (code_point >= 'a' && code_point <= 'z');
|
||||||
|
}
|
||||||
|
|
||||||
constexpr bool is_ascii_binary_digit(u32 code_point)
|
constexpr bool is_ascii_binary_digit(u32 code_point)
|
||||||
{
|
{
|
||||||
return code_point == '0' || code_point == '1';
|
return code_point == '0' || code_point == '1';
|
||||||
|
@ -176,6 +181,7 @@ constexpr u32 to_ascii_base36_digit(u32 digit)
|
||||||
using AK::is_ascii;
|
using AK::is_ascii;
|
||||||
using AK::is_ascii_alpha;
|
using AK::is_ascii_alpha;
|
||||||
using AK::is_ascii_alphanumeric;
|
using AK::is_ascii_alphanumeric;
|
||||||
|
using AK::is_ascii_base36_digit;
|
||||||
using AK::is_ascii_binary_digit;
|
using AK::is_ascii_binary_digit;
|
||||||
using AK::is_ascii_blank;
|
using AK::is_ascii_blank;
|
||||||
using AK::is_ascii_c0_control;
|
using AK::is_ascii_c0_control;
|
||||||
|
|
|
@ -67,6 +67,17 @@ TEST_CASE(is_ascii_alphanumeric)
|
||||||
compare_bool_output_over(ASCII, isalnum, is_ascii_alphanumeric);
|
compare_bool_output_over(ASCII, isalnum, is_ascii_alphanumeric);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE(is_ascii_base36_digit)
|
||||||
|
{
|
||||||
|
constexpr Array valid_base36_digits { '0', '9', 'A', 'Z', 'a', 'z' };
|
||||||
|
for (auto valid_base36_digit : valid_base36_digits)
|
||||||
|
EXPECT_EQ(is_ascii_base36_digit(valid_base36_digit), true);
|
||||||
|
|
||||||
|
constexpr Array invalid_base36_digits { '/', ':', '@', '[', '`', '{' };
|
||||||
|
for (auto invalid_base36_digit : invalid_base36_digits)
|
||||||
|
EXPECT_EQ(is_ascii_base36_digit(invalid_base36_digit), false);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE(is_ascii_blank)
|
TEST_CASE(is_ascii_blank)
|
||||||
{
|
{
|
||||||
compare_bool_output_over(ASCII, isblank, is_ascii_blank);
|
compare_bool_output_over(ASCII, isblank, is_ascii_blank);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue