From 6361daa76f55474226cb78551b4a082e9d2c1e35 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Wed, 18 Jun 2025 08:53:46 +0200 Subject: [PATCH] feat: `EQUIV{...}` replaced with `[...]` in the text output of common units --- docs/users_guide/framework_basics/text_output.md | 8 ++++---- src/core/include/mp-units/framework/unit.h | 4 ++-- test/static/unit_symbol_test.cpp | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/users_guide/framework_basics/text_output.md b/docs/users_guide/framework_basics/text_output.md index c931028b..9c3f02ce 100644 --- a/docs/users_guide/framework_basics/text_output.md +++ b/docs/users_guide/framework_basics/text_output.md @@ -304,10 +304,10 @@ std::cout << 1 * rad + 1 * deg << "\n"; prints: ```text -40771 EQUIV{[1/25146 mi], [1/15625 km]} -108167 EQUIV{[1/50292 mi], [1/57875 nmi]} -23 EQUIV{[1/5 km/h], [1/18 m/s]} -183.142 EQUIV{[1/π°], [1/180 rad]} +40771 [(1/25146 mi), (1/15625 km)] +108167 [(1/50292 mi), (1/57875 nmi)] +23 [(1/5 km/h), (1/18 m/s)] +183.142 [(1/π°), (1/180 rad)] ``` Thanks to the above, it might be easier for the user to reason about the magnitude of the resulting diff --git a/src/core/include/mp-units/framework/unit.h b/src/core/include/mp-units/framework/unit.h index 0eec635b..aa10d2d7 100644 --- a/src/core/include/mp-units/framework/unit.h +++ b/src/core/include/mp-units/framework/unit.h @@ -802,7 +802,7 @@ template Out, typename U, typename.. constexpr Out unit_symbol_impl(Out out, const common_unit&, const unit_symbol_formatting& fmt, bool negative_power) { - constexpr std::string_view prefix("EQUIV{"); + constexpr std::string_view prefix("["); constexpr std::string_view separator(", "); auto print_unit = [&](Arg) { constexpr auto u = get_common_unit_in(common_unit{}, Arg{}); @@ -814,7 +814,7 @@ constexpr Out unit_symbol_impl(Out out, const common_unit&, const un detail::copy(std::begin(separator), std::end(separator), out); print_unit(Arg{}); }); - *out++ = '}'; + *out++ = ']'; return out; } diff --git a/test/static/unit_symbol_test.cpp b/test/static/unit_symbol_test.cpp index 03e44477..dbd4c465 100644 --- a/test/static/unit_symbol_test.cpp +++ b/test/static/unit_symbol_test.cpp @@ -204,13 +204,13 @@ static_assert(unit_symbol(mag<2> / (mag<π> * mag)*one) == "(2 e⁻¹ π⁻¹ static_assert(unit_symbol(mag<2> / (mag<π> * mag)*one) == "(2/(e π))"); // common units -static_assert(unit_symbol(get_common_unit(kilo, mile)) == "EQUIV{(1/25146 mi), (1/15625 km)}"); -static_assert(unit_symbol(get_common_unit(kilo / hour, metre / second)) == "EQUIV{(1/5 km/h), (1/18 m/s)}"); +static_assert(unit_symbol(get_common_unit(kilo, mile)) == "[(1/25146 mi), (1/15625 km)]"); +static_assert(unit_symbol(get_common_unit(kilo / hour, metre / second)) == "[(1/5 km/h), (1/18 m/s)]"); static_assert(unit_symbol(get_common_unit(kilo / hour, metre / second) / second) == - "EQUIV{(1/5 km/h), (1/18 m/s)}/s"); + "[(1/5 km/h), (1/18 m/s)]/s"); static_assert(unit_symbol(get_common_unit(kilo / hour, metre / second) * second) == - "EQUIV{(1/5 km/h), (1/18 m/s)} s"); -static_assert(unit_symbol(get_common_unit(radian, degree)) == "EQUIV{(1/π°), (1/180 rad)}"); + "[(1/5 km/h), (1/18 m/s)] s"); +static_assert(unit_symbol(get_common_unit(radian, degree)) == "[(1/π°), (1/180 rad)]"); // derived units static_assert(unit_symbol(one) == ""); // NOLINT(readability-container-size-empty)