diff --git a/test/unit_test/static/quantity_test.cpp b/test/unit_test/static/quantity_test.cpp index 7080c65a..fa26699f 100644 --- a/test/unit_test/static/quantity_test.cpp +++ b/test/unit_test/static/quantity_test.cpp @@ -265,6 +265,10 @@ static_assert(std::equality_comparable); static_assert(std::equality_comparable_with); static_assert(0q_m == 0q_ft_us); static_assert(std::equality_comparable_with); +static_assert(std::equality_comparable_with, int>); +static_assert(std::equality_comparable_with, double>); +static_assert(std::equality_comparable_with, int>); +static_assert(!std::equality_comparable_with, double>); // quantity_cast @@ -294,21 +298,22 @@ static_assert(1.23 + dimensionless(1.23) == 2.46); static_assert(dimensionless(1) + 1 == 2); static_assert(dimensionless(1) + 1 == 2); -template -concept invalid_dimensionless_operation = requires() +template +concept invalid_dimensionless_operations = requires { - !requires(dimensionless d) { d + 1.23; }; - !requires(dimensionless d) { 1.23 + d; }; - !requires(dimensionless, Rep> d) { 1 + d; }; - !requires(dimensionless, Rep> d) { d + 1; }; + !requires(dimensionless d) { d + 1.23; }; + !requires(dimensionless d) { 1.23 + d; }; + !requires(dimensionless, Int> d) { 1 + d; }; + !requires(dimensionless, Int> d) { d + 1; }; }; -static_assert(invalid_dimensionless_operation); +static_assert(invalid_dimensionless_operations); static_assert(std::is_same_v>); static_assert(quantity_cast(50.q_m / 100.q_m).count() == 50); static_assert(50.q_m / 100.q_m == dimensionless(50)); +static_assert(dimensionless(dimensionless(50)).count() == 0.5); // time