mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 08:17:34 +00:00
Everywhere: Use to_number<T> instead of to_{int,uint,float,double}
In a bunch of cases, this actually ends up simplifying the code as to_number will handle something such as: ``` Optional<I> opt; if constexpr (IsSigned<I>) opt = view.to_int<I>(); else opt = view.to_uint<I>(); ``` For us. The main goal here however is to have a single generic number conversion API between all of the String classes.
This commit is contained in:
parent
a4ecc65398
commit
e2e7c4d574
155 changed files with 397 additions and 412 deletions
|
@ -125,8 +125,8 @@ TEST_CASE(repeated)
|
|||
|
||||
TEST_CASE(to_int)
|
||||
{
|
||||
EXPECT_EQ(ByteString("123").to_int().value(), 123);
|
||||
EXPECT_EQ(ByteString("-123").to_int().value(), -123);
|
||||
EXPECT_EQ(ByteString("123").to_number<int>().value(), 123);
|
||||
EXPECT_EQ(ByteString("-123").to_number<int>().value(), -123);
|
||||
}
|
||||
|
||||
TEST_CASE(to_lowercase)
|
||||
|
|
|
@ -578,14 +578,14 @@ TEST_CASE(invalid_hex_floats)
|
|||
EXPECT_HEX_PARSE_TO_VALUE_AND_CONSUME_CHARS("0xCAPE", 0xCAp0, 4);
|
||||
}
|
||||
|
||||
#define BENCHMARK_DOUBLE_PARSING(value, iterations) \
|
||||
do { \
|
||||
auto data = #value##sv; \
|
||||
auto true_result = value; \
|
||||
for (int i = 0; i < iterations * 10'000; ++i) { \
|
||||
AK::taint_for_optimizer(data); \
|
||||
EXPECT_EQ(data.to_double(), true_result); \
|
||||
} \
|
||||
#define BENCHMARK_DOUBLE_PARSING(value, iterations) \
|
||||
do { \
|
||||
auto data = #value##sv; \
|
||||
auto true_result = value; \
|
||||
for (int i = 0; i < iterations * 10'000; ++i) { \
|
||||
AK::taint_for_optimizer(data); \
|
||||
EXPECT_EQ(data.to_number<double>(), true_result); \
|
||||
} \
|
||||
} while (false)
|
||||
|
||||
BENCHMARK_CASE(one)
|
||||
|
|
|
@ -157,7 +157,7 @@ TEST_CASE(many_strings)
|
|||
}
|
||||
EXPECT_EQ(strings.size(), 999u);
|
||||
for (auto& it : strings) {
|
||||
EXPECT_EQ(it.key.to_int().value(), it.value);
|
||||
EXPECT_EQ(it.key.to_number<int>().value(), it.value);
|
||||
}
|
||||
for (int i = 0; i < 999; ++i) {
|
||||
EXPECT_EQ(strings.remove(ByteString::number(i)), true);
|
||||
|
|
|
@ -52,7 +52,7 @@ TEST_CASE(order)
|
|||
}
|
||||
|
||||
for (int i = 0; i < 10000; ++i) {
|
||||
EXPECT_EQ(strings.dequeue().to_int().value(), i);
|
||||
EXPECT_EQ(strings.dequeue().to_number<int>().value(), i);
|
||||
}
|
||||
|
||||
EXPECT(strings.is_empty());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue