aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/fmt/test/locale-test.cc
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.ru>2022-02-10 16:45:08 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:08 +0300
commit4e839db24a3bbc9f1c610c43d6faaaa99824dcca (patch)
tree506dac10f5df94fab310584ee51b24fc5a081c22 /contrib/libs/fmt/test/locale-test.cc
parent2d37894b1b037cf24231090eda8589bbb44fb6fc (diff)
downloadydb-4e839db24a3bbc9f1c610c43d6faaaa99824dcca.tar.gz
Restoring authorship annotation for <thegeorg@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/fmt/test/locale-test.cc')
-rw-r--r--contrib/libs/fmt/test/locale-test.cc174
1 files changed, 87 insertions, 87 deletions
diff --git a/contrib/libs/fmt/test/locale-test.cc b/contrib/libs/fmt/test/locale-test.cc
index 7d776b4290..9e0eb2b128 100644
--- a/contrib/libs/fmt/test/locale-test.cc
+++ b/contrib/libs/fmt/test/locale-test.cc
@@ -6,12 +6,12 @@
// For the license information refer to format.h.
#include "fmt/locale.h"
-
-#include <complex>
-
+
+#include <complex>
+
#include <gmock/gmock.h>
-using fmt::detail::max_value;
+using fmt::detail::max_value;
#ifndef FMT_STATIC_THOUSANDS_SEPARATOR
template <typename Char> struct numpunct : std::numpunct<Char> {
@@ -44,117 +44,117 @@ template <typename Char> struct small_grouping : std::numpunct<Char> {
TEST(LocaleTest, DoubleDecimalPoint) {
std::locale loc(std::locale(), new numpunct<char>());
- EXPECT_EQ("1?23", fmt::format(loc, "{:L}", 1.23));
+ EXPECT_EQ("1?23", fmt::format(loc, "{:L}", 1.23));
}
TEST(LocaleTest, Format) {
std::locale loc(std::locale(), new numpunct<char>());
- EXPECT_EQ("1234567", fmt::format(std::locale(), "{:L}", 1234567));
- EXPECT_EQ("1~234~567", fmt::format(loc, "{:L}", 1234567));
- EXPECT_EQ("-1~234~567", fmt::format(loc, "{:L}", -1234567));
- EXPECT_EQ("-256", fmt::format(loc, "{:L}", -256));
+ EXPECT_EQ("1234567", fmt::format(std::locale(), "{:L}", 1234567));
+ EXPECT_EQ("1~234~567", fmt::format(loc, "{:L}", 1234567));
+ EXPECT_EQ("-1~234~567", fmt::format(loc, "{:L}", -1234567));
+ EXPECT_EQ("-256", fmt::format(loc, "{:L}", -256));
fmt::format_arg_store<fmt::format_context, int> as{1234567};
- EXPECT_EQ("1~234~567", fmt::vformat(loc, "{:L}", fmt::format_args(as)));
+ EXPECT_EQ("1~234~567", fmt::vformat(loc, "{:L}", fmt::format_args(as)));
std::string s;
- fmt::format_to(std::back_inserter(s), loc, "{:L}", 1234567);
+ fmt::format_to(std::back_inserter(s), loc, "{:L}", 1234567);
EXPECT_EQ("1~234~567", s);
std::locale no_grouping_loc(std::locale(), new no_grouping<char>());
- EXPECT_EQ("1234567", fmt::format(no_grouping_loc, "{:L}", 1234567));
+ EXPECT_EQ("1234567", fmt::format(no_grouping_loc, "{:L}", 1234567));
std::locale special_grouping_loc(std::locale(), new special_grouping<char>());
- EXPECT_EQ("1,23,45,678", fmt::format(special_grouping_loc, "{:L}", 12345678));
- EXPECT_EQ("12,345", fmt::format(special_grouping_loc, "{:L}", 12345));
+ EXPECT_EQ("1,23,45,678", fmt::format(special_grouping_loc, "{:L}", 12345678));
+ EXPECT_EQ("12,345", fmt::format(special_grouping_loc, "{:L}", 12345));
std::locale small_grouping_loc(std::locale(), new small_grouping<char>());
EXPECT_EQ("4,2,9,4,9,6,7,2,9,5",
- fmt::format(small_grouping_loc, "{:L}", max_value<uint32_t>()));
-}
-
-TEST(LocaleTest, FormatDetaultAlign) {
- std::locale special_grouping_loc(std::locale(), new special_grouping<char>());
- EXPECT_EQ(" 12,345", fmt::format(special_grouping_loc, "{:8L}", 12345));
+ fmt::format(small_grouping_loc, "{:L}", max_value<uint32_t>()));
}
+TEST(LocaleTest, FormatDetaultAlign) {
+ std::locale special_grouping_loc(std::locale(), new special_grouping<char>());
+ EXPECT_EQ(" 12,345", fmt::format(special_grouping_loc, "{:8L}", 12345));
+}
+
TEST(LocaleTest, WFormat) {
std::locale loc(std::locale(), new numpunct<wchar_t>());
- EXPECT_EQ(L"1234567", fmt::format(std::locale(), L"{:L}", 1234567));
- EXPECT_EQ(L"1~234~567", fmt::format(loc, L"{:L}", 1234567));
+ EXPECT_EQ(L"1234567", fmt::format(std::locale(), L"{:L}", 1234567));
+ EXPECT_EQ(L"1~234~567", fmt::format(loc, L"{:L}", 1234567));
fmt::format_arg_store<fmt::wformat_context, int> as{1234567};
- EXPECT_EQ(L"1~234~567", fmt::vformat(loc, L"{:L}", fmt::wformat_args(as)));
- EXPECT_EQ(L"1234567", fmt::format(std::locale("C"), L"{:L}", 1234567));
+ EXPECT_EQ(L"1~234~567", fmt::vformat(loc, L"{:L}", fmt::wformat_args(as)));
+ EXPECT_EQ(L"1234567", fmt::format(std::locale("C"), L"{:L}", 1234567));
std::locale no_grouping_loc(std::locale(), new no_grouping<wchar_t>());
- EXPECT_EQ(L"1234567", fmt::format(no_grouping_loc, L"{:L}", 1234567));
+ EXPECT_EQ(L"1234567", fmt::format(no_grouping_loc, L"{:L}", 1234567));
std::locale special_grouping_loc(std::locale(),
new special_grouping<wchar_t>());
EXPECT_EQ(L"1,23,45,678",
- fmt::format(special_grouping_loc, L"{:L}", 12345678));
+ fmt::format(special_grouping_loc, L"{:L}", 12345678));
std::locale small_grouping_loc(std::locale(), new small_grouping<wchar_t>());
EXPECT_EQ(L"4,2,9,4,9,6,7,2,9,5",
- fmt::format(small_grouping_loc, L"{:L}", max_value<uint32_t>()));
-}
-
-TEST(LocaleTest, DoubleFormatter) {
- auto loc = std::locale(std::locale(), new special_grouping<char>());
- auto f = fmt::formatter<int>();
- auto parse_ctx = fmt::format_parse_context("L");
- f.parse(parse_ctx);
- char buf[10] = {};
- fmt::basic_format_context<char*, char> format_ctx(
- buf, {}, fmt::detail::locale_ref(loc));
- *f.format(12345, format_ctx) = 0;
- EXPECT_STREQ("12,345", buf);
-}
-
-FMT_BEGIN_NAMESPACE
-template <class charT> struct formatter<std::complex<double>, charT> {
- private:
- detail::dynamic_format_specs<char> specs_;
-
- public:
- typename basic_format_parse_context<charT>::iterator parse(
- basic_format_parse_context<charT>& ctx) {
- using handler_type =
- detail::dynamic_specs_handler<basic_format_parse_context<charT>>;
- detail::specs_checker<handler_type> handler(handler_type(specs_, ctx),
- detail::type::string_type);
- auto it = parse_format_specs(ctx.begin(), ctx.end(), handler);
- detail::parse_float_type_spec(specs_, ctx.error_handler());
- return it;
- }
-
- template <class FormatContext>
- typename FormatContext::iterator format(const std::complex<double>& c,
- FormatContext& ctx) {
- detail::handle_dynamic_spec<detail::precision_checker>(
- specs_.precision, specs_.precision_ref, ctx);
- auto format_specs = std::string();
- if (specs_.precision > 0)
- format_specs = fmt::format(".{}", specs_.precision);
- if (specs_.type)
- format_specs += specs_.type;
- auto real = fmt::format(ctx.locale().template get<std::locale>(),
- "{:" + format_specs + "}", c.real());
- auto imag = fmt::format(ctx.locale().template get<std::locale>(),
- "{:" + format_specs + "}", c.imag());
- auto fill_align_width = std::string();
- if (specs_.width > 0)
- fill_align_width = fmt::format(">{}", specs_.width);
- return format_to(
- ctx.out(), "{:" + fill_align_width + "}",
- fmt::format(c.real() != 0 ? "({0}+{1}i)" : "{1}i", real, imag));
- }
-};
-FMT_END_NAMESPACE
-
-TEST(FormatTest, Complex) {
- std::string s = fmt::format("{}", std::complex<double>(1, 2));
- EXPECT_EQ(s, "(1+2i)");
- EXPECT_EQ(fmt::format("{:.2f}", std::complex<double>(1, 2)), "(1.00+2.00i)");
- EXPECT_EQ(fmt::format("{:8}", std::complex<double>(1, 2)), " (1+2i)");
+ fmt::format(small_grouping_loc, L"{:L}", max_value<uint32_t>()));
}
+TEST(LocaleTest, DoubleFormatter) {
+ auto loc = std::locale(std::locale(), new special_grouping<char>());
+ auto f = fmt::formatter<int>();
+ auto parse_ctx = fmt::format_parse_context("L");
+ f.parse(parse_ctx);
+ char buf[10] = {};
+ fmt::basic_format_context<char*, char> format_ctx(
+ buf, {}, fmt::detail::locale_ref(loc));
+ *f.format(12345, format_ctx) = 0;
+ EXPECT_STREQ("12,345", buf);
+}
+
+FMT_BEGIN_NAMESPACE
+template <class charT> struct formatter<std::complex<double>, charT> {
+ private:
+ detail::dynamic_format_specs<char> specs_;
+
+ public:
+ typename basic_format_parse_context<charT>::iterator parse(
+ basic_format_parse_context<charT>& ctx) {
+ using handler_type =
+ detail::dynamic_specs_handler<basic_format_parse_context<charT>>;
+ detail::specs_checker<handler_type> handler(handler_type(specs_, ctx),
+ detail::type::string_type);
+ auto it = parse_format_specs(ctx.begin(), ctx.end(), handler);
+ detail::parse_float_type_spec(specs_, ctx.error_handler());
+ return it;
+ }
+
+ template <class FormatContext>
+ typename FormatContext::iterator format(const std::complex<double>& c,
+ FormatContext& ctx) {
+ detail::handle_dynamic_spec<detail::precision_checker>(
+ specs_.precision, specs_.precision_ref, ctx);
+ auto format_specs = std::string();
+ if (specs_.precision > 0)
+ format_specs = fmt::format(".{}", specs_.precision);
+ if (specs_.type)
+ format_specs += specs_.type;
+ auto real = fmt::format(ctx.locale().template get<std::locale>(),
+ "{:" + format_specs + "}", c.real());
+ auto imag = fmt::format(ctx.locale().template get<std::locale>(),
+ "{:" + format_specs + "}", c.imag());
+ auto fill_align_width = std::string();
+ if (specs_.width > 0)
+ fill_align_width = fmt::format(">{}", specs_.width);
+ return format_to(
+ ctx.out(), "{:" + fill_align_width + "}",
+ fmt::format(c.real() != 0 ? "({0}+{1}i)" : "{1}i", real, imag));
+ }
+};
+FMT_END_NAMESPACE
+
+TEST(FormatTest, Complex) {
+ std::string s = fmt::format("{}", std::complex<double>(1, 2));
+ EXPECT_EQ(s, "(1+2i)");
+ EXPECT_EQ(fmt::format("{:.2f}", std::complex<double>(1, 2)), "(1.00+2.00i)");
+ EXPECT_EQ(fmt::format("{:8}", std::complex<double>(1, 2)), " (1+2i)");
+}
+
#endif // FMT_STATIC_THOUSANDS_SEPARATOR