From 6458cd343c2e85d332b46a20d456706f61f5f97a Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Fri, 26 May 2023 17:05:33 +0200 Subject: [PATCH] ci: pre-commit related changes --- test/unit_test/static/CMakeLists.txt | 2 +- .../static/custom_rep_test_min_expl.cpp | 66 +++--- test/unit_test/static/fps_test.cpp | 3 +- test/unit_test/static/magnitude_test.cpp | 16 +- test/unit_test/static/quantity_kind_test.cpp | 218 +++++++++--------- .../static/quantity_point_kind_test.cpp | 190 ++++++++------- test/unit_test/static/quantity_point_test.cpp | 51 ++-- 7 files changed, 266 insertions(+), 280 deletions(-) diff --git a/test/unit_test/static/CMakeLists.txt b/test/unit_test/static/CMakeLists.txt index 434da241..78ab6732 100644 --- a/test/unit_test/static/CMakeLists.txt +++ b/test/unit_test/static/CMakeLists.txt @@ -30,7 +30,7 @@ add_library(unit_tests_static_truncating quantity_test.cpp) target_link_libraries(unit_tests_static_truncating PRIVATE mp-units::mp-units) target_compile_options( -unit_tests_static_truncating PRIVATE $,/wd4242 /wd4244,-Wno-conversion> + unit_tests_static_truncating PRIVATE $,/wd4242 /wd4244,-Wno-conversion> ) add_library( unit_tests_static diff --git a/test/unit_test/static/custom_rep_test_min_expl.cpp b/test/unit_test/static/custom_rep_test_min_expl.cpp index 37a511f2..689c9666 100644 --- a/test/unit_test/static/custom_rep_test_min_expl.cpp +++ b/test/unit_test/static/custom_rep_test_min_expl.cpp @@ -51,7 +51,7 @@ public: // construction from std::int64_t constexpr explicit min_expl(std::intmax_t v) noexcept requires(Mode != 2) - : value_(v) + : value_(v) { } @@ -187,42 +187,42 @@ static_assert(!Representation>); // quantity's operators should mirror the representation type capabilities template concept invalid_member_operations = requires(length lhs) { - requires !requires { +lhs; }; - requires !requires { -lhs; }; - requires !requires { ++lhs; }; - requires !requires { lhs++; }; - requires !requires { --lhs; }; - requires !requires { lhs--; }; + requires !requires { +lhs; }; + requires !requires { -lhs; }; + requires !requires { ++lhs; }; + requires !requires { lhs++; }; + requires !requires { --lhs; }; + requires !requires { lhs--; }; - requires !requires(length rhs) { lhs += rhs; }; - requires !requires(length rhs) { lhs -= rhs; }; - requires !requires(Rep rhs) { lhs *= rhs; }; - requires !requires(Rep rhs) { lhs /= rhs; }; - requires !requires(Rep rhs) { lhs %= rhs; }; - requires !requires(length rhs) { lhs %= rhs; }; + requires !requires(length rhs) { lhs += rhs; }; + requires !requires(length rhs) { lhs -= rhs; }; + requires !requires(Rep rhs) { lhs *= rhs; }; + requires !requires(Rep rhs) { lhs /= rhs; }; + requires !requires(Rep rhs) { lhs %= rhs; }; + requires !requires(length rhs) { lhs %= rhs; }; - requires !requires(length rhs) { lhs + rhs; }; - requires !requires(length rhs) { lhs - rhs; }; - requires !requires(Rep rhs) { lhs % rhs; }; - requires !requires(length rhs) { lhs % rhs; }; - requires !requires(length rhs) { lhs < rhs; }; - requires !requires(length rhs) { lhs > rhs; }; - requires !requires(length rhs) { lhs <= rhs; }; - requires !requires(length rhs) { lhs >= rhs; }; + requires !requires(length rhs) { lhs + rhs; }; + requires !requires(length rhs) { lhs - rhs; }; + requires !requires(Rep rhs) { lhs % rhs; }; + requires !requires(length rhs) { lhs % rhs; }; + requires !requires(length rhs) { lhs < rhs; }; + requires !requires(length rhs) { lhs > rhs; }; + requires !requires(length rhs) { lhs <= rhs; }; + requires !requires(length rhs) { lhs >= rhs; }; - requires !requires(length rhs) { lhs + rhs; }; - requires !requires(length rhs) { lhs - rhs; }; - requires !requires(int rhs) { lhs % rhs; }; - requires !requires(length rhs) { lhs % rhs; }; - requires !requires(length rhs) { lhs == rhs; }; - requires !requires(length rhs) { lhs != rhs; }; - requires !requires(length rhs) { lhs < rhs; }; - requires !requires(length rhs) { lhs > rhs; }; - requires !requires(length rhs) { lhs <= rhs; }; - requires !requires(length rhs) { lhs >= rhs; }; + requires !requires(length rhs) { lhs + rhs; }; + requires !requires(length rhs) { lhs - rhs; }; + requires !requires(int rhs) { lhs % rhs; }; + requires !requires(length rhs) { lhs % rhs; }; + requires !requires(length rhs) { lhs == rhs; }; + requires !requires(length rhs) { lhs != rhs; }; + requires !requires(length rhs) { lhs < rhs; }; + requires !requires(length rhs) { lhs > rhs; }; + requires !requires(length rhs) { lhs <= rhs; }; + requires !requires(length rhs) { lhs >= rhs; }; - requires !requires(std::ostream os) { os << lhs; }; - }; + requires !requires(std::ostream os) { os << lhs; }; +}; static_assert(invalid_member_operations>); // equality diff --git a/test/unit_test/static/fps_test.cpp b/test/unit_test/static/fps_test.cpp index 774971e7..b0ca5d71 100644 --- a/test/unit_test/static/fps_test.cpp +++ b/test/unit_test/static/fps_test.cpp @@ -100,7 +100,6 @@ static_assert(1_q_ft_pdl_per_s * 10_q_s == 10_q_ft_pdl); static_assert(10_q_ft_pdl / 1_q_ft_pdl_per_s == 10_q_s); static_assert(detail::unit_text() == basic_symbol_text("ft⋅pdl/s", "ft pdl/s")); -static_assert(detail::unit_text() == - basic_symbol_text("ft⋅lbf/s", "ft lbf/s")); +static_assert(detail::unit_text() == basic_symbol_text("ft⋅lbf/s", "ft lbf/s")); } // namespace diff --git a/test/unit_test/static/magnitude_test.cpp b/test/unit_test/static/magnitude_test.cpp index 946a1743..eaf2cc17 100644 --- a/test/unit_test/static/magnitude_test.cpp +++ b/test/unit_test/static/magnitude_test.cpp @@ -85,14 +85,14 @@ static_assert(is_named_magnitude); // power_v template typename P> concept invalid_power_v = requires { - requires !requires { typename P<123, 0>; }; - requires !requires { typename P<123, 0, 2>; }; - requires !requires { typename P<123, 1, 0>; }; - requires !requires { typename P<123, 0, 0>; }; - requires !requires { typename P<123, 1>; }; - requires !requires { typename P<123, 1, 1>; }; - requires !requires { typename P<123, 5, 5>; }; - }; + requires !requires { typename P<123, 0>; }; + requires !requires { typename P<123, 0, 2>; }; + requires !requires { typename P<123, 1, 0>; }; + requires !requires { typename P<123, 0, 0>; }; + requires !requires { typename P<123, 1>; }; + requires !requires { typename P<123, 1, 1>; }; + requires !requires { typename P<123, 5, 5>; }; +}; static_assert(invalid_power_v); // get_base diff --git a/test/unit_test/static/quantity_kind_test.cpp b/test/unit_test/static/quantity_kind_test.cpp index 1bc7ffc7..d8f427de 100644 --- a/test/unit_test/static/quantity_kind_test.cpp +++ b/test/unit_test/static/quantity_kind_test.cpp @@ -110,17 +110,16 @@ static_assert(sizeof(width) == sizeof(double)); static_assert(sizeof(height) == sizeof(short)); template -concept invalid_types = - requires { - requires !requires { typename quantity_kind; }; // unit of a different dimension - requires !requires { typename quantity_kind>; }; // quantity used as Rep - requires !requires { // quantity point used as Rep - typename quantity_kind, metre>>; - }; - requires !requires { typename quantity_kind>; }; // quantity kind used as Rep - requires !requires { typename quantity_kind; }; // reordered arguments - requires !requires { typename quantity_kind; }; // reordered arguments +concept invalid_types = requires { + requires !requires { typename quantity_kind; }; // unit of a different dimension + requires !requires { typename quantity_kind>; }; // quantity used as Rep + requires !requires { // quantity point used as Rep + typename quantity_kind, metre>>; }; + requires !requires { typename quantity_kind>; }; // quantity kind used as Rep + requires !requires { typename quantity_kind; }; // reordered arguments + requires !requires { typename quantity_kind; }; // reordered arguments +}; static_assert(invalid_types); static_assert(std::is_trivially_default_constructible_v>); @@ -437,45 +436,44 @@ static_assert(same((-width(short{1} * m)).common(), int{-1} * m)); template concept invalid_compound_assignments_ = requires(quantity_kind w, Qx q) { - requires !requires { w += q; }; - requires !requires { w -= q; }; - requires !requires { w *= q; }; - requires !requires { w /= q; }; - requires !requires { w %= q; }; - }; + requires !requires { w += q; }; + requires !requires { w -= q; }; + requires !requires { w *= q; }; + requires !requires { w /= q; }; + requires !requires { w %= q; }; +}; template -concept invalid_compound_assignments = - requires(quantity_kind w, height h) { - requires !requires { w += 1; }; - requires !requires { w -= 1; }; - requires !requires { w *= 1 * (km / m); }; - requires !requires { w /= 1 * (km / m); }; - requires !requires { w %= 1 * (km / m); }; - requires !requires { w += m; }; - requires !requires { w -= m; }; - requires !requires { w *= m; }; - requires !requires { w /= m; }; - requires !requires { w %= m; }; - requires !requires { - w *= quantity_kind, scaled_unit(), one>, int>{1}; - }; - requires !requires { - w /= quantity_kind, scaled_unit(), one>, int>{1}; - }; - requires !requires { - w %= quantity_kind, scaled_unit(), one>, int>{1}; - }; - requires !requires { w %= 1.0; }; - requires !requires { w %= quantity(1.0); }; - requires !requires { w %= 1.0 * (w / w); }; - requires !requires { w %= 1.0 * w; }; - requires !requires { w %= h / h; }; - requires invalid_compound_assignments_>; - requires invalid_compound_assignments_>; - requires invalid_compound_assignments_>; - requires invalid_compound_assignments_, metre, int>>; - requires invalid_compound_assignments_; +concept invalid_compound_assignments = requires(quantity_kind w, height h) { + requires !requires { w += 1; }; + requires !requires { w -= 1; }; + requires !requires { w *= 1 * (km / m); }; + requires !requires { w /= 1 * (km / m); }; + requires !requires { w %= 1 * (km / m); }; + requires !requires { w += m; }; + requires !requires { w -= m; }; + requires !requires { w *= m; }; + requires !requires { w /= m; }; + requires !requires { w %= m; }; + requires !requires { + w *= quantity_kind, scaled_unit(), one>, int>{1}; }; + requires !requires { + w /= quantity_kind, scaled_unit(), one>, int>{1}; + }; + requires !requires { + w %= quantity_kind, scaled_unit(), one>, int>{1}; + }; + requires !requires { w %= 1.0; }; + requires !requires { w %= quantity(1.0); }; + requires !requires { w %= 1.0 * (w / w); }; + requires !requires { w %= 1.0 * w; }; + requires !requires { w %= h / h; }; + requires invalid_compound_assignments_>; + requires invalid_compound_assignments_>; + requires invalid_compound_assignments_>; + requires invalid_compound_assignments_, metre, int>>; + requires invalid_compound_assignments_; +}; static_assert(invalid_compound_assignments); static_assert(invalid_compound_assignments_); @@ -728,24 +726,24 @@ static_assert(std::equality_comparable_with, width, width>); template concept invalid_equality = requires(quantity_kind w) { - requires !requires { w == 1; }; - requires !requires { w != 1.0; }; - requires !requires { w == 1 * m; }; - requires !requires { w != 1.0 * cgs_cm; }; - requires !requires { w == 1 * km; }; - requires !requires { w != m; }; - requires !requires { w == km; }; - requires !requires { w != quantity(1); }; - requires !requires { w == dimensionless(1.0); }; - requires !requires { w != height(1 * m); }; - requires !requires { w == height(1.0 * km); }; - requires !requires { w != horizontal_area(1 * (m * m)); }; - requires !requires { w == rate_of_climb(1.0 * (km / h)); }; - requires !requires { w != quantity_point(1 * m); }; - requires !requires { w == quantity_point(1.0 * mm); }; - requires !requires { w != quantity_point(quantity(1)); }; - requires !requires { w == quantity_point(dimensionless(1.0)); }; - }; + requires !requires { w == 1; }; + requires !requires { w != 1.0; }; + requires !requires { w == 1 * m; }; + requires !requires { w != 1.0 * cgs_cm; }; + requires !requires { w == 1 * km; }; + requires !requires { w != m; }; + requires !requires { w == km; }; + requires !requires { w != quantity(1); }; + requires !requires { w == dimensionless(1.0); }; + requires !requires { w != height(1 * m); }; + requires !requires { w == height(1.0 * km); }; + requires !requires { w != horizontal_area(1 * (m * m)); }; + requires !requires { w == rate_of_climb(1.0 * (km / h)); }; + requires !requires { w != quantity_point(1 * m); }; + requires !requires { w == quantity_point(1.0 * mm); }; + requires !requires { w != quantity_point(quantity(1)); }; + requires !requires { w == quantity_point(dimensionless(1.0)); }; +}; static_assert(invalid_equality); static_assert(width(1 * m) < width(2 * m)); @@ -760,22 +758,22 @@ static_assert(std::three_way_comparable_with, width< static_assert(std::three_way_comparable_with, width>); template concept invalid_relational = requires(quantity_kind w) { - requires !requires { w < 1; }; - requires !requires { w <= 1.0; }; - requires !requires { w >= 1 * m; }; - requires !requires { w > 1.0 * cgs_cm; }; - requires !requires { w <=> 1 * km; }; - requires !requires { w < quantity(1); }; - requires !requires { w <= dimensionless(1.0); }; - requires !requires { w >= height(1 * m); }; - requires !requires { w > height(1.0 * km); }; - requires !requires { w <=> horizontal_area(1 * (m * m)); }; - requires !requires { w < rate_of_climb(1.0 * (km / h)); }; - requires !requires { w <= quantity_point(1 * m); }; - requires !requires { w >= quantity_point(1.0 * mm); }; - requires !requires { w > quantity_point(quantity(1)); }; - requires !requires { w <=> quantity_point(dimensionless(1.0)); }; - }; + requires !requires { w < 1; }; + requires !requires { w <= 1.0; }; + requires !requires { w >= 1 * m; }; + requires !requires { w > 1.0 * cgs_cm; }; + requires !requires { w <=> 1 * km; }; + requires !requires { w < quantity(1); }; + requires !requires { w <= dimensionless(1.0); }; + requires !requires { w >= height(1 * m); }; + requires !requires { w > height(1.0 * km); }; + requires !requires { w <=> horizontal_area(1 * (m * m)); }; + requires !requires { w < rate_of_climb(1.0 * (km / h)); }; + requires !requires { w <= quantity_point(1 * m); }; + requires !requires { w >= quantity_point(1.0 * mm); }; + requires !requires { w > quantity_point(quantity(1)); }; + requires !requires { w <=> quantity_point(dimensionless(1.0)); }; +}; static_assert(invalid_relational); @@ -814,37 +812,35 @@ static_assert(same(quantity_kind_cast>(width>(width(1 * cgs_cm)), width(1 * cgs_cm))); // clang-format on template -concept invalid_cast = - requires { - requires !requires { quantity_kind_cast>(quantity_kind(1 * m)); }; - requires !requires { - quantity_kind_cast>(quantity_kind(1 * m)); - }; - requires !requires { - quantity_kind_cast>(quantity_kind(1 * m)); - }; - requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; - requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; - requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; - requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; - requires !requires { - quantity_kind_cast(quantity_kind(1 * m)); - }; - requires !requires { - quantity_kind_cast(quantity_kind(1 * m)); - }; - requires !requires { quantity_kind_cast>(quantity_kind(1 * m)); }; - requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; - requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; - requires !requires { - quantity_kind_cast, metre, int>>( - quantity_kind(1 * m)); - }; - requires !requires { - quantity_kind_cast, one, int>>( - quantity_kind(1 * m)); - }; +concept invalid_cast = requires { + requires !requires { quantity_kind_cast>(quantity_kind(1 * m)); }; + requires !requires { + quantity_kind_cast>(quantity_kind(1 * m)); }; + requires !requires { + quantity_kind_cast>(quantity_kind(1 * m)); + }; + requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; + requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; + requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; + requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; + requires !requires { + quantity_kind_cast(quantity_kind(1 * m)); + }; + requires !requires { + quantity_kind_cast(quantity_kind(1 * m)); + }; + requires !requires { quantity_kind_cast>(quantity_kind(1 * m)); }; + requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; + requires !requires { quantity_kind_cast(quantity_kind(1 * m)); }; + requires !requires { + quantity_kind_cast, metre, int>>(quantity_kind(1 * m)); + }; + requires !requires { + quantity_kind_cast, one, int>>( + quantity_kind(1 * m)); + }; +}; static_assert(invalid_cast); diff --git a/test/unit_test/static/quantity_point_kind_test.cpp b/test/unit_test/static/quantity_point_kind_test.cpp index 9a234a29..07de439b 100644 --- a/test/unit_test/static/quantity_point_kind_test.cpp +++ b/test/unit_test/static/quantity_point_kind_test.cpp @@ -150,21 +150,20 @@ static_assert(sizeof(abscissa) == sizeof(double)); static_assert(sizeof(ordinate) == sizeof(short)); template -concept invalid_types = - requires { - requires !requires { typename quantity_point_kind; }; // width_kind is not a point kind - requires !requires { typename quantity_point_kind; }; // unit of a different dimension - requires !requires { typename quantity_point_kind>; }; // quantity used as Rep - requires !requires { - typename quantity_point_kind, metre>>; - }; // quantity point used as Rep - requires !requires { typename quantity_point_kind>; }; // quantity kind used as Rep - requires !requires { - typename quantity_point_kind>; - }; // quantity point kind used as Rep - requires !requires { typename quantity_point_kind; }; // reordered arguments - requires !requires { typename quantity_point_kind; }; // reordered arguments - }; +concept invalid_types = requires { + requires !requires { typename quantity_point_kind; }; // width_kind is not a point kind + requires !requires { typename quantity_point_kind; }; // unit of a different dimension + requires !requires { typename quantity_point_kind>; }; // quantity used as Rep + requires !requires { + typename quantity_point_kind, metre>>; + }; // quantity point used as Rep + requires !requires { typename quantity_point_kind>; }; // quantity kind used as Rep + requires !requires { + typename quantity_point_kind>; + }; // quantity point kind used as Rep + requires !requires { typename quantity_point_kind; }; // reordered arguments + requires !requires { typename quantity_point_kind; }; // reordered arguments +}; static_assert(invalid_types); static_assert(std::is_trivially_default_constructible_v>); @@ -474,20 +473,19 @@ static_assert([]() { template concept invalid_compound_assignments_ = requires(quantity_point_kind x, Qx q) { - requires !requires { x += q; }; - requires !requires { x -= q; }; - }; + requires !requires { x += q; }; + requires !requires { x -= q; }; +}; template -concept invalid_compound_assignments = - requires(quantity_point_kind x) { - requires !requires { x += 1; }; - requires !requires { x -= 1; }; - requires invalid_compound_assignments_>; - requires invalid_compound_assignments_>; - requires invalid_compound_assignments_>; - requires invalid_compound_assignments_, metre, int>>; - requires invalid_compound_assignments_; - }; +concept invalid_compound_assignments = requires(quantity_point_kind x) { + requires !requires { x += 1; }; + requires !requires { x -= 1; }; + requires invalid_compound_assignments_>; + requires invalid_compound_assignments_>; + requires invalid_compound_assignments_>; + requires invalid_compound_assignments_, metre, int>>; + requires invalid_compound_assignments_; +}; static_assert(invalid_compound_assignments); static_assert(invalid_compound_assignments_); #if __cpp_lib_chrono >= 201907L @@ -564,26 +562,26 @@ static_assert(std::equality_comparable_with, abscissa concept invalid_equality = requires(quantity_point_kind x, Int i) { - requires !requires { x == 1; }; - requires !requires { x != 1.0; }; - requires !requires { x == 1 * m; }; - requires !requires { x != 1.0 * cgs_cm; }; - requires !requires { x == 1 * km; }; - requires !requires { x != quantity(1); }; - requires !requires { x == dimensionless(1.0); }; - requires !requires { x != width(1 * m); }; - requires !requires { x == width(1.0 * km); }; - requires !requires { x != height(1 * m); }; - requires !requires { x == height(1.0 * km); }; - requires !requires { x == rate_of_climb(1.0 * (km / h)); }; - requires !requires { x != quantity_point(1 * m); }; - requires !requires { x == quantity_point(1.0 * mm); }; - requires !requires { x != quantity_point(quantity(1)); }; - requires !requires { x == quantity_point(dimensionless(1.0)); }; - requires !requires { x != quantity_point_kind(cgs_width(1 * m)); }; - requires !requires { x == ordinate(1 * m); }; - requires !requires { screen_si_width{} != screen_si_cgs_width{}; }; - }; + requires !requires { x == 1; }; + requires !requires { x != 1.0; }; + requires !requires { x == 1 * m; }; + requires !requires { x != 1.0 * cgs_cm; }; + requires !requires { x == 1 * km; }; + requires !requires { x != quantity(1); }; + requires !requires { x == dimensionless(1.0); }; + requires !requires { x != width(1 * m); }; + requires !requires { x == width(1.0 * km); }; + requires !requires { x != height(1 * m); }; + requires !requires { x == height(1.0 * km); }; + requires !requires { x == rate_of_climb(1.0 * (km / h)); }; + requires !requires { x != quantity_point(1 * m); }; + requires !requires { x == quantity_point(1.0 * mm); }; + requires !requires { x != quantity_point(quantity(1)); }; + requires !requires { x == quantity_point(dimensionless(1.0)); }; + requires !requires { x != quantity_point_kind(cgs_width(1 * m)); }; + requires !requires { x == ordinate(1 * m); }; + requires !requires { screen_si_width{} != screen_si_cgs_width{}; }; +}; static_assert(invalid_equality); // clang-format off @@ -599,28 +597,27 @@ static_assert(std::three_way_comparable_with, abs static_assert(std::three_way_comparable_with, abscissa>); // clang-format on template -concept invalid_relational = - requires(quantity_point_kind x, Int i) { - requires !requires { x < 1; }; - requires !requires { x <= 1.0; }; - requires !requires { x >= 1 * m; }; - requires !requires { x > 1.0 * cgs_cm; }; - requires !requires { x <=> 1 * km; }; - requires !requires { x < quantity(1); }; - requires !requires { x <= dimensionless(1.0); }; - requires !requires { x >= width(1 * m); }; - requires !requires { x > width(1.0 * km); }; - requires !requires { x <=> height(1 * m); }; - requires !requires { x < height(1.0 * km); }; - requires !requires { x <= rate_of_climb(1.0 * (km / h)); }; - requires !requires { x >= quantity_point(1 * m); }; - requires !requires { x > quantity_point(1.0 * mm); }; - requires !requires { x <=> quantity_point(quantity(1)); }; - requires !requires { x < quantity_point(dimensionless(1.0)); }; - requires !requires { x <= quantity_point_kind(cgs_width(1 * m)); }; - requires !requires { x >= ordinate(1 * m); }; - requires !requires { screen_si_width{} > screen_si_cgs_width{}; }; - }; +concept invalid_relational = requires(quantity_point_kind x, Int i) { + requires !requires { x < 1; }; + requires !requires { x <= 1.0; }; + requires !requires { x >= 1 * m; }; + requires !requires { x > 1.0 * cgs_cm; }; + requires !requires { x <=> 1 * km; }; + requires !requires { x < quantity(1); }; + requires !requires { x <= dimensionless(1.0); }; + requires !requires { x >= width(1 * m); }; + requires !requires { x > width(1.0 * km); }; + requires !requires { x <=> height(1 * m); }; + requires !requires { x < height(1.0 * km); }; + requires !requires { x <= rate_of_climb(1.0 * (km / h)); }; + requires !requires { x >= quantity_point(1 * m); }; + requires !requires { x > quantity_point(1.0 * mm); }; + requires !requires { x <=> quantity_point(quantity(1)); }; + requires !requires { x < quantity_point(dimensionless(1.0)); }; + requires !requires { x <= quantity_point_kind(cgs_width(1 * m)); }; + requires !requires { x >= ordinate(1 * m); }; + requires !requires { screen_si_width{} > screen_si_cgs_width{}; }; +}; static_assert(invalid_relational); @@ -672,35 +669,32 @@ static_assert(comp(quantity_point_kind_cast>(abscissa>(screen_si_width(1 * m)), screen_si_cgs_width(1 * m))); // clang-format on template -concept invalid_cast = - requires(Int i) { - requires !requires { quantity_point_kind_cast>(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast>(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast>(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; - requires !requires { - quantity_point_kind_cast, metre, Int>>( - abscissa(i * m)); - }; - requires !requires { - quantity_point_kind_cast, one, Int>>( - abscissa(i * m)); - }; - requires !requires { - quantity_point_kind_cast, metre, Int>>( - screen_si_width(i * m)); - }; +concept invalid_cast = requires(Int i) { + requires !requires { quantity_point_kind_cast>(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast>(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast>(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { quantity_point_kind_cast(abscissa(i * m)); }; + requires !requires { + quantity_point_kind_cast, metre, Int>>(abscissa(i * m)); }; + requires !requires { + quantity_point_kind_cast, one, Int>>(abscissa(i * m)); + }; + requires !requires { + quantity_point_kind_cast, metre, Int>>( + screen_si_width(i * m)); + }; +}; static_assert(invalid_cast); diff --git a/test/unit_test/static/quantity_point_test.cpp b/test/unit_test/static/quantity_point_test.cpp index 8eb42c4c..cd57a32d 100644 --- a/test/unit_test/static/quantity_point_test.cpp +++ b/test/unit_test/static/quantity_point_test.cpp @@ -46,22 +46,20 @@ struct sea_level_origin : point_origin {}; // class invariants template -concept invalid_types = - requires { - // unit of a different dimension: - requires !requires { typename quantity_point, second, int>; }; - // quantity used as Rep: - requires !requires { typename quantity_point, metre, quantity>; }; - // quantity point used as Rep: - requires !requires { - typename quantity_point, metre, - quantity_point, metre, int>>; - }; - // reordered arguments: - requires !requires { typename quantity_point, double>; }; - // dimension used as origin: - requires !requires { typename quantity_point; }; +concept invalid_types = requires { + // unit of a different dimension: + requires !requires { typename quantity_point, second, int>; }; + // quantity used as Rep: + requires !requires { typename quantity_point, metre, quantity>; }; + // quantity point used as Rep: + requires !requires { + typename quantity_point, metre, quantity_point, metre, int>>; }; + // reordered arguments: + requires !requires { typename quantity_point, double>; }; + // dimension used as origin: + requires !requires { typename quantity_point; }; +}; static_assert(invalid_types); @@ -237,9 +235,9 @@ static_assert(quantity_point(1000_q_m) <= quantity_point(1_q_km)); template concept invalid_comparisons = requires(quantity_point, metre, Int> lhs, quantity_point rhs) { - requires !requires { lhs == rhs; }; - requires !requires { lhs < rhs; }; - }; + requires !requires { lhs == rhs; }; + requires !requires { lhs < rhs; }; +}; static_assert(invalid_comparisons); // alias units @@ -295,16 +293,15 @@ static_assert( quantity_point_cast(quantity_point(2000.0_q_m / 3600.0_q_s)).relative().number() == 2); template -concept invalid_cast = - requires(Int i) { - requires !requires { - quantity_point_cast, second, Int>>(quantity_point(i * m)); - }; - requires !requires { - quantity_point_cast, metre, Int>>( - quantity_point(i * m)); - }; +concept invalid_cast = requires(Int i) { + requires !requires { + quantity_point_cast, second, Int>>(quantity_point(i * m)); }; + requires !requires { + quantity_point_cast, metre, Int>>( + quantity_point(i * m)); + }; +}; static_assert(invalid_cast); // time