mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 03:27:44 +00:00
AK: Make string-to-number conversion helpers return Optional
Get rid of the weird old signature: - int StringType::to_int(bool& ok) const And replace it with sensible new signature: - Optional<int> StringType::to_int() const
This commit is contained in:
parent
15f4043a7a
commit
fdfda6dec2
55 changed files with 354 additions and 455 deletions
|
@ -69,79 +69,88 @@ TEST_CASE(matches_case_insensitive)
|
|||
|
||||
TEST_CASE(convert_to_int)
|
||||
{
|
||||
bool ok = false;
|
||||
AK::StringUtils::convert_to_int(StringView(), ok);
|
||||
EXPECT(!ok);
|
||||
auto value = AK::StringUtils::convert_to_int(StringView());
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_int("", ok);
|
||||
EXPECT(!ok);
|
||||
AK::StringUtils::convert_to_int("");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_int("a", ok);
|
||||
EXPECT(!ok);
|
||||
AK::StringUtils::convert_to_int("a");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_int("+", ok);
|
||||
EXPECT(!ok);
|
||||
AK::StringUtils::convert_to_int("+");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_int("-", ok);
|
||||
EXPECT(!ok);
|
||||
AK::StringUtils::convert_to_int("-");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
int actual = AK::StringUtils::convert_to_int("0", ok);
|
||||
EXPECT(ok && actual == 0);
|
||||
auto actual = AK::StringUtils::convert_to_int("0");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 0);
|
||||
|
||||
actual = AK::StringUtils::convert_to_int("1", ok);
|
||||
EXPECT(ok && actual == 1);
|
||||
actual = AK::StringUtils::convert_to_int("1");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 1);
|
||||
|
||||
actual = AK::StringUtils::convert_to_int("+1", ok);
|
||||
EXPECT(ok && actual == 1);
|
||||
actual = AK::StringUtils::convert_to_int("+1");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 1);
|
||||
|
||||
actual = AK::StringUtils::convert_to_int("-1", ok);
|
||||
EXPECT(ok && actual == -1);
|
||||
actual = AK::StringUtils::convert_to_int("-1");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), -1);
|
||||
|
||||
actual = AK::StringUtils::convert_to_int("01", ok);
|
||||
EXPECT(ok && actual == 1);
|
||||
actual = AK::StringUtils::convert_to_int("01");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 1);
|
||||
|
||||
actual = AK::StringUtils::convert_to_int("12345", ok);
|
||||
EXPECT(ok && actual == 12345);
|
||||
actual = AK::StringUtils::convert_to_int("12345");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 12345);
|
||||
|
||||
actual = AK::StringUtils::convert_to_int("-12345", ok);
|
||||
EXPECT(ok && actual == -12345);
|
||||
actual = AK::StringUtils::convert_to_int("-12345");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), -12345);
|
||||
}
|
||||
|
||||
TEST_CASE(convert_to_uint)
|
||||
{
|
||||
bool ok = false;
|
||||
AK::StringUtils::convert_to_uint(StringView(), ok);
|
||||
EXPECT(!ok);
|
||||
auto value = AK::StringUtils::convert_to_uint(StringView());
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_uint("", ok);
|
||||
EXPECT(!ok);
|
||||
value = AK::StringUtils::convert_to_uint("");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_uint("a", ok);
|
||||
EXPECT(!ok);
|
||||
value = AK::StringUtils::convert_to_uint("a");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_uint("+", ok);
|
||||
EXPECT(!ok);
|
||||
value = AK::StringUtils::convert_to_uint("+");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_uint("-", ok);
|
||||
EXPECT(!ok);
|
||||
value = AK::StringUtils::convert_to_uint("-");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_uint("+1", ok);
|
||||
EXPECT(!ok);
|
||||
value = AK::StringUtils::convert_to_uint("+1");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
AK::StringUtils::convert_to_uint("-1", ok);
|
||||
EXPECT(!ok);
|
||||
AK::StringUtils::convert_to_uint("-1");
|
||||
EXPECT(!value.has_value());
|
||||
|
||||
unsigned actual = AK::StringUtils::convert_to_uint("0", ok);
|
||||
EXPECT(ok && actual == 0u);
|
||||
auto actual = AK::StringUtils::convert_to_uint("0");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 0u);
|
||||
|
||||
actual = AK::StringUtils::convert_to_uint("1", ok);
|
||||
EXPECT(ok && actual == 1u);
|
||||
actual = AK::StringUtils::convert_to_uint("1");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 1u);
|
||||
|
||||
actual = AK::StringUtils::convert_to_uint("01", ok);
|
||||
EXPECT(ok && actual == 1u);
|
||||
actual = AK::StringUtils::convert_to_uint("01");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 1u);
|
||||
|
||||
actual = AK::StringUtils::convert_to_uint("12345", ok);
|
||||
EXPECT(ok && actual == 12345u);
|
||||
actual = AK::StringUtils::convert_to_uint("12345");
|
||||
EXPECT_EQ(actual.has_value(), true);
|
||||
EXPECT_EQ(actual.value(), 12345u);
|
||||
}
|
||||
|
||||
TEST_CASE(ends_with)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue