chore: Enable clang-tidy v21 new checks (#7031)

This commit is contained in:
Alex Kremer
2026-04-29 16:17:35 +01:00
committed by GitHub
parent 46b997b774
commit f7275b7ad9
259 changed files with 2193 additions and 1888 deletions

View File

@@ -75,20 +75,21 @@ public:
test(
Number{std::numeric_limits<std::int64_t>::min()},
scale == MantissaRange::small
scale == MantissaRange::mantissa_scale::small
? Number{-9'223'372'036'854'776, 3}
: Number{true, 9'223'372'036'854'775'808ULL, 0, Number::normalized{}},
__LINE__);
test(
Number{std::numeric_limits<std::int64_t>::min() + 1},
scale == MantissaRange::small ? Number{-9'223'372'036'854'776, 3}
: Number{-9'223'372'036'854'775'807},
scale == MantissaRange::mantissa_scale::small ? Number{-9'223'372'036'854'776, 3}
: Number{-9'223'372'036'854'775'807},
__LINE__);
test(
Number{std::numeric_limits<std::int64_t>::max()},
Number{
scale == MantissaRange::small ? 9'223'372'036'854'776
: std::numeric_limits<std::int64_t>::max(),
scale == MantissaRange::mantissa_scale::small
? 9'223'372'036'854'776
: std::numeric_limits<std::int64_t>::max(),
18 - Number::mantissaLog()},
__LINE__);
caught = false;
@@ -207,7 +208,7 @@ public:
BEAST_EXPECTS(result == z, ss.str());
}
};
if (scale == MantissaRange::small)
if (scale == MantissaRange::mantissa_scale::small)
{
test(cSmall);
}
@@ -303,7 +304,7 @@ public:
BEAST_EXPECTS(result == z, ss.str());
}
};
if (scale == MantissaRange::small)
if (scale == MantissaRange::mantissa_scale::small)
{
test(cSmall);
}
@@ -330,7 +331,7 @@ public:
}
};
auto tests = [&](auto const& cSmall, auto const& cLarge) {
if (scale == MantissaRange::small)
if (scale == MantissaRange::mantissa_scale::small)
{
test(cSmall);
}
@@ -341,7 +342,7 @@ public:
};
auto const maxMantissa = Number::maxMantissa();
saveNumberRoundMode const save{Number::setround(Number::to_nearest)};
saveNumberRoundMode const save{Number::setround(Number::rounding_mode::to_nearest)};
{
auto const cSmall = std::to_array<Case>({
{Number{7}, Number{8}, Number{56}},
@@ -407,7 +408,7 @@ public:
});
tests(cSmall, cLarge);
}
Number::setround(Number::towards_zero);
Number::setround(Number::rounding_mode::towards_zero);
testcase << "test_mul " << to_string(Number::getMantissaScale()) << " towards_zero";
{
auto const cSmall = std::to_array<Case>(
@@ -474,7 +475,7 @@ public:
});
tests(cSmall, cLarge);
}
Number::setround(Number::downward);
Number::setround(Number::rounding_mode::downward);
testcase << "test_mul " << to_string(Number::getMantissaScale()) << " downward";
{
auto const cSmall = std::to_array<Case>(
@@ -541,7 +542,7 @@ public:
});
tests(cSmall, cLarge);
}
Number::setround(Number::upward);
Number::setround(Number::rounding_mode::upward);
testcase << "test_mul " << to_string(Number::getMantissaScale()) << " upward";
{
auto const cSmall = std::to_array<Case>(
@@ -642,7 +643,7 @@ public:
};
auto const maxMantissa = Number::maxMantissa();
auto tests = [&](auto const& cSmall, auto const& cLarge) {
if (scale == MantissaRange::small)
if (scale == MantissaRange::mantissa_scale::small)
{
test(cSmall);
}
@@ -651,7 +652,7 @@ public:
test(cLarge);
}
};
saveNumberRoundMode const save{Number::setround(Number::to_nearest)};
saveNumberRoundMode const save{Number::setround(Number::rounding_mode::to_nearest)};
{
auto const cSmall = std::to_array<Case>(
{{Number{1}, Number{2}, Number{5, -1}},
@@ -689,7 +690,7 @@ public:
tests(cSmall, cLarge);
}
testcase << "test_div " << to_string(Number::getMantissaScale()) << " towards_zero";
Number::setround(Number::towards_zero);
Number::setround(Number::rounding_mode::towards_zero);
{
auto const cSmall = std::to_array<Case>(
{{Number{1}, Number{2}, Number{5, -1}},
@@ -727,7 +728,7 @@ public:
tests(cSmall, cLarge);
}
testcase << "test_div " << to_string(Number::getMantissaScale()) << " downward";
Number::setround(Number::downward);
Number::setround(Number::rounding_mode::downward);
{
auto const cSmall = std::to_array<Case>(
{{Number{1}, Number{2}, Number{5, -1}},
@@ -765,7 +766,7 @@ public:
tests(cSmall, cLarge);
}
testcase << "test_div " << to_string(Number::getMantissaScale()) << " upward";
Number::setround(Number::upward);
Number::setround(Number::rounding_mode::upward);
{
auto const cSmall = std::to_array<Case>(
{{Number{1}, Number{2}, Number{5, -1}},
@@ -834,7 +835,7 @@ public:
/*
auto tests = [&](auto const& cSmall, auto const& cLarge) {
test(cSmall);
if (scale != MantissaRange::small)
if (scale != MantissaRange::mantissa_scale::small)
test(cLarge);
};
*/
@@ -864,9 +865,9 @@ public:
Number{false, 55'108'98747006743627, -14, Number::normalized{}}},
});
test(cSmall);
if (Number::getMantissaScale() != MantissaRange::small)
if (Number::getMantissaScale() != MantissaRange::mantissa_scale::small)
{
NumberRoundModeGuard const mg(Number::towards_zero);
NumberRoundModeGuard const mg(Number::rounding_mode::towards_zero);
test(cLarge);
}
bool caught = false;
@@ -1027,7 +1028,7 @@ public:
{
testcase << "test_to_integer " << to_string(Number::getMantissaScale());
using Case = std::tuple<Number, std::int64_t>;
saveNumberRoundMode const save{Number::setround(Number::to_nearest)};
saveNumberRoundMode const save{Number::setround(Number::rounding_mode::to_nearest)};
{
Case const c[]{
{Number{0}, 0},
@@ -1064,8 +1065,8 @@ public:
BEAST_EXPECT(j == y);
}
}
auto prev_mode = Number::setround(Number::towards_zero);
BEAST_EXPECT(prev_mode == Number::to_nearest);
auto prev_mode = Number::setround(Number::rounding_mode::towards_zero);
BEAST_EXPECT(prev_mode == Number::rounding_mode::to_nearest);
{
Case const c[]{
{Number{0}, 0},
@@ -1102,8 +1103,8 @@ public:
BEAST_EXPECT(j == y);
}
}
prev_mode = Number::setround(Number::downward);
BEAST_EXPECT(prev_mode == Number::towards_zero);
prev_mode = Number::setround(Number::rounding_mode::downward);
BEAST_EXPECT(prev_mode == Number::rounding_mode::towards_zero);
{
Case const c[]{
{Number{0}, 0},
@@ -1140,8 +1141,8 @@ public:
BEAST_EXPECT(j == y);
}
}
prev_mode = Number::setround(Number::upward);
BEAST_EXPECT(prev_mode == Number::downward);
prev_mode = Number::setround(Number::rounding_mode::upward);
BEAST_EXPECT(prev_mode == Number::rounding_mode::downward);
{
Case const c[]{
{Number{0}, 0},
@@ -1236,13 +1237,13 @@ public:
switch (scale)
{
case MantissaRange::small:
case MantissaRange::mantissa_scale::small:
test(Number::min(), "1e-32753");
test(Number::max(), "9999999999999999e32768");
test(Number::lowest(), "-9999999999999999e32768");
{
NumberRoundModeGuard const mg(Number::towards_zero);
NumberRoundModeGuard const mg(Number::rounding_mode::towards_zero);
auto const maxMantissa = Number::maxMantissa();
BEAST_EXPECT(maxMantissa == 9'999'999'999'999'999);
@@ -1265,14 +1266,14 @@ public:
"9223372036854775e3");
}
break;
case MantissaRange::large:
case MantissaRange::mantissa_scale::large:
// Test the edges
// ((exponent < -(28)) || (exponent > -(8)))))
test(Number::min(), "1e-32750");
test(Number::max(), "9223372036854775807e32768");
test(Number::lowest(), "-9223372036854775807e32768");
{
NumberRoundModeGuard const mg(Number::towards_zero);
NumberRoundModeGuard const mg(Number::rounding_mode::towards_zero);
auto const maxMantissa = Number::maxMantissa();
BEAST_EXPECT(maxMantissa == 9'999'999'999'999'999'999ULL);
@@ -1348,19 +1349,19 @@ public:
NumberSO const stNumberSO{true};
Issue const issue;
Number const n{7'518'783'80596, -5};
saveNumberRoundMode const save{Number::setround(Number::to_nearest)};
saveNumberRoundMode const save{Number::setround(Number::rounding_mode::to_nearest)};
auto res2 = STAmount{issue, n};
BEAST_EXPECT(res2 == STAmount{7518784});
Number::setround(Number::towards_zero);
Number::setround(Number::rounding_mode::towards_zero);
res2 = STAmount{issue, n};
BEAST_EXPECT(res2 == STAmount{7518783});
Number::setround(Number::downward);
Number::setround(Number::rounding_mode::downward);
res2 = STAmount{issue, n};
BEAST_EXPECT(res2 == STAmount{7518783});
Number::setround(Number::upward);
Number::setround(Number::rounding_mode::upward);
res2 = STAmount{issue, n};
BEAST_EXPECT(res2 == STAmount{7518784});
}
@@ -1400,87 +1401,87 @@ public:
std::map<Number, NumberRoundings> const expected{
// Positive numbers
{Number{13, -1},
{{Number::to_nearest, 1},
{Number::towards_zero, 1},
{Number::downward, 1},
{Number::upward, 2}}},
{{Number::rounding_mode::to_nearest, 1},
{Number::rounding_mode::towards_zero, 1},
{Number::rounding_mode::downward, 1},
{Number::rounding_mode::upward, 2}}},
{Number{23, -1},
{{Number::to_nearest, 2},
{Number::towards_zero, 2},
{Number::downward, 2},
{Number::upward, 3}}},
{{Number::rounding_mode::to_nearest, 2},
{Number::rounding_mode::towards_zero, 2},
{Number::rounding_mode::downward, 2},
{Number::rounding_mode::upward, 3}}},
{Number{15, -1},
{{Number::to_nearest, 2},
{Number::towards_zero, 1},
{Number::downward, 1},
{Number::upward, 2}}},
{{Number::rounding_mode::to_nearest, 2},
{Number::rounding_mode::towards_zero, 1},
{Number::rounding_mode::downward, 1},
{Number::rounding_mode::upward, 2}}},
{Number{25, -1},
{{Number::to_nearest, 2},
{Number::towards_zero, 2},
{Number::downward, 2},
{Number::upward, 3}}},
{{Number::rounding_mode::to_nearest, 2},
{Number::rounding_mode::towards_zero, 2},
{Number::rounding_mode::downward, 2},
{Number::rounding_mode::upward, 3}}},
{Number{152, -2},
{{Number::to_nearest, 2},
{Number::towards_zero, 1},
{Number::downward, 1},
{Number::upward, 2}}},
{{Number::rounding_mode::to_nearest, 2},
{Number::rounding_mode::towards_zero, 1},
{Number::rounding_mode::downward, 1},
{Number::rounding_mode::upward, 2}}},
{Number{252, -2},
{{Number::to_nearest, 3},
{Number::towards_zero, 2},
{Number::downward, 2},
{Number::upward, 3}}},
{{Number::rounding_mode::to_nearest, 3},
{Number::rounding_mode::towards_zero, 2},
{Number::rounding_mode::downward, 2},
{Number::rounding_mode::upward, 3}}},
{Number{17, -1},
{{Number::to_nearest, 2},
{Number::towards_zero, 1},
{Number::downward, 1},
{Number::upward, 2}}},
{{Number::rounding_mode::to_nearest, 2},
{Number::rounding_mode::towards_zero, 1},
{Number::rounding_mode::downward, 1},
{Number::rounding_mode::upward, 2}}},
{Number{27, -1},
{{Number::to_nearest, 3},
{Number::towards_zero, 2},
{Number::downward, 2},
{Number::upward, 3}}},
{{Number::rounding_mode::to_nearest, 3},
{Number::rounding_mode::towards_zero, 2},
{Number::rounding_mode::downward, 2},
{Number::rounding_mode::upward, 3}}},
// Negative numbers
{Number{-13, -1},
{{Number::to_nearest, -1},
{Number::towards_zero, -1},
{Number::downward, -2},
{Number::upward, -1}}},
{{Number::rounding_mode::to_nearest, -1},
{Number::rounding_mode::towards_zero, -1},
{Number::rounding_mode::downward, -2},
{Number::rounding_mode::upward, -1}}},
{Number{-23, -1},
{{Number::to_nearest, -2},
{Number::towards_zero, -2},
{Number::downward, -3},
{Number::upward, -2}}},
{{Number::rounding_mode::to_nearest, -2},
{Number::rounding_mode::towards_zero, -2},
{Number::rounding_mode::downward, -3},
{Number::rounding_mode::upward, -2}}},
{Number{-15, -1},
{{Number::to_nearest, -2},
{Number::towards_zero, -1},
{Number::downward, -2},
{Number::upward, -1}}},
{{Number::rounding_mode::to_nearest, -2},
{Number::rounding_mode::towards_zero, -1},
{Number::rounding_mode::downward, -2},
{Number::rounding_mode::upward, -1}}},
{Number{-25, -1},
{{Number::to_nearest, -2},
{Number::towards_zero, -2},
{Number::downward, -3},
{Number::upward, -2}}},
{{Number::rounding_mode::to_nearest, -2},
{Number::rounding_mode::towards_zero, -2},
{Number::rounding_mode::downward, -3},
{Number::rounding_mode::upward, -2}}},
{Number{-152, -2},
{{Number::to_nearest, -2},
{Number::towards_zero, -1},
{Number::downward, -2},
{Number::upward, -1}}},
{{Number::rounding_mode::to_nearest, -2},
{Number::rounding_mode::towards_zero, -1},
{Number::rounding_mode::downward, -2},
{Number::rounding_mode::upward, -1}}},
{Number{-252, -2},
{{Number::to_nearest, -3},
{Number::towards_zero, -2},
{Number::downward, -3},
{Number::upward, -2}}},
{{Number::rounding_mode::to_nearest, -3},
{Number::rounding_mode::towards_zero, -2},
{Number::rounding_mode::downward, -3},
{Number::rounding_mode::upward, -2}}},
{Number{-17, -1},
{{Number::to_nearest, -2},
{Number::towards_zero, -1},
{Number::downward, -2},
{Number::upward, -1}}},
{{Number::rounding_mode::to_nearest, -2},
{Number::rounding_mode::towards_zero, -1},
{Number::rounding_mode::downward, -2},
{Number::rounding_mode::upward, -1}}},
{Number{-27, -1},
{{Number::to_nearest, -3},
{Number::towards_zero, -2},
{Number::downward, -3},
{Number::upward, -2}}},
{{Number::rounding_mode::to_nearest, -3},
{Number::rounding_mode::towards_zero, -2},
{Number::rounding_mode::downward, -3},
{Number::rounding_mode::upward, -2}}},
};
for (auto const& [num, roundings] : expected)
@@ -1491,8 +1492,8 @@ public:
auto const res = static_cast<std::int64_t>(num);
BEAST_EXPECTS(
res == val,
to_string(num) + " with mode " + std::to_string(mode) + " expected " +
std::to_string(val) + " got " + std::to_string(res));
to_string(num) + " with mode " + std::to_string(static_cast<int>(mode)) +
" expected " + std::to_string(val) + " got " + std::to_string(res));
}
}
}
@@ -1508,7 +1509,7 @@ public:
Number const ten{10};
BEAST_EXPECT(ten.exponent() <= 0);
if (scale == MantissaRange::small)
if (scale == MantissaRange::mantissa_scale::small)
{
BEAST_EXPECT(std::numeric_limits<std::int64_t>::max() > INITIAL_XRP.drops());
BEAST_EXPECT(Number::maxMantissa() < INITIAL_XRP.drops());
@@ -1537,7 +1538,7 @@ public:
// 85'070'591'730'234'615'847'396'907'784'232'501'249 - 38 digits
BEAST_EXPECT((power(maxInt64, 2) == Number{85'070'591'730'234'615'85, 19}));
NumberRoundModeGuard const mg(Number::towards_zero);
NumberRoundModeGuard const mg(Number::rounding_mode::towards_zero);
auto const maxMantissa = Number::maxMantissa();
Number const max = Number{false, maxMantissa, 0, Number::normalized{}};
@@ -1553,7 +1554,8 @@ public:
void
run() override
{
for (auto const scale : {MantissaRange::small, MantissaRange::large})
for (auto const scale :
{MantissaRange::mantissa_scale::small, MantissaRange::mantissa_scale::large})
{
NumberMantissaScaleGuard const sg(scale);
testZero();