Move misplaced join overloads to fmt/ranges.h

This commit is contained in:
Victor Zverovich
2024-01-01 16:28:59 -08:00
parent 0b39d67103
commit 50565f9853
8 changed files with 123 additions and 124 deletions
+1
View File
@@ -10,6 +10,7 @@
#include <type_traits>
#include "fmt/chrono.h"
#include "fmt/ranges.h"
#include "gmock/gmock.h"
#include "gtest-extra.h"
-34
View File
@@ -1791,40 +1791,6 @@ TEST(format_test, nested_formatter) {
enum test_enum { foo, bar };
auto format_as(test_enum e) -> int { return e; }
TEST(format_test, join) {
using fmt::join;
int v1[3] = {1, 2, 3};
auto v2 = std::vector<float>();
v2.push_back(1.2f);
v2.push_back(3.4f);
void* v3[2] = {&v1[0], &v1[1]};
EXPECT_EQ(fmt::format("({})", join(v1, v1 + 3, ", ")), "(1, 2, 3)");
EXPECT_EQ(fmt::format("({})", join(v1, v1 + 1, ", ")), "(1)");
EXPECT_EQ(fmt::format("({})", join(v1, v1, ", ")), "()");
EXPECT_EQ(fmt::format("({:03})", join(v1, v1 + 3, ", ")), "(001, 002, 003)");
EXPECT_EQ("(+01.20, +03.40)",
fmt::format("({:+06.2f})", join(v2.begin(), v2.end(), ", ")));
EXPECT_EQ(fmt::format("{0:{1}}", join(v1, v1 + 3, ", "), 1), "1, 2, 3");
EXPECT_EQ(fmt::format("{}, {}", v3[0], v3[1]),
fmt::format("{}", join(v3, v3 + 2, ", ")));
EXPECT_EQ(fmt::format("({})", join(v1, ", ")), "(1, 2, 3)");
EXPECT_EQ(fmt::format("({:+06.2f})", join(v2, ", ")), "(+01.20, +03.40)");
auto v4 = std::vector<test_enum>{foo, bar, foo};
EXPECT_EQ(fmt::format("{}", join(v4, " ")), "0 1 0");
}
#ifdef __cpp_lib_byte
TEST(format_test, join_bytes) {
auto v = std::vector<std::byte>{std::byte(1), std::byte(2), std::byte(3)};
EXPECT_EQ(fmt::format("{}", fmt::join(v, ", ")), "1, 2, 3");
}
#endif
std::string vformat_message(int id, const char* format, fmt::format_args args) {
auto buffer = fmt::memory_buffer();
fmt::format_to(fmt::appender(buffer), "[{}] ", id);
+1 -2
View File
@@ -252,8 +252,7 @@ TEST(ostream_test, move_while_holding_data) {
TEST(ostream_test, print) {
fmt::ostream out = fmt::output_file("test-file");
out.print("The answer is {}.\n",
fmt::join(std::initializer_list<int>{42}, ", "));
out.print("The answer is {}.\n", 42);
out.close();
file in("test-file", file::RDONLY);
EXPECT_READ(in, "The answer is 42.\n");
+35 -1
View File
@@ -287,7 +287,7 @@ TEST(ranges_test, range) {
EXPECT_EQ(fmt::format("{}", z), "[0, 0, 0]");
}
enum test_enum { foo };
enum test_enum { foo, bar };
auto format_as(test_enum e) -> int { return e; }
TEST(ranges_test, enum_range) {
@@ -302,6 +302,40 @@ TEST(ranges_test, unformattable_range) {
}
#endif
TEST(ranges_test, join) {
using fmt::join;
int v1[3] = {1, 2, 3};
auto v2 = std::vector<float>();
v2.push_back(1.2f);
v2.push_back(3.4f);
void* v3[2] = {&v1[0], &v1[1]};
EXPECT_EQ(fmt::format("({})", join(v1, v1 + 3, ", ")), "(1, 2, 3)");
EXPECT_EQ(fmt::format("({})", join(v1, v1 + 1, ", ")), "(1)");
EXPECT_EQ(fmt::format("({})", join(v1, v1, ", ")), "()");
EXPECT_EQ(fmt::format("({:03})", join(v1, v1 + 3, ", ")), "(001, 002, 003)");
EXPECT_EQ("(+01.20, +03.40)",
fmt::format("({:+06.2f})", join(v2.begin(), v2.end(), ", ")));
EXPECT_EQ(fmt::format("{0:{1}}", join(v1, v1 + 3, ", "), 1), "1, 2, 3");
EXPECT_EQ(fmt::format("{}, {}", v3[0], v3[1]),
fmt::format("{}", join(v3, v3 + 2, ", ")));
EXPECT_EQ(fmt::format("({})", join(v1, ", ")), "(1, 2, 3)");
EXPECT_EQ(fmt::format("({:+06.2f})", join(v2, ", ")), "(+01.20, +03.40)");
auto v4 = std::vector<test_enum>{foo, bar, foo};
EXPECT_EQ(fmt::format("{}", join(v4, " ")), "0 1 0");
}
#ifdef __cpp_lib_byte
TEST(ranges_test, join_bytes) {
auto v = std::vector<std::byte>{std::byte(1), std::byte(2), std::byte(3)};
EXPECT_EQ(fmt::format("{}", fmt::join(v, ", ")), "1, 2, 3");
}
#endif
#ifdef FMT_RANGES_TEST_ENABLE_JOIN
TEST(ranges_test, join_tuple) {
// Value tuple args.