From 6a5f25750d3288d7838da9020e5df25fa10f2896 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 10 Mar 2020 20:53:53 +0100 Subject: [PATCH] UDL naming refactored --- README.md | 6 +-- docs/DESIGN.md | 8 ++-- docs/quick_start.rst | 6 +-- .../alternative_namespaces/box_example.cpp | 2 +- example/box_example.cpp | 4 +- ...lman_filter-alpha_beta_filter_example2.cpp | 2 +- src/include/units/physical/cgs/power.h | 4 +- src/include/units/physical/cgs/velocity.h | 4 +- .../units/physical/international/velocity.h | 4 +- src/include/units/physical/si/acceleration.h | 4 +- src/include/units/physical/si/constants.h | 4 +- src/include/units/physical/si/density.h | 4 +- src/include/units/physical/si/momentum.h | 4 +- .../units/physical/si/surface_tension.h | 4 +- src/include/units/physical/si/velocity.h | 8 ++-- test/unit_test/runtime/fmt_test.cpp | 16 +++---- test/unit_test/runtime/fmt_units_test.cpp | 14 +++--- test/unit_test/static/cgs_test.cpp | 18 ++++---- test/unit_test/static/quantity_test.cpp | 10 ++--- test/unit_test/static/si_cgs_test.cpp | 14 +++--- test/unit_test/static/si_test.cpp | 44 +++++++++---------- test/unit_test/static/us_test.cpp | 2 +- 22 files changed, 93 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index 594c8ad3..c20a3c1a 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,9 @@ static_assert(1q_km + 1q_m == 1001q_m); static_assert(2q_m * 3q_m == 6q_m2); static_assert(10q_km / 5q_km == 2); static_assert(1000 / 1q_s == 1q_kHz); -static_assert(1q_km / 1q_s == 1000q_mps); -static_assert(2q_kmph * 2q_h == 4q_km); -static_assert(2q_km / 2q_kmph == 1q_h); +static_assert(1q_km / 1q_s == 1000q_m_per_s); +static_assert(2q_km_per_h * 2q_h == 4q_km); +static_assert(2q_km / 2q_km_per_h == 1q_h); ``` _Try it on the [Compiler Explorer](???)._ diff --git a/docs/DESIGN.md b/docs/DESIGN.md index 2570b47e..df6b3fc2 100644 --- a/docs/DESIGN.md +++ b/docs/DESIGN.md @@ -18,9 +18,9 @@ static_assert(1q_h == 3600q_s); static_assert(1q_km + 1q_m == 1001q_m); // dimension conversions -static_assert(1q_km / 1q_s == 1000q_mps); -static_assert(2q_kmph * 2q_h == 4q_km); -static_assert(2q_km / 2q_kmph == 1q_h); +static_assert(1q_km / 1q_s == 1000q_m_per_s); +static_assert(2q_km_per_h * 2q_h == 4q_km); +static_assert(2q_km / 2q_km_per_h == 1q_h); static_assert(1000 / 1q_s == 1q_kHz); @@ -574,7 +574,7 @@ If the `units-specs` is omitted, the `quantity` object is formatted as if by str additional padding and adjustments as specified by the format specifiers. ```cpp -std::string s = fmt::format("{:=>12}", 120q_kmph); // value of s is "====120 km/h" +std::string s = fmt::format("{:=>12}", 120q_km_per_h); // value of s is "====120 km/h" ``` diff --git a/docs/quick_start.rst b/docs/quick_start.rst index 279aa920..e41e8853 100644 --- a/docs/quick_start.rst +++ b/docs/quick_start.rst @@ -14,9 +14,9 @@ Here is a small example of possible operations:: static_assert(2q_m * 3q_m == 6q_m2); static_assert(10q_km / 5q_km == 2); static_assert(1000 / 1q_s == 1q_kHz); - static_assert(1q_km / 1q_s == 1000q_mps); - static_assert(2q_kmph * 2q_h == 4q_km); - static_assert(2q_km / 2q_kmph == 1q_h); + static_assert(1q_km / 1q_s == 1000q_m_per_s); + static_assert(2q_km_per_h * 2q_h == 4q_km); + static_assert(2q_km / 2q_km_per_h == 1q_h); .. admonition:: Try it on Compiler Explorer diff --git a/example/alternative_namespaces/box_example.cpp b/example/alternative_namespaces/box_example.cpp index 795697da..85f69008 100644 --- a/example/alternative_namespaces/box_example.cpp +++ b/example/alternative_namespaces/box_example.cpp @@ -102,7 +102,7 @@ using namespace units::si::literals; int main() { auto box = Box{1000.0q_mm, 500.0q_mm, 200.0q_mm}; - box.set_contents_density(1000.0q_kgpm3); + box.set_contents_density(1000.0q_kg_per_m3); auto fill_time = 200.0q_s; // time since starting fill auto measured_mass = 20.0q_kg; // measured mass at fill_time diff --git a/example/box_example.cpp b/example/box_example.cpp index 36dc96da..17f59401 100644 --- a/example/box_example.cpp +++ b/example/box_example.cpp @@ -25,7 +25,7 @@ inline constexpr auto g = si::standard_gravity; } // namespace struct Box { - static constexpr auto air_density = 1.225q_kgpm3; + static constexpr auto air_density = 1.225q_kg_per_m3; si::length length; si::length width; @@ -66,7 +66,7 @@ struct Box { int main() { auto box = Box(1000.0q_mm, 500.0q_mm, 200.0q_mm); - box.set_contents_density(1000.0q_kgpm3); + box.set_contents_density(1000.0q_kg_per_m3); const auto fill_time = 200.0q_s; // time since starting fill const auto measured_mass = 20.0q_kg; // measured mass at fill_time diff --git a/example/kalman_filter-alpha_beta_filter_example2.cpp b/example/kalman_filter-alpha_beta_filter_example2.cpp index 9b9ee051..c45286ce 100644 --- a/example/kalman_filter-alpha_beta_filter_example2.cpp +++ b/example/kalman_filter-alpha_beta_filter_example2.cpp @@ -65,7 +65,7 @@ int main() if(track.size() > 0) { // We need an initial estimate of track[0] as there is no previous state to get a prediction from track[0].range.estimated_current_state = 30'000q_m; - track[0].speed.estimated_current_state = 40.0q_mps; + track[0].speed.estimated_current_state = 40.0q_m_per_s; } for (auto n = 0U; n < num_measurements; ++n) { diff --git a/src/include/units/physical/cgs/power.h b/src/include/units/physical/cgs/power.h index 148b0c9b..06981b01 100644 --- a/src/include/units/physical/cgs/power.h +++ b/src/include/units/physical/cgs/power.h @@ -39,8 +39,8 @@ using power = quantity; inline namespace literals { // ergps -constexpr auto operator"" q_ergps(unsigned long long l) { return power(l); } -constexpr auto operator"" q_ergps(long double l) { return power(l); } +constexpr auto operator"" q_erg_per_s(unsigned long long l) { return power(l); } +constexpr auto operator"" q_erg_per_s(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/velocity.h b/src/include/units/physical/cgs/velocity.h index 61fa20ca..8a96f070 100644 --- a/src/include/units/physical/cgs/velocity.h +++ b/src/include/units/physical/cgs/velocity.h @@ -38,8 +38,8 @@ using velocity = quantity; inline namespace literals { // cmps -constexpr auto operator"" q_cmps(unsigned long long l) { return velocity(l); } -constexpr auto operator"" q_cmps(long double l) { return velocity(l); } +constexpr auto operator"" q_cm_per_s(unsigned long long l) { return velocity(l); } +constexpr auto operator"" q_cm_per_s(long double l) { return velocity(l); } } // namespace literals diff --git a/src/include/units/physical/international/velocity.h b/src/include/units/physical/international/velocity.h index 723356c9..0290d8f3 100644 --- a/src/include/units/physical/international/velocity.h +++ b/src/include/units/physical/international/velocity.h @@ -32,8 +32,8 @@ struct mile_per_hour : deduced_unit(l); } -constexpr auto operator"" q_mph(long double l) { return si::velocity(l); } +constexpr auto operator"" q_mi_per_h(unsigned long long l) { return si::velocity(l); } +constexpr auto operator"" q_mi_per_h(long double l) { return si::velocity(l); } } // namespace literals diff --git a/src/include/units/physical/si/acceleration.h b/src/include/units/physical/si/acceleration.h index 6c336522..084d0edb 100644 --- a/src/include/units/physical/si/acceleration.h +++ b/src/include/units/physical/si/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // mps2 -constexpr auto operator"" q_mps2(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" q_mps2(long double l) { return acceleration(l); } +constexpr auto operator"" q_m_per_s2(unsigned long long l) { return acceleration(l); } +constexpr auto operator"" q_m_per_s2(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/si/constants.h b/src/include/units/physical/si/constants.h index 4a27a021..7135aad1 100644 --- a/src/include/units/physical/si/constants.h +++ b/src/include/units/physical/si/constants.h @@ -37,10 +37,10 @@ inline constexpr auto reduced_planck_constant = 6.582119569e-10q_GeV * 1q_s; inline constexpr auto elementary_charge = 1.602176634e-19q_C; inline constexpr auto boltzmann_constant = 1.380649e-23q_J / 1q_K; inline constexpr auto avogadro_constant = 6.02214076e23 / 1q_mol; -inline constexpr auto speed_of_light = 299792458q_mps; +inline constexpr auto speed_of_light = 299792458q_m_per_s; inline constexpr auto hyperfine_structure_transition_frequency = 9192631770q_Hz; // inline constexpr auto luminous_efficacy = 683q_lm / 1q_W; -inline constexpr auto standard_gravity = 9.80665q_mps2; +inline constexpr auto standard_gravity = 9.80665q_m_per_s2; } // namespace units::si diff --git a/src/include/units/physical/si/density.h b/src/include/units/physical/si/density.h index fef95294..8a72e910 100644 --- a/src/include/units/physical/si/density.h +++ b/src/include/units/physical/si/density.h @@ -39,8 +39,8 @@ using density = quantity; inline namespace literals { -constexpr auto operator"" q_kgpm3(unsigned long long l) { return density(l); } -constexpr auto operator"" q_kgpm3(long double l) { return density(l); } +constexpr auto operator"" q_kg_per_m3(unsigned long long l) { return density(l); } +constexpr auto operator"" q_kg_per_m3(long double l) { return density(l); } } // namespace literals diff --git a/src/include/units/physical/si/momentum.h b/src/include/units/physical/si/momentum.h index 7b9b709c..cc1d128c 100644 --- a/src/include/units/physical/si/momentum.h +++ b/src/include/units/physical/si/momentum.h @@ -38,8 +38,8 @@ using momentum = quantity; inline namespace literals { // kgmps -constexpr auto operator"" q_kgmps(unsigned long long l) { return momentum(l); } -constexpr auto operator"" q_kgmps(long double l) { return momentum(l); } +constexpr auto operator"" q_kg_m_per_s(unsigned long long l) { return momentum(l); } +constexpr auto operator"" q_kg_m_per_s(long double l) { return momentum(l); } } // namespace literals diff --git a/src/include/units/physical/si/surface_tension.h b/src/include/units/physical/si/surface_tension.h index 2fd4ba89..d63ffc9b 100644 --- a/src/include/units/physical/si/surface_tension.h +++ b/src/include/units/physical/si/surface_tension.h @@ -38,8 +38,8 @@ using surface_tension = quantity; inline namespace literals { // Nm - constexpr auto operator"" q_Npm(unsigned long long l) { return surface_tension(l); } - constexpr auto operator"" q_Npm(long double l) { return surface_tension(l); } + constexpr auto operator"" q_N_per_m(unsigned long long l) { return surface_tension(l); } + constexpr auto operator"" q_N_per_m(long double l) { return surface_tension(l); } } // namespace literals diff --git a/src/include/units/physical/si/velocity.h b/src/include/units/physical/si/velocity.h index 825b6041..7507da44 100644 --- a/src/include/units/physical/si/velocity.h +++ b/src/include/units/physical/si/velocity.h @@ -40,12 +40,12 @@ using velocity = quantity; inline namespace literals { // mps -constexpr auto operator"" q_mps(unsigned long long l) { return velocity(l); } -constexpr auto operator"" q_mps(long double l) { return velocity(l); } +constexpr auto operator"" q_m_per_s(unsigned long long l) { return velocity(l); } +constexpr auto operator"" q_m_per_s(long double l) { return velocity(l); } // kmph -constexpr auto operator"" q_kmph(unsigned long long l) { return velocity(l); } -constexpr auto operator"" q_kmph(long double l) { return velocity(l); } +constexpr auto operator"" q_km_per_h(unsigned long long l) { return velocity(l); } +constexpr auto operator"" q_km_per_h(long double l) { return velocity(l); } } // namespace literals diff --git a/test/unit_test/runtime/fmt_test.cpp b/test/unit_test/runtime/fmt_test.cpp index 7dab307b..e9def191 100644 --- a/test/unit_test/runtime/fmt_test.cpp +++ b/test/unit_test/runtime/fmt_test.cpp @@ -662,7 +662,7 @@ TEST_CASE("format string with only %Q should print quantity value only", "[text] { SECTION("positive value") { - CHECK(fmt::format("{:%Q}", 123q_kmph) == "123"); + CHECK(fmt::format("{:%Q}", 123q_km_per_h) == "123"); } SECTION("negative value") @@ -702,39 +702,39 @@ TEST_CASE("format string with only %Q should print quantity value only", "[text] TEST_CASE("format string with only %q should print quantity unit symbol only", "[text][fmt]") { - CHECK(fmt::format("{:%q}", 123q_kmph) == "km/h"); + CHECK(fmt::format("{:%q}", 123q_km_per_h) == "km/h"); } TEST_CASE("%q an %Q can be put anywhere in a format string", "[text][fmt]") { SECTION("no space") { - CHECK(fmt::format("{:%Q%q}", 123q_kmph) == "123km/h"); + CHECK(fmt::format("{:%Q%q}", 123q_km_per_h) == "123km/h"); } SECTION("separator") { - CHECK(fmt::format("{:%Q###%q}", 123q_kmph) == "123###km/h"); + CHECK(fmt::format("{:%Q###%q}", 123q_km_per_h) == "123###km/h"); } SECTION("opposite order") { - CHECK(fmt::format("{:%q %Q}", 123q_kmph) == "km/h 123"); + CHECK(fmt::format("{:%q %Q}", 123q_km_per_h) == "km/h 123"); } SECTION("tabulator") { - CHECK(fmt::format("{:%Q%t%q}", 123q_kmph) == "123\tkm/h"); + CHECK(fmt::format("{:%Q%t%q}", 123q_km_per_h) == "123\tkm/h"); } SECTION("new line") { - CHECK(fmt::format("{:%Q%n%q}", 123q_kmph) == "123\nkm/h"); + CHECK(fmt::format("{:%Q%n%q}", 123q_km_per_h) == "123\nkm/h"); } SECTION("% sign") { - CHECK(fmt::format("{:%Q%% %q}", 123q_kmph) == "123% km/h"); + CHECK(fmt::format("{:%Q%% %q}", 123q_km_per_h) == "123% km/h"); } } diff --git a/test/unit_test/runtime/fmt_units_test.cpp b/test/unit_test/runtime/fmt_units_test.cpp index a1aebc6e..615be835 100644 --- a/test/unit_test/runtime/fmt_units_test.cpp +++ b/test/unit_test/runtime/fmt_units_test.cpp @@ -102,7 +102,7 @@ TEST_CASE("fmt::format on synthesized unit symbols", "[text][fmt]") SECTION("density") { - CHECK(fmt::format("{}", 1q_kgpm3) == "1 kg/m³"); + CHECK(fmt::format("{}", 1q_kg_per_m3) == "1 kg/m³"); } SECTION("resistance") @@ -142,19 +142,19 @@ TEST_CASE("fmt::format on synthesized unit symbols", "[text][fmt]") SECTION("velocity") { - CHECK(fmt::format("{}", 1q_mps) == "1 m/s"); - CHECK(fmt::format("{}", 1q_kmph) == "1 km/h"); - CHECK(fmt::format("{}", 1q_mph) == "1 mi/h"); + CHECK(fmt::format("{}", 1q_m_per_s) == "1 m/s"); + CHECK(fmt::format("{}", 1q_km_per_h) == "1 km/h"); + CHECK(fmt::format("{}", 1q_mi_per_h) == "1 mi/h"); } SECTION("acceleration") { - CHECK(fmt::format("{}", 1q_mps2) == "1 m/s²"); + CHECK(fmt::format("{}", 1q_m_per_s2) == "1 m/s²"); } SECTION("momentum") { - CHECK(fmt::format("{}", 1q_kgmps) == "1 kg⋅m/s"); + CHECK(fmt::format("{}", 1q_kg_m_per_s) == "1 kg⋅m/s"); } SECTION("energy") @@ -175,7 +175,7 @@ TEST_CASE("fmt::format on synthesized unit symbols", "[text][fmt]") SECTION("surface tension") { - CHECK(fmt::format("{}", 1q_Npm) == "1 N/m"); + CHECK(fmt::format("{}", 1q_N_per_m) == "1 N/m"); } SECTION("addition with common ratio") diff --git a/test/unit_test/static/cgs_test.cpp b/test/unit_test/static/cgs_test.cpp index bf1bcc9a..294bb54e 100644 --- a/test/unit_test/static/cgs_test.cpp +++ b/test/unit_test/static/cgs_test.cpp @@ -50,9 +50,9 @@ static_assert(centimetre::symbol == "cm"); // velocity -static_assert(10q_cm / 5q_s == 2q_cmps); -static_assert(10q_cm / 2q_cmps == 5q_s); -static_assert(10q_cm == 2q_cmps * 5q_s); +static_assert(10q_cm / 5q_s == 2q_cm_per_s); +static_assert(10q_cm / 2q_cm_per_s == 5q_s); +static_assert(10q_cm == 2q_cm_per_s * 5q_s); static_assert(detail::unit_text() == "cm/s"); @@ -68,9 +68,9 @@ static_assert(detail::unit_text() == "cm²"); // acceleration -static_assert(10q_cmps / 10q_s == 1q_Gal); -static_assert(10q_cmps / 1q_Gal == 10q_s); -static_assert(1q_Gal * 10q_s == 10q_cmps); +static_assert(10q_cm_per_s / 10q_s == 1q_Gal); +static_assert(10q_cm_per_s / 1q_Gal == 10q_s); +static_assert(1q_Gal * 10q_s == 10q_cm_per_s); // force @@ -94,9 +94,9 @@ static_assert(100q_erg / 10q_dyn == 10q_cm); // power -static_assert(10q_erg / 10q_s == 1q_ergps); -static_assert(1q_ergps * 10q_s == 10q_erg); -static_assert(10q_erg / 1q_ergps == 10q_s); +static_assert(10q_erg / 10q_s == 1q_erg_per_s); +static_assert(1q_erg_per_s * 10q_s == 10q_erg); +static_assert(10q_erg / 1q_erg_per_s == 10q_s); static_assert(detail::unit_text() == "erg/s"); diff --git a/test/unit_test/static/quantity_test.cpp b/test/unit_test/static/quantity_test.cpp index bf87cf9a..da2f6d8a 100644 --- a/test/unit_test/static/quantity_test.cpp +++ b/test/unit_test/static/quantity_test.cpp @@ -340,11 +340,11 @@ static_assert(10q_km / 2 == 5q_km); // velocity -static_assert(10q_m / 5q_s == 2q_mps); -static_assert(10 / 5q_s * 1q_m == 2q_mps); -static_assert(1q_km / 1q_s == 1000q_mps); -static_assert(2q_kmph * 2q_h == 4q_km); -static_assert(2q_km / 2q_kmph == 1q_h); +static_assert(10q_m / 5q_s == 2q_m_per_s); +static_assert(10 / 5q_s * 1q_m == 2q_m_per_s); +static_assert(1q_km / 1q_s == 1000q_m_per_s); +static_assert(2q_km_per_h * 2q_h == 4q_km); +static_assert(2q_km / 2q_km_per_h == 1q_h); static_assert(std::is_same_v(2q_m)), decltype(4q_m2)>); diff --git a/test/unit_test/static/si_cgs_test.cpp b/test/unit_test/static/si_cgs_test.cpp index d2fcf10a..8af2f99c 100644 --- a/test/unit_test/static/si_cgs_test.cpp +++ b/test/unit_test/static/si_cgs_test.cpp @@ -64,8 +64,8 @@ using namespace units::si::literals; static_assert(cgs::length(100) == 1q_m); static_assert(cgs::mass(1'000) == 1q_kg); static_assert(cgs::time(1) == 1q_s); -static_assert(cgs::velocity(100) == 1q_mps); -static_assert(cgs::acceleration(100) == 1q_mps2); +static_assert(cgs::velocity(100) == 1q_m_per_s); +static_assert(cgs::acceleration(100) == 1q_m_per_s2); static_assert(cgs::force(100'000) == 1q_N); static_assert(cgs::energy(10'000'000) == 1q_J); static_assert(cgs::power(10'000'000) == 1q_W); @@ -80,11 +80,11 @@ using namespace units::cgs::literals; static_assert(100q_cm == si::length(1)); static_assert(1'000q_g == si::mass(1)); static_assert(1q_s == si::time(1)); -static_assert(100q_cmps == si::velocity(1)); +static_assert(100q_cm_per_s == si::velocity(1)); static_assert(100q_Gal == si::acceleration(1)); static_assert(100'000q_dyn == si::force(1)); static_assert(10'000'000q_erg == si::energy(1)); -static_assert(10'000'000q_ergps == si::power(1)); +static_assert(10'000'000q_erg_per_s == si::power(1)); static_assert(10q_Ba == si::pressure(1)); } @@ -97,11 +97,11 @@ using namespace units::cgs::literals; // static_assert(100q_cm == 1q_m); // ambiguous // static_assert(1'000q_g == 1q_kg); // ambiguous static_assert(1q_s == 1q_s); -static_assert(100q_cmps == 1q_mps); -static_assert(100q_Gal == 1q_mps2); +static_assert(100q_cm_per_s == 1q_m_per_s); +static_assert(100q_Gal == 1q_m_per_s2); static_assert(100'000q_dyn == 1q_N); static_assert(10'000'000q_erg == 1q_J); -static_assert(10'000'000q_ergps == 1q_W); +static_assert(10'000'000q_erg_per_s == 1q_W); static_assert(10q_Ba == quantity_cast(1q_Pa)); } diff --git a/test/unit_test/static/si_test.cpp b/test/unit_test/static/si_test.cpp index 8a2ce4a6..320665dd 100644 --- a/test/unit_test/static/si_test.cpp +++ b/test/unit_test/static/si_test.cpp @@ -122,9 +122,9 @@ static_assert(10q_Hz * 1q_min == 600); static_assert(2 / 1q_Hz == 2q_s); // force -static_assert(10q_kg * 10q_mps2 == 100q_N); -static_assert(100q_N / 1q_mps2 == 100q_kg); -static_assert(100q_N / 1q_kg == 100q_mps2); +static_assert(10q_kg * 10q_m_per_s2 == 100q_N); +static_assert(100q_N / 1q_m_per_s2 == 100q_kg); +static_assert(100q_N / 1q_kg == 100q_m_per_s2); // pressure @@ -194,30 +194,30 @@ static_assert(10q_V * 1q_F == 10q_C); static_assert(std::is_same_v, metre_per_second>, std::int64_t>>); -static_assert(10q_m / 5q_s == 2q_mps); -static_assert(10 / 5q_s * 1q_m == 2q_mps); -static_assert(1q_km / 1q_s == 1000q_mps); -// static_assert(1q_km / 1q_h == 1q_kmph); // should not compile -static_assert(1.0q_km / 1q_h == 1q_kmph); -static_assert(1000.0q_m / 3600.0q_s == 1q_kmph); +static_assert(10q_m / 5q_s == 2q_m_per_s); +static_assert(10 / 5q_s * 1q_m == 2q_m_per_s); +static_assert(1q_km / 1q_s == 1000q_m_per_s); +// static_assert(1q_km / 1q_h == 1q_km_per_h); // should not compile +static_assert(1.0q_km / 1q_h == 1q_km_per_h); +static_assert(1000.0q_m / 3600.0q_s == 1q_km_per_h); -static_assert(2q_kmph * 2q_h == 4q_km); -// static_assert(2q_kmph * 15q_min == 500q_m); // should not compile -static_assert(2q_kmph * 15.0q_min == 500q_m); -static_assert(2.0q_kmph * 15q_min == 500q_m); +static_assert(2q_km_per_h * 2q_h == 4q_km); +// static_assert(2q_km_per_h * 15q_min == 500q_m); // should not compile +static_assert(2q_km_per_h * 15.0q_min == 500q_m); +static_assert(2.0q_km_per_h * 15q_min == 500q_m); -static_assert(2q_km / 2q_kmph == 1q_h); -// static_assert(2000q_m / 2q_kmph == 1q_h); // should not compile -static_assert(quantity_cast(2000q_m) / 2q_kmph == 1q_h); +static_assert(2q_km / 2q_km_per_h == 1q_h); +// static_assert(2000q_m / 2q_km_per_h == 1q_h); // should not compile +static_assert(quantity_cast(2000q_m) / 2q_km_per_h == 1q_h); static_assert(detail::unit_text() == "m/s"); static_assert(kilometre_per_hour::symbol == "km/h"); // acceleration -static_assert(10q_mps / 10q_s == 1q_mps2); -static_assert(10q_mps / 1q_mps2 == 10q_s); -static_assert(1q_mps2 * 10q_s == 10q_mps); +static_assert(10q_m_per_s / 10q_s == 1q_m_per_s2); +static_assert(10q_m_per_s / 1q_m_per_s2 == 10q_s); +static_assert(1q_m_per_s2 * 10q_s == 10q_m_per_s); static_assert(detail::unit_text() == "m/s²"); @@ -244,9 +244,9 @@ static_assert(detail::unit_text() == "m³"); /* ************** DERIVED DIMENSIONS IN TERMS OF OTHER UNITS **************** */ -static_assert(10q_N / 2q_m == 5q_Npm); -static_assert(10q_N / 5q_Npm == 2q_m); -static_assert(2q_m * 5q_Npm == 10q_N); +static_assert(10q_N / 2q_m == 5q_N_per_m); +static_assert(10q_N / 5q_N_per_m == 2q_m); +static_assert(2q_m * 5q_N_per_m == 10q_N); static_assert(detail::unit_text() == "N/m"); diff --git a/test/unit_test/static/us_test.cpp b/test/unit_test/static/us_test.cpp index f4069973..7b7d8f60 100644 --- a/test/unit_test/static/us_test.cpp +++ b/test/unit_test/static/us_test.cpp @@ -54,7 +54,7 @@ static_assert(5q_in + 8q_cm == 207q_mm); // velocity -static_assert(10.0q_mi / 2q_h == 5q_mph); +static_assert(10.0q_mi / 2q_h == 5q_mi_per_h); static_assert(mile_per_hour::symbol == "mi/h");