upd: optimize ut

This commit is contained in:
mutouyun 2022-12-04 18:28:27 +08:00
parent 30588a7085
commit 80c8d112b1

View File

@ -17,58 +17,57 @@ TEST(fmt, to_string) {
std::string joined; std::string joined;
imp::fmt_context ctx(joined); imp::fmt_context ctx(joined);
auto check = [&](auto &&txt, auto &&...val) {
ctx.reset();
EXPECT_TRUE(imp::to_string(ctx, std::forward<decltype(val)>(val)...));
ctx.finish();
EXPECT_EQ(joined, std::forward<decltype(txt)>(txt));
};
/// @brief string /// @brief string
EXPECT_TRUE(imp::to_string(ctx, "")); ctx.finish(); check("", "");
EXPECT_EQ(joined, ""); check("%what%", "%what%");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, "%what%")); ctx.finish(); check(" %what%", "%what%", "10");
EXPECT_EQ(joined, "%what%"); check("%what% ", "%what%", "-10");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, "%what%", "10")); ctx.finish();
EXPECT_EQ(joined, " %what%");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, "%what%", "-10")); ctx.finish();
EXPECT_EQ(joined, "%what% ");
/// @brief character /// @brief character
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 'A')); ctx.finish(); check("A", 'A');
EXPECT_EQ(joined, "A"); check("A", L'A');
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, L'A')); ctx.finish(); check("A", u'A');
EXPECT_EQ(joined, "A"); check("A", U'A');
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, u'A')); ctx.finish();
EXPECT_EQ(joined, "A");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, U'A')); ctx.finish();
EXPECT_EQ(joined, "A");
/// @brief numeric /// @brief numeric
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (signed char)123)); ctx.finish(); EXPECT_EQ(joined, "123"); check("123" , (signed char)123 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (signed char)-321)); ctx.finish(); EXPECT_EQ(joined, "-65"); check("-65" , (signed char)-321 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (unsigned char)123)); ctx.finish(); EXPECT_EQ(joined, "123"); check("123" , (unsigned char)123 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (unsigned char)321)); ctx.finish(); EXPECT_EQ(joined, "65"); check("65" , (unsigned char)321 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (short)123)); ctx.finish(); EXPECT_EQ(joined, "123"); check("123" , (short)123 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (short)-321)); ctx.finish(); EXPECT_EQ(joined, "-321"); check("-321" , (short)-321 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (unsigned short)123)); ctx.finish(); EXPECT_EQ(joined, "123"); check("123" , (unsigned short)123 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (unsigned short)321)); ctx.finish(); EXPECT_EQ(joined, "321"); check("321" , (unsigned short)321 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (short)123123)); ctx.finish(); EXPECT_EQ(joined, "-7949"); check("-7949" , (short)123123 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (short)-321321)); ctx.finish(); EXPECT_EQ(joined, "6359"); check("6359" , (short)-321321 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (unsigned short)123123)); ctx.finish(); EXPECT_EQ(joined, "57587"); check("57587" , (unsigned short)123123);
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (unsigned short)321321)); ctx.finish(); EXPECT_EQ(joined, "59177"); check("59177" , (unsigned short)321321);
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123)); ctx.finish(); EXPECT_EQ(joined, "123123"); check("123123" , 123123 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, -321321)); ctx.finish(); EXPECT_EQ(joined, "-321321"); check("-321321" , -321321 );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123u)); ctx.finish(); EXPECT_EQ(joined, "123123"); check("123123" , 123123u );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 321321u)); ctx.finish(); EXPECT_EQ(joined, "321321"); check("321321" , 321321u );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123ll)); ctx.finish(); EXPECT_EQ(joined, "123123"); check("123123" , 123123ll );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, -321321ll)); ctx.finish(); EXPECT_EQ(joined, "-321321"); check("-321321" , -321321ll );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123ull)); ctx.finish(); EXPECT_EQ(joined, "123123"); check("123123" , 123123ull );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 321321ull)); ctx.finish(); EXPECT_EQ(joined, "321321"); check("321321" , 321321ull );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123, "x")); ctx.finish(); EXPECT_EQ(joined, "1e0f3"); check("1e0f3" , 123123, "x" );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123u, "x")); ctx.finish(); EXPECT_EQ(joined, "1e0f3"); check("1e0f3" , 123123u, "x" );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123123123ll, "X")); ctx.finish(); EXPECT_EQ(joined, "1CAAB5C3B3"); check("1CAAB5C3B3", 123123123123ll, "X" );
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123123123123ull, "X")); ctx.finish(); EXPECT_EQ(joined, "1CAAB5C3B3"); check("1CAAB5C3B3", 123123123123ull, "X" );
/// @brief floating point /// @brief floating point
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123.123f, ".3")); ctx.finish(); EXPECT_EQ(joined, "123.123"); check("123.123" , 123.123f, ".3");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123.123, "010.5")); ctx.finish(); EXPECT_EQ(joined, "0123.12300"); check("0123.12300" , 123.123, "010.5");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 123.123l, "010.6")); ctx.finish(); EXPECT_EQ(joined, "123.123000"); check("123.123000" , 123.123l, "010.6");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 1.5, "e")); ctx.finish(); EXPECT_EQ(joined, "1.500000e+00"); check("1.500000e+00", 1.5, "e");
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 1.5, "E")); ctx.finish(); EXPECT_EQ(joined, "1.500000E+00"); check("1.500000E+00", 1.5, "E");
double r = 0.0; double r = 0.0;
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 0.0/r)); ctx.finish(); ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, 0.0/r)); ctx.finish();
std::cout << joined << "\n"; std::cout << joined << "\n";
@ -76,7 +75,7 @@ TEST(fmt, to_string) {
std::cout << joined << "\n"; std::cout << joined << "\n";
/// @brief pointer /// @brief pointer
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, nullptr)); ctx.finish(); EXPECT_EQ(joined, "null"); check("null", nullptr);
int *p = (int *)0x0f013a04; int *p = (int *)0x0f013a04;
ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (void *)p)); ctx.finish(); ctx.reset(); EXPECT_TRUE(imp::to_string(ctx, (void *)p)); ctx.finish();
std::cout << joined << "\n"; std::cout << joined << "\n";