#include #include using namespace const_fmt; using namespace const_fmt::const_fmt_detail; TEST(FormatBinary, positive_int) { constexpr std::array control1 = {'0', '0', '0', '0', '0', '0', '1', '0'}; constexpr std::array formatted1 = const_format<"{:08b}">(0b10); constexpr std::array control2 = {' ', ' ', '1', '0', '1', '0', '1', '0'}; constexpr std::array formatted2 = const_format<"{:8b}">(0b101010); constexpr std::array control3 = {'0', '0', '0', '1', '1', '0', '0', '1'}; constexpr std::array formatted3 = const_format<"{:08.4b}">(0b11001); constexpr std::array control4 = {'1', '0', '1', '1'}; constexpr std::array formatted4 = const_format<"{:4b}">(0b1011); constexpr std::array control5 = {'f', 'f', 'f', 'f'}; constexpr std::array formatted5 = const_format<"{:4b}">(0b10011); EXPECT_EQ(control1, formatted1); EXPECT_EQ(control2, formatted2); EXPECT_EQ(control3, formatted3); EXPECT_EQ(control4, formatted4); EXPECT_EQ(control5, formatted5); } TEST(FormatBinary, negative_int) { constexpr std::array control1 = {'-', '0', '0', '0', '0', '0', '1', '0'}; constexpr std::array formatted1 = const_format<"{:08b}">(-0b10); constexpr std::array control2 = {' ', '-', '1', '0', '1', '0', '1', '0'}; constexpr std::array formatted2 = const_format<"{:8b}">(-0b101010); constexpr std::array control3 = {'-', '0', '0', '1', '0', '0', '1', '1'}; constexpr std::array formatted3 = const_format<"{:08.4b}">(-0b10011); constexpr std::array control4 = {'-', '1', '1', '0', '1'}; constexpr std::array formatted4 = const_format<"{:5b}">(-0b1101); constexpr std::array control5 = {'-', 'f', 'f', 'f', 'f'}; constexpr std::array formatted5 = const_format<"{:05b}">(-0b10101); EXPECT_EQ(control1, formatted1); EXPECT_EQ(control2, formatted2); EXPECT_EQ(control3, formatted3); EXPECT_EQ(control4, formatted4); EXPECT_EQ(control5, formatted5); }