mirror of
https://github.com/mpusz/mp-units.git
synced 2025-07-31 19:04:27 +02:00
test: std::complex
-based quantities tests added
This commit is contained in:
@@ -37,9 +37,15 @@ import std;
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
#if MP_UNITS_HOSTED
|
#if MP_UNITS_HOSTED
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
#include <complex>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MP_UNITS_HOSTED
|
||||||
|
template<typename T>
|
||||||
|
constexpr bool mp_units::is_scalar<std::complex<T>> = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
constexpr bool mp_units::is_vector<int> = true;
|
constexpr bool mp_units::is_vector<int> = true;
|
||||||
|
|
||||||
@@ -267,6 +273,12 @@ static_assert(quantity<isq::length[m], int>(2000 * m).force_in(km).numerical_val
|
|||||||
static_assert((15. * m).in(nm).numerical_value_in(m) == 15.);
|
static_assert((15. * m).in(nm).numerical_value_in(m) == 15.);
|
||||||
static_assert((15'000. * nm).in(m).numerical_value_in(nm) == 15'000.);
|
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<template<auto, typename> typename Q>
|
template<template<auto, typename> typename Q>
|
||||||
concept invalid_unit_conversion = requires {
|
concept invalid_unit_conversion = requires {
|
||||||
requires !requires { Q<isq::length[m], int>(2000 * m).in(km); }; // truncating conversion
|
requires !requires { Q<isq::length[m], int>(2000 * m).in(km); }; // truncating conversion
|
||||||
|
Reference in New Issue
Block a user