#include #include #include using namespace const_fmt; using namespace const_fmt::const_fmt_detail; TEST(FormatUtility, count_digits_base_decimal) { constexpr unsigned length1 = count_digits_base(123); constexpr unsigned length2 = count_digits_base(std::numeric_limits::max()); constexpr unsigned length3 = count_digits_base(10000011); constexpr unsigned length4 = count_digits_base(1); EXPECT_EQ(length1, 3); EXPECT_EQ(length2, 20); EXPECT_EQ(length3, 8); EXPECT_EQ(length4, 1); } TEST(FormatUtility, count_digits_base_binary) { constexpr unsigned length1 = count_digits_base(0b1001); constexpr unsigned length2 = count_digits_base(std::numeric_limits::max()); constexpr unsigned length3 = count_digits_base(0b10000001); constexpr unsigned length4 = count_digits_base(0b01); EXPECT_EQ(length1, 4); EXPECT_EQ(length2, 64); EXPECT_EQ(length3, 8); EXPECT_EQ(length4, 1); } TEST(FormatUtility, count_digits_base_hex) { constexpr unsigned length1 = count_digits_base(0x123); constexpr unsigned length2 = count_digits_base(std::numeric_limits::max()); constexpr unsigned length3 = count_digits_base(0x1000000f); constexpr unsigned length4 = count_digits_base(0x01); EXPECT_EQ(length1, 3); EXPECT_EQ(length2, 16); EXPECT_EQ(length3, 8); EXPECT_EQ(length4, 1); }