From 7ce8d695b180fc76bceb9a04b9e3b4c08d8b2e79 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 17 Sep 2024 12:48:13 -0600 Subject: [PATCH] test: `std::complex`-based quantities tests added --- test/static/quantity_test.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/static/quantity_test.cpp b/test/static/quantity_test.cpp index 6df1602a..23853b92 100644 --- a/test/static/quantity_test.cpp +++ b/test/static/quantity_test.cpp @@ -37,9 +37,15 @@ import std; #include #if MP_UNITS_HOSTED #include +#include #endif #endif +#if MP_UNITS_HOSTED +template +constexpr bool mp_units::is_scalar> = true; +#endif + template<> constexpr bool mp_units::is_vector = true; @@ -267,6 +273,12 @@ static_assert(quantity(2000 * m).force_in(km).numerical_val static_assert((15. * m).in(nm).numerical_value_in(m) == 15.); static_assert((15'000. * nm).in(m).numerical_value_in(nm) == 15'000.); +#if MP_UNITS_HOSTED +using namespace std::complex_literals; +static_assert(((2. + 1i) * V).in(mV).numerical_value_in(mV) == 2000. + 1000i); +static_assert(((2. + 1i) * V).in(mV).numerical_value_in(V) == 2. + 1i); +#endif + template typename Q> concept invalid_unit_conversion = requires { requires !requires { Q(2000 * m).in(km); }; // truncating conversion