From 037503cbc6dee7cad718ee1c268054acd1d16f3e Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Mon, 10 Feb 2020 20:35:32 +0100 Subject: [PATCH] deduced_unit fixed + unit test for mass unit added --- src/include/units/bits/deduced_unit.h | 3 ++- src/include/units/physical/si/mass.h | 4 ++-- test/unit_test/static/custom_unit_test.cpp | 12 ++++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/include/units/bits/deduced_unit.h b/src/include/units/bits/deduced_unit.h index 82a28fc6..e8832da6 100644 --- a/src/include/units/bits/deduced_unit.h +++ b/src/include/units/bits/deduced_unit.h @@ -61,7 +61,8 @@ struct derived_ratio, Us...> { template struct derived_ratio, U, URest...> { using rest_ratio = derived_ratio, URest...>::ratio; - using ratio = ratio_op::ratio; + using unit_ratio = ratio_op::ratio; + using ratio = ratio_divide::ratio>; }; template diff --git a/src/include/units/physical/si/mass.h b/src/include/units/physical/si/mass.h index 37646b1a..1a4dd5f0 100644 --- a/src/include/units/physical/si/mass.h +++ b/src/include/units/physical/si/mass.h @@ -28,8 +28,8 @@ namespace units::si { -struct kilogram : named_unit {}; -struct gram : named_scaled_unit, kilogram> {}; +struct gram : named_unit {}; +struct kilogram : prefixed_unit {}; struct tonne : named_scaled_unit, kilogram> {}; struct dalton : named_scaled_unit, kilogram> {}; diff --git a/test/unit_test/static/custom_unit_test.cpp b/test/unit_test/static/custom_unit_test.cpp index 54c0c056..3c0ff742 100644 --- a/test/unit_test/static/custom_unit_test.cpp +++ b/test/unit_test/static/custom_unit_test.cpp @@ -20,7 +20,9 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +#include #include +#include #include #include @@ -54,3 +56,13 @@ static_assert(std::is_same_v(amplitude_spectral_density(16))), decltype(amplitude_spectral_density(4))>); } + +namespace { + +struct kilogram_per_second : unit {}; +struct dim_mass_rate : derived_dimension, units::exp> {}; +struct kilogram_per_hour : deduced_unit {}; +constexpr auto a = 1kg / 1h; +static_assert(std::is_same_v); + +}