Lines Matching +full:test +full:- +full:fmt
1 // Formatting library for C++ - the core API
3 // Copyright (c) 2012 - present, Victor Zverovich
8 // Copyright (c) 2018 - present, Remotion (Igor Schulz)
10 // {fmt} support for ranges, containers and types tuple interface.
12 #include "fmt/ranges.h"
25 TEST(RangesTest, FormatVector) { in TEST() function
27 auto ivf = fmt::format("{}", iv); in TEST()
31 TEST(RangesTest, FormatVector2) { in TEST() function
33 auto ivf = fmt::format("{}", ivv); in TEST()
37 TEST(RangesTest, FormatMap) { in TEST() function
39 EXPECT_EQ("{(\"one\", 1), (\"two\", 2)}", fmt::format("{}", simap)); in TEST()
42 TEST(RangesTest, FormatPair) { in TEST() function
44 EXPECT_EQ("(42, 1.5)", fmt::format("{}", pa1)); in TEST()
47 TEST(RangesTest, FormatTuple) { in TEST() function
50 EXPECT_EQ("(42, 1.5, \"this is tuple\", 'i')", fmt::format("{}", t)); in TEST()
51 EXPECT_EQ("()", fmt::format("{}", std::tuple<>())); in TEST()
54 TEST(RangesTest, JoinTuple) { in TEST() function
57 EXPECT_EQ("(a, 1, 2)", fmt::format("({})", fmt::join(t1, ", "))); in TEST()
62 EXPECT_EQ("b + 4", fmt::format("{}", fmt::join(t2, " + "))); in TEST()
66 EXPECT_EQ("", fmt::format("{}", fmt::join(t3, "|"))); in TEST()
70 EXPECT_EQ("4", fmt::format("{}", fmt::join(t4, "/"))); in TEST()
73 TEST(RangesTest, JoinInitializerList) { in TEST() function
74 EXPECT_EQ("1, 2, 3", fmt::format("{}", fmt::join({1, 2, 3}, ", "))); in TEST()
75 EXPECT_EQ("fmt rocks !", in TEST()
76 fmt::format("{}", fmt::join({"fmt", "rocks", "!"}, " "))); in TEST()
86 return fmt::string_view{str}; in get()
104 TEST(RangesTest, FormatStruct) { in TEST() function
106 EXPECT_EQ("(13, \"my struct\")", fmt::format("{}", mst)); in TEST()
109 TEST(RangesTest, FormatTo) { in TEST() function
111 auto end = fmt::format_to(buf, "{}", std::vector{1, 2, 3}); in TEST()
123 TEST(RangesTest, PathLike) { in TEST() function
124 EXPECT_FALSE((fmt::is_range<path_like, char>::value)); in TEST()
134 explicit operator fmt::string_view() const { return "foo"; } in operator fmt::string_view()
138 TEST(RangesTest, FormatStringLike) { in TEST() function
139 EXPECT_EQ("foo", fmt::format("{}", string_like())); in TEST()
154 TEST(RangesTest, JoinSentinel) { in TEST() function
156 EXPECT_EQ("{'h', 'e', 'l', 'l', 'o'}", fmt::format("{}", hello)); in TEST()
157 EXPECT_EQ("h_e_l_l_o", fmt::format("{}", fmt::join(hello, "_"))); in TEST()
160 // A range that provides non-const only begin()/end() to test fmt::join handles
163 // Some ranges (eg those produced by range-v3's views::filter()) can cache
164 // information during iteration so they only provide non-const begin()/end().
180 TEST(RangesTest, JoinRange) { in TEST() function
182 EXPECT_EQ("0,0,0", fmt::format("{}", fmt::join(x, ","))); in TEST()
185 fmt::format("{}", fmt::join(non_const_only_range<int>(3u, 0), ","))); in TEST()
188 EXPECT_EQ("0,0,0", fmt::format("{}", fmt::join(y, ","))); in TEST()
190 fmt::format("{}", fmt::join(std::vector<int>(3u, 0), ","))); in TEST()
193 EXPECT_EQ("0,0,0", fmt::format("{}", fmt::join(z, ","))); in TEST()
199 TEST(RangesTest, UnformattableRange) { in TEST() function
200 EXPECT_FALSE((fmt::has_formatter<std::vector<unformattable>, in TEST()
201 fmt::format_context>::value)); in TEST()