aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/string/unittests/format_ut.cpp
diff options
context:
space:
mode:
authorbabenko <babenko@yandex-team.com>2022-08-26 10:04:55 +0300
committerbabenko <babenko@yandex-team.com>2022-08-26 10:04:55 +0300
commitaf6b0b93037268a9ca1343dd09629cf910c944d9 (patch)
tree609b08bbb2cd7498d55b6f7a92aaf1a4d51d003c /library/cpp/yt/string/unittests/format_ut.cpp
parentd40e0a72d30643f29b6fe0dee30d6d686f563e3f (diff)
downloadydb-af6b0b93037268a9ca1343dd09629cf910c944d9.tar.gz
Natively support %x and %X in Format
Diffstat (limited to 'library/cpp/yt/string/unittests/format_ut.cpp')
-rw-r--r--library/cpp/yt/string/unittests/format_ut.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/library/cpp/yt/string/unittests/format_ut.cpp b/library/cpp/yt/string/unittests/format_ut.cpp
index ee069bb2c0..20ec6392b5 100644
--- a/library/cpp/yt/string/unittests/format_ut.cpp
+++ b/library/cpp/yt/string/unittests/format_ut.cpp
@@ -74,7 +74,7 @@ TEST(TFormatTest, Strings)
EXPECT_EQ(100, std::ssize(Format("%100v", "abc")));
}
-TEST(TFormatTest, Integers)
+TEST(TFormatTest, DecIntegers)
{
EXPECT_EQ("123", Format("%d", 123));
EXPECT_EQ("123", Format("%v", 123));
@@ -101,6 +101,28 @@ TEST(TFormatTest, Integers)
EXPECT_EQ("18446744073709551615", Format("%v", std::numeric_limits<ui64>::max()));
}
+TEST(TFormatTest, HexIntegers)
+{
+ EXPECT_EQ("7b", Format("%x", 123));
+ EXPECT_EQ("7B", Format("%X", 123));
+
+ EXPECT_EQ("02a", Format("%03x", 42));
+ EXPECT_EQ("2a", Format("%01x", 42));
+
+ EXPECT_EQ("7fffffff", Format("%x", std::numeric_limits<i32>::max()));
+ EXPECT_EQ("-80000000", Format("%x", std::numeric_limits<i32>::min()));
+
+ EXPECT_EQ("0", Format("%x", 0U));
+ EXPECT_EQ("0", Format("%X", 0U));
+ EXPECT_EQ("ffffffff", Format("%x", std::numeric_limits<ui32>::max()));
+
+ EXPECT_EQ("7fffffffffffffff", Format("%x", std::numeric_limits<i64>::max()));
+ EXPECT_EQ("-8000000000000000", Format("%x", std::numeric_limits<i64>::min()));
+
+ EXPECT_EQ("0", Format("%x", 0ULL));
+ EXPECT_EQ("ffffffffffffffff", Format("%x", std::numeric_limits<ui64>::max()));
+}
+
TEST(TFormatTest, Floats)
{
EXPECT_EQ("3.14", Format("%.2f", 3.1415F));