Make constexpr ceil

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
This commit is contained in:
Vladislav Shchapov
2023-05-24 00:27:40 +05:00
committed by Victor Zverovich
parent c684a06d51
commit 19b17618a9
2 changed files with 55 additions and 2 deletions

View File

@@ -523,3 +523,37 @@ TEST(format_impl_test, to_utf8) {
EXPECT_EQ(s, u.str());
EXPECT_EQ(s.size(), u.size());
}
FMT_CONSTEXPR20 bool constexpr_iceil() {
for (double v : std::initializer_list<double>{
((std::numeric_limits<int>::min)() + 0.5),
-1.2,
-0.2,
0.0,
0.2,
1.2,
4.0,
((std::numeric_limits<int>::max)() - 0.5),
}) {
auto r = fmt::detail::iceil(v);
fmt::detail::ignore_unused(r);
}
return true;
}
TEST(format_impl_test, iceil) {
for (double v : std::initializer_list<double>{
((std::numeric_limits<int>::min)() + 0.5),
-1.2,
-0.2,
0.0,
0.2,
1.2,
4.0,
((std::numeric_limits<int>::max)() - 0.5),
}) {
EXPECT_EQ(fmt::detail::iceil(v), static_cast<int>(std::ceil(v)));
}
FMT_CONSTEXPR20 auto result = constexpr_iceil();
EXPECT_TRUE(result);
}