From 0f392262f8c6763e5b28b6284148f0a6ca8e6f5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johel=20Ernesto=20Guerrero=20Pe=C3=B1a?= Date: Sun, 27 Jun 2021 18:35:21 -0400 Subject: [PATCH] fix: add quantity_point::origin, like std::chrono::time_point::clock --- .clang-format | 4 +- docs/_static/img/concepts.png | Bin 169347 -> 137511 bytes docs/framework/basic_concepts.rst | 10 +- docs/framework/dimensions.rst | 14 +- docs/framework/quantity_points.rst | 21 +- docs/use_cases/interoperability.rst | 5 +- .../glide_computer/include/glide_computer.h | 3 +- src/core/include/units/bits/basic_concepts.h | 57 +++++- src/core/include/units/bits/common_quantity.h | 5 +- src/core/include/units/bits/equivalent.h | 31 ++- src/core/include/units/bits/quantity_of.h | 13 +- src/core/include/units/chrono.h | 15 +- src/core/include/units/customization_points.h | 2 +- src/core/include/units/kind.h | 18 +- src/core/include/units/point_origin.h | 34 ++++ src/core/include/units/quantity_cast.h | 23 ++- src/core/include/units/quantity_point.h | 52 +++-- src/core/include/units/quantity_point_kind.h | 18 +- test/unit_test/static/CMakeLists.txt | 1 + test/unit_test/static/chrono_test.cpp | 41 ++-- test/unit_test/static/concepts_test.cpp | 11 +- test/unit_test/static/kind_test.cpp | 3 +- test/unit_test/static/point_origin_test.cpp | 73 +++++++ test/unit_test/static/quantity_kind_test.cpp | 30 +-- .../static/quantity_point_kind_test.cpp | 91 +++++++-- test/unit_test/static/quantity_point_test.cpp | 179 +++++++++++------- 26 files changed, 544 insertions(+), 210 deletions(-) create mode 100644 src/core/include/units/point_origin.h create mode 100644 test/unit_test/static/point_origin_test.cpp diff --git a/.clang-format b/.clang-format index 7abab4679..756b6fdc9 100644 --- a/.clang-format +++ b/.clang-format @@ -63,7 +63,7 @@ CommentPragmas: '^ NOLINT' # CompactNamespaces: false # ConstructorInitializerAllOnOneLineOrOnePerLine: true # ConstructorInitializerIndentWidth: 4 -# ContinuationIndentWidth: 4 +ContinuationIndentWidth: 2 # Cpp11BracedListStyle: true DeriveLineEnding: false DerivePointerAlignment: false @@ -109,7 +109,7 @@ IndentRequires: true # KeepEmptyLinesAtTheStartOfBlocks: false # MacroBlockBegin: '' # MacroBlockEnd: '' -# MaxEmptyLinesToKeep: 1 +MaxEmptyLinesToKeep: 2 # NamespaceIndentation: None # ObjCBinPackProtocolList: Never # ObjCBlockIndentWidth: 2 diff --git a/docs/_static/img/concepts.png b/docs/_static/img/concepts.png index 376773106cfa464856bbc22f9f33227dc19493cb..e8083e027574b9a73406a6636ad7241f23292e04 100644 GIT binary patch literal 137511 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ð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

17V`26OS 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 z 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 literal 169347 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 z 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 diff --git a/docs/framework/basic_concepts.rst b/docs/framework/basic_concepts.rst index ddff34612..bb3f9708a 100644 --- a/docs/framework/basic_concepts.rst +++ b/docs/framework/basic_concepts.rst @@ -23,7 +23,7 @@ The most important concepts in the library are `Unit`, `Dimension`, ] [QuantityPoint| - [quantity_point] + [quantity_point] ] [QuantityKind| @@ -39,6 +39,10 @@ The most important concepts in the library are `Unit`, `Dimension`, [Unit]<-[Quantity] [Quantity]<-[QuantityPoint] + [PointOrigin]<-[QuantityPoint] + [Dimension]<-[PointOrigin] + [PointOrigin]<-[PointKind] + [Kind]<-[QuantityKind] [Dimension]<-[Kind] [Quantity]<-[QuantityKind] @@ -60,7 +64,7 @@ derived dimensions. Examples: ``si::dim_time``, ``si::dim_length``, ``si::dim_sp specific representation. Examples: ``quantity``, ``si::length``, ``si::speed``. -`QuantityPoint` is an absolute `Quantity` with respect to some origin. +`QuantityPoint` is an absolute `Quantity` with respect to an origin. Examples: timestamp (as opposed to duration), absolute temperature (as opposed to temperature difference). @@ -68,6 +72,6 @@ Examples: timestamp (as opposed to duration), absolute temperature distance (``horizonal_kind``) and height (``vertical_kind``) are different kinds of a length quantity. -`QuantityPointKind` is an absolute `QuantityKind` with respect to some origin. +`QuantityPointKind` is an absolute `QuantityKind` with respect to an origin. Examples: altitude is a quantity point of ``vertical_kind`` (as opposed to height). diff --git a/docs/framework/dimensions.rst b/docs/framework/dimensions.rst index 55cec0541..4a8ab10a8 100644 --- a/docs/framework/dimensions.rst +++ b/docs/framework/dimensions.rst @@ -106,8 +106,9 @@ Quantity Points +++++++++++++++ Quantity points have a more restricted set of operations. -Quantity can be added to or subtracted from a quantity point. -The result will always be a quantity point of the same dimension: +Quantity can be added to or subtracted +from a quantity point of the same origin. +The result will always be a quantity point of the same origin: .. code-block:: :emphasize-lines: 3-5 @@ -132,9 +133,10 @@ The result is a relative quantity of the same dimension: It is not allowed to: - - add quantity points - - subtract a quantity point from a quantity: - - multiply nor divide quantity points with anything else. + - add quantity points, + - subtract a quantity point from a quantity, + - multiply nor divide quantity points with anything else, and + - mix quantity points with different origins: .. code-block:: :emphasize-lines: 3-5 @@ -144,6 +146,8 @@ The result is a relative quantity of the same dimension: auto res1 = quantity_point{dist1} + quantity_point{dist2}; // ERROR auto res2 = dist1 - quantity_point{dist2}; // ERROR auto res3 = quantity_point{dist1} / (2 * s); // ERROR + auto res4 = quantity_point{std::chrono::utc_second{1s}} + + quantity_point{std::chrono::sys_second{1s}}; // ERROR Quantity Point Kinds ++++++++++++++++++++ diff --git a/docs/framework/quantity_points.rst b/docs/framework/quantity_points.rst index 9fd23af16..a13ee71bf 100644 --- a/docs/framework/quantity_points.rst +++ b/docs/framework/quantity_points.rst @@ -3,9 +3,20 @@ Quantity Points =============== -A quantity point is an absolute quantity with respect to zero -(which represents some origin) and is represented in the library with a -`quantity_point` class template. +A quantity point is an absolute quantity with respect to an origin +and is represented in the library with a `quantity_point` class template. + +Point Origins +------------- + +We need a `point_origin` to represent the origin of a quantity point:: + + struct mean_sea_level : point_origin {}; + +Quantities points with this origin represent a point from the mean sea level. + +The library offers a `dynamic_origin` +for quantity points whose origin is not specified in the type system. Construction @@ -14,7 +25,7 @@ Construction To create the quantity point object from a `quantity` we just have to pass the value to the `quantity_point` class template explicit constructor:: - quantity_point d(123 * km); + quantity_point, si::kilometre, double> d(123 * km); .. note:: @@ -25,7 +36,7 @@ the value to the `quantity_point` class template explicit constructor:: `copy initialization `_ **does not compile**:: - quantity_point d = 123 * km; // ERROR + quantity_point, si::kilometre, double> d = 123 * km; // ERROR Differences To Quantity diff --git a/docs/use_cases/interoperability.rst b/docs/use_cases/interoperability.rst index c5cf5fed7..1fd7685cc 100644 --- a/docs/use_cases/interoperability.rst +++ b/docs/use_cases/interoperability.rst @@ -56,11 +56,12 @@ such an explicit conversion:: For external quantity point-like types, `quantity_point_like_traits` is also provided. It works just like `quantity_like_traits`, except that -``number(T)`` is replaced with ``relative(T)`` that returns the `QuantityLike` value. +``number(T)`` is replaced with ``relative(T)`` that returns the `QuantityLike` value +and ``dimension`` is replaced with ``origin``. Similar to `quantity` and `quantity_kind`, `quantity_point` and `quantity_kind_point` provide a deduction guide from `QuantityPointLike`:: using namespace std::chrono_literals; - static_assert(quantity_point{std::chrono::sys_seconds{1s}} + 1 * s == quantity_point{2s}); + static_assert((quantity_point{std::chrono::sys_seconds{1s}} + 1 * s).relative() == 2s); diff --git a/example/glide_computer/include/glide_computer.h b/example/glide_computer/include/glide_computer.h index 8185f95f8..ef9631f70 100644 --- a/example/glide_computer/include/glide_computer.h +++ b/example/glide_computer/include/glide_computer.h @@ -30,6 +30,7 @@ #include // IWYU pragma: end_exports +#include #include #include // IWYU pragma: keep #include @@ -88,7 +89,7 @@ using altitude = units::quantity_point_kind; -using timestamp = units::quantity_point; +using timestamp = units::quantity_point, units::isq::si::second>; // speed using velocity = units::quantity_kind; diff --git a/src/core/include/units/bits/basic_concepts.h b/src/core/include/units/bits/basic_concepts.h index 4ec561150..7b68b9940 100644 --- a/src/core/include/units/bits/basic_concepts.h +++ b/src/core/include/units/bits/basic_concepts.h @@ -205,6 +205,52 @@ concept UnitOf = Dimension && std::same_as::reference>; +// PointOrigin + +template +struct point_origin; + +/** + * @brief A concept matching a point origin + * + * Satisfied by types derived from an specialization of @c point_origin. + */ +template +concept PointOrigin = is_derived_from_specialization_of && + requires { + typename T::dimension; + requires Dimension; + typename T::point_origin; + requires std::same_as>; + requires !std::same_as>; + }; + +// RebindablePointOriginFor + +namespace detail { + +template +struct rebind_point_origin_dimension_impl { + using type = typename O::template rebind; +}; + +} // namespace detail + +template +using rebind_point_origin_dimension = typename conditional, std::type_identity, + detail::rebind_point_origin_dimension_impl>::type; + +/** + * @brief A concept predicating the possibility of changing an origin's dimension + * + * Satisfied by point origins whose dimension can be made to be `D`. + */ +template +concept RebindablePointOriginFor = + requires { typename rebind_point_origin_dimension; } && + PointOrigin> && + std::same_as::dimension>; + // Kind namespace detail { @@ -216,7 +262,7 @@ struct _kind_base; template typename Base> concept kind_impl_ = is_derived_from_specialization_of && - requires(T* t) { + requires { typename T::base_kind; typename T::dimension; requires Dimension; @@ -236,7 +282,7 @@ concept Kind = // PointKind namespace detail { -template +template struct _point_kind_base; } // namespace detail @@ -247,7 +293,12 @@ struct _point_kind_base; * Satisfied by all point kind types derived from an specialization of @c point_kind. */ template -concept PointKind = kind_impl_; +concept PointKind = + kind_impl_ && + requires { typename T::origin; } && + PointOrigin && + std::same_as && + std::same_as; // Reference namespace detail { diff --git a/src/core/include/units/bits/common_quantity.h b/src/core/include/units/bits/common_quantity.h index 1bcc0cfb6..789ff5b13 100644 --- a/src/core/include/units/bits/common_quantity.h +++ b/src/core/include/units/bits/common_quantity.h @@ -31,7 +31,7 @@ namespace units { template U, Representation Rep> class quantity; -template U, Representation Rep> +template U, Representation Rep> class quantity_point; template U, Representation Rep> @@ -99,7 +99,8 @@ template QP2> requires requires { typename common_type_t; } struct common_type { using type = units::quantity_point< - typename common_type_t::dimension, + units::rebind_point_origin_dimension::dimension>, typename common_type_t::unit, typename common_type_t::rep>; }; diff --git a/src/core/include/units/bits/equivalent.h b/src/core/include/units/bits/equivalent.h index 808258706..dca2d65f3 100644 --- a/src/core/include/units/bits/equivalent.h +++ b/src/core/include/units/bits/equivalent.h @@ -81,29 +81,48 @@ template struct equivalent_unit : std::disjunction, std::bool_constant::ratio == U2::ratio / dimension_unit::ratio>> {}; +// point origins + +template +struct equivalent_impl : std::bool_constant && RebindablePointOriginFor && + std::same_as> && + std::same_as>; + } && equivalent_impl::value> {}; + // (point) kinds -template - requires (Kind && Kind) || (PointKind && PointKind) +template struct equivalent_impl : std::conjunction, equivalent_impl> {}; +template +struct equivalent_impl : + std::conjunction, + equivalent_impl> {}; + // quantities, quantity points, quantity (point) kinds -template - requires (Quantity && Quantity) || (QuantityPoint && QuantityPoint) +template struct equivalent_impl : std::conjunction, equivalent_unit> {}; -template - requires (QuantityKind && QuantityKind) || (QuantityPointKind && QuantityPointKind) +template +struct equivalent_impl : std::conjunction, + equivalent_impl> {}; + +template struct equivalent_impl : std::conjunction, equivalent_impl> {}; +template +struct equivalent_impl : std::conjunction, + equivalent_impl> {}; + } // namespace detail template diff --git a/src/core/include/units/bits/quantity_of.h b/src/core/include/units/bits/quantity_of.h index 832f273f4..4ec1368fb 100644 --- a/src/core/include/units/bits/quantity_of.h +++ b/src/core/include/units/bits/quantity_of.h @@ -85,21 +85,20 @@ template concept QuantityEquivalentTo = Quantity && QuantityOf; /** - * @brief A concept matching all quantity points with provided dimension + * @brief A concept matching all quantity points of the provided origin * - * Satisfied by all quantity points with a dimension being the instantiation derived from - * the provided dimension type. + * Satisfied by all quantity points with an origin equivalent to the provided one. */ -template -concept QuantityPointOf = QuantityPoint && Dimension && equivalent; +template +concept QuantityPointOf = QuantityPoint && PointOrigin && equivalent; /** * @brief A concept matching two equivalent quantity points * - * Satisfied by quantity points having equivalent dimensions. + * Satisfied by quantity points having equivalent origins. */ template -concept QuantityPointEquivalentTo = QuantityPoint && QuantityPointOf; +concept QuantityPointEquivalentTo = QuantityPoint && QuantityPointOf; /** * @brief A concept matching only quantity kinds of a specific kind. diff --git a/src/core/include/units/chrono.h b/src/core/include/units/chrono.h index 5e5d14e9f..d85496bdb 100644 --- a/src/core/include/units/chrono.h +++ b/src/core/include/units/chrono.h @@ -25,6 +25,7 @@ #include // IWYU pragma: begin_exports #include +#include #include // IWYU pragma: end_exports @@ -38,10 +39,13 @@ struct quantity_like_traits> { [[nodiscard]] static constexpr rep number(const std::chrono::duration& q) { return q.count(); } }; +template +struct clock_origin : point_origin { }; + template struct quantity_point_like_traits>> { - using dimension = isq::si::dim_time; - using unit = downcast_unit; + using origin = clock_origin; + using unit = downcast_unit; using rep = Rep; [[nodiscard]] static constexpr auto relative( const std::chrono::time_point>& qp) { @@ -49,4 +53,11 @@ struct quantity_point_like_traits +inline constexpr bool is_quantity_point_like>> = true; + +} // namespace detail + } // namespace units diff --git a/src/core/include/units/customization_points.h b/src/core/include/units/customization_points.h index 5b3a3d56a..04827e1f3 100644 --- a/src/core/include/units/customization_points.h +++ b/src/core/include/units/customization_points.h @@ -88,7 +88,7 @@ struct quantity_like_traits; /** * @brief Provides support for external quantity point-like types * - * The type trait should provide the following nested type aliases: @c dimension, @c unit, @c rep, + * The type trait should provide the following nested type aliases: @c origin, @c unit, @c rep, * and a static member function @c relative(T) that will return the quantity-like value of the quantity point. * * Usage example can be found in @c units/chrono.h header file. diff --git a/src/core/include/units/kind.h b/src/core/include/units/kind.h index 5494adc52..690dcbd5c 100644 --- a/src/core/include/units/kind.h +++ b/src/core/include/units/kind.h @@ -27,6 +27,9 @@ namespace units { +template +struct dynamic_origin; + namespace detail { template @@ -35,10 +38,11 @@ struct _kind_base : downcast_base<_kind_base> { using dimension = D; }; -template -struct _point_kind_base : downcast_base<_point_kind_base> { +template +struct _point_kind_base : downcast_base<_point_kind_base> { using base_kind = K; using dimension = typename K::dimension; + using origin = O; }; } // namespace detail @@ -47,9 +51,9 @@ template requires Kind>> using downcast_kind = downcast>; -template - requires PointKind>> -using downcast_point_kind = downcast>; +template> + requires PointKind>> +using downcast_point_kind = downcast>; template struct kind : downcast_dispatch> {}; @@ -58,7 +62,7 @@ template requires std::same_as struct derived_kind : downcast_dispatch> {}; -template -struct point_kind : downcast_dispatch> {}; +template> +struct point_kind : downcast_dispatch> {}; } // namespace units diff --git a/src/core/include/units/point_origin.h b/src/core/include/units/point_origin.h new file mode 100644 index 000000000..581ccbfc8 --- /dev/null +++ b/src/core/include/units/point_origin.h @@ -0,0 +1,34 @@ +// The MIT License (MIT) +// +// Copyright (c) 2018 Mateusz Pusz +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#pragma once + +#include + +namespace units { + +template +struct point_origin { + using dimension = D; +}; + +} // namespace units diff --git a/src/core/include/units/quantity_cast.h b/src/core/include/units/quantity_cast.h index 655a07208..1472b7012 100644 --- a/src/core/include/units/quantity_cast.h +++ b/src/core/include/units/quantity_cast.h @@ -39,7 +39,7 @@ namespace units { template U, Representation Rep> class quantity; -template U, Representation Rep> +template U, Representation Rep> class quantity_point; template U, Representation Rep> @@ -234,10 +234,12 @@ template Rep * * @tparam CastSpec a target quantity point type to cast to or anything that works for quantity_cast */ -template - requires is_specialization_of || - requires(quantity q) { quantity_cast(q); } -[[nodiscard]] constexpr auto quantity_point_cast(const quantity_point& qp) +template +[[nodiscard]] constexpr auto quantity_point_cast(const quantity_point& qp) + requires requires { requires is_specialization_of; + requires requires { quantity_cast(qp.relative()); }; + requires equivalent; } || // TODO: Simplify when Clang catches up. + requires { quantity_cast(qp.relative()); } { if constexpr (is_specialization_of) return quantity_point(quantity_cast(qp.relative())); @@ -261,11 +263,11 @@ template * @tparam ToD a dimension type to use for a target quantity * @tparam ToU a unit type to use for a target quantity */ -template - requires equivalent && UnitOf -[[nodiscard]] constexpr auto quantity_point_cast(const quantity_point& q) +template + requires equivalent && UnitOf && RebindablePointOriginFor +[[nodiscard]] constexpr auto quantity_point_cast(const quantity_point& q) { - return quantity_point_cast>(q); + return quantity_point_cast, ToU, Rep>>(q); } /** @@ -347,7 +349,8 @@ template template [[nodiscard]] constexpr QuantityPointKind auto quantity_point_kind_cast(const quantity_point_kind& qpk) requires requires { requires is_specialization_of; - requires requires { quantity_kind_cast(qpk.relative()); }; } || + requires requires { quantity_kind_cast(qpk.relative()); }; + requires equivalent; } || requires { requires PointKind && UnitOf; } || requires { quantity_kind_cast(qpk.relative()); } // TODO: Simplify when Clang catches up. { diff --git a/src/core/include/units/quantity_point.h b/src/core/include/units/quantity_point.h index cbb5e2a75..4da06901a 100644 --- a/src/core/include/units/quantity_point.h +++ b/src/core/include/units/quantity_point.h @@ -24,6 +24,7 @@ #pragma once // IWYU pragma: begin_exports +#include #include #include // IWYU pragma: end_exports @@ -34,18 +35,32 @@ namespace units { /** - * @brief A quantity point + * @brief A statically unspecified quantity point origin * - * An absolute quantity with respect to zero (which represents some origin). + * An origin, unspecified in the type system, from which an absolute quantity is measured from. * * @tparam D a dimension of the quantity point (can be either a BaseDimension or a DerivedDimension) + */ +template +struct dynamic_origin : point_origin { + template + using rebind = dynamic_origin; +}; + +/** + * @brief A quantity point + * + * An absolute quantity measured from an origin. + * + * @tparam O a type that represents the origin from which the quantity point is measured from * @tparam U a measurement unit of the quantity point * @tparam Rep a type to be used to represent values of a quantity point */ -template U, Representation Rep = double> +template U, Representation Rep = double> class quantity_point { public: - using quantity_type = quantity; + using origin = O; + using quantity_type = quantity; using dimension = typename quantity_type::dimension; using unit = typename quantity_type::unit; using rep = typename quantity_type::rep; @@ -63,13 +78,14 @@ class quantity_point { requires std::constructible_from constexpr explicit quantity_point(T&& t) : q_(std::forward(t)) {} - template + template QP2> requires std::convertible_to constexpr explicit(false) quantity_point(const QP2& qp) : q_(qp.relative()) {} template constexpr explicit quantity_point(const QP& qp) - requires std::is_constructible_v::relative(qp))> + requires std::is_constructible_v::relative(qp))> && + equivalent::origin> : q_(quantity_point_like_traits::relative(qp)) {} quantity_point& operator=(const quantity_point&) = default; @@ -141,7 +157,8 @@ class quantity_point { { const auto q = lhs.relative() + rhs; using q_type = decltype(q); - return quantity_point(q); + return quantity_point, typename q_type::unit, + typename q_type::rep>(q); } template @@ -157,24 +174,25 @@ class quantity_point { { const auto q = lhs.relative() - rhs; using q_type = decltype(q); - return quantity_point(q); + return quantity_point, typename q_type::unit, + typename q_type::rep>(q); } - template + template QP> [[nodiscard]] friend constexpr Quantity auto operator-(const quantity_point& lhs, const QP& rhs) requires requires(quantity_type q) { q - rhs.relative(); } { return lhs.relative() - rhs.relative(); } - template + template QP> requires std::three_way_comparable_with [[nodiscard]] friend constexpr auto operator<=>(const quantity_point& lhs, const QP& rhs) { return lhs.relative() <=> rhs.relative(); } - template + template QP> requires std::equality_comparable_with [[nodiscard]] friend constexpr bool operator==(const quantity_point& lhs, const QP& rhs) { @@ -183,24 +201,24 @@ class quantity_point { }; template -explicit quantity_point(Rep) -> quantity_point; +explicit quantity_point(Rep) -> quantity_point, one, Rep>; template -explicit quantity_point(Q) -> quantity_point; +explicit quantity_point(Q) -> quantity_point, typename Q::unit, typename Q::rep>; template -explicit quantity_point(Q) -> quantity_point::dimension, +explicit quantity_point(Q) -> quantity_point::dimension>, typename quantity_like_traits::unit, typename quantity_like_traits::rep>; template -explicit quantity_point(QP) -> quantity_point::dimension, +explicit quantity_point(QP) -> quantity_point::origin, typename quantity_point_like_traits::unit, typename quantity_point_like_traits::rep>; namespace detail { -template -inline constexpr bool is_quantity_point> = true; +template +inline constexpr bool is_quantity_point> = true; } // namespace detail diff --git a/src/core/include/units/quantity_point_kind.h b/src/core/include/units/quantity_point_kind.h index 213de4477..a2c5f1a15 100644 --- a/src/core/include/units/quantity_point_kind.h +++ b/src/core/include/units/quantity_point_kind.h @@ -34,7 +34,7 @@ namespace units { /** * @brief A quantity point kind * - * An absolute quantity kind with respect to zero (which represents some origin). + * An absolute quantity kind measured from an origin. * * @tparam PK the point kind of quantity point * @tparam U the measurement unit of the quantity point kind @@ -45,6 +45,7 @@ class quantity_point_kind { public: using point_kind_type = PK; using kind_type = typename PK::base_kind; + using origin = typename point_kind_type::origin; using quantity_kind_type = quantity_kind; using quantity_type = typename quantity_kind_type::quantity_type; using dimension = typename quantity_type::dimension; @@ -64,14 +65,14 @@ class quantity_point_kind { requires std::constructible_from constexpr explicit quantity_point_kind(T&& t) : qk_(std::forward(t)) {} - constexpr explicit quantity_point_kind(const quantity_point& qp) : qk_(qp.relative()) {} - constexpr explicit quantity_point_kind(quantity_point&& qp) : qk_(std::move(qp).relative()) {} + constexpr explicit quantity_point_kind(const quantity_point& qp) : qk_(qp.relative()) {} + constexpr explicit quantity_point_kind(quantity_point&& qp) : qk_(std::move(qp).relative()) {} template - requires std::constructible_from, QP> + requires std::constructible_from, QP> constexpr explicit quantity_point_kind(const QP& qp) : qk_(quantity_point_like_traits::relative(qp)) {} - template QPK2> + template QPK2> requires std::convertible_to constexpr explicit(false) quantity_point_kind(const QPK2& qpk) : qk_(qpk.relative()) {} @@ -159,20 +160,21 @@ class quantity_point_kind { return units::quantity_point_kind(lhs.relative() - rhs); } - [[nodiscard]] friend constexpr QuantityKind auto operator-(const quantity_point_kind& lhs, const quantity_point_kind& rhs) + template QPK> + [[nodiscard]] friend constexpr QuantityKind auto operator-(const quantity_point_kind& lhs, const QPK& rhs) requires requires(quantity_kind_type qk) { qk - qk; } { return lhs.relative() - rhs.relative(); } - template + template QPK> requires std::three_way_comparable_with [[nodiscard]] friend constexpr auto operator<=>(const quantity_point_kind& lhs, const QPK& rhs) { return lhs.relative() <=> rhs.relative(); } - template + template QPK> requires std::equality_comparable_with [[nodiscard]] friend constexpr bool operator==(const quantity_point_kind& lhs, const QPK& rhs) { diff --git a/test/unit_test/static/CMakeLists.txt b/test/unit_test/static/CMakeLists.txt index f3981ce48..0c5b3d9c8 100644 --- a/test/unit_test/static/CMakeLists.txt +++ b/test/unit_test/static/CMakeLists.txt @@ -51,6 +51,7 @@ add_library(unit_tests_static iec80000_test.cpp kind_test.cpp math_test.cpp + point_origin_test.cpp ratio_test.cpp references_test.cpp si_test.cpp diff --git a/test/unit_test/static/chrono_test.cpp b/test/unit_test/static/chrono_test.cpp index ec5567234..ed812548e 100644 --- a/test/unit_test/static/chrono_test.cpp +++ b/test/unit_test/static/chrono_test.cpp @@ -36,7 +36,7 @@ using namespace std::chrono_literals; using sys_seconds = std::chrono::time_point; using sys_days = std::chrono::time_point, std::chrono::hours::period>>>; -template using time_point = quantity_point; +template using time_point = quantity_point, U, Rep>; static_assert(QuantityLike); static_assert(QuantityPointLike); @@ -50,14 +50,17 @@ static_assert(std::constructible_from>); static_assert(!std::constructible_from, std::chrono::seconds>); static_assert(!std::convertible_to>); -static_assert(std::constructible_from, sys_seconds>); -static_assert(!std::convertible_to>); -static_assert(std::constructible_from, sys_days>); -static_assert(!std::convertible_to>); -static_assert(std::constructible_from, sys_days>); -static_assert(!std::convertible_to>); -static_assert(!std::constructible_from, sys_seconds>); -static_assert(!std::convertible_to>); +static_assert(std::constructible_from, sys_seconds>); +static_assert(!std::constructible_from, sys_seconds>); +static_assert(!std::convertible_to>); +static_assert(std::constructible_from, sys_days>); +static_assert(!std::constructible_from, sys_days>); +static_assert(!std::convertible_to>); +static_assert(std::constructible_from, sys_days>); +static_assert(!std::constructible_from, sys_days>); +static_assert(!std::convertible_to>); +static_assert(!std::constructible_from, sys_seconds>); +static_assert(!std::convertible_to>); // construction - different rep type (integral to a floating-point) static_assert(std::constructible_from, std::chrono::seconds>); @@ -66,25 +69,25 @@ static_assert(std::constructible_from, std::chrono::hours>) static_assert(!std::convertible_to>); static_assert(std::constructible_from, std::chrono::seconds>); static_assert(!std::convertible_to>); -static_assert(std::constructible_from, sys_seconds>); -static_assert(!std::convertible_to>); -static_assert(std::constructible_from, sys_days>); -static_assert(!std::convertible_to>); -static_assert(std::constructible_from, sys_seconds>); -static_assert(!std::convertible_to>); +static_assert(std::constructible_from, sys_seconds>); +static_assert(!std::convertible_to>); +static_assert(std::constructible_from, sys_days>); +static_assert(!std::convertible_to>); +static_assert(std::constructible_from, sys_seconds>); +static_assert(!std::convertible_to>); // CTAD static_assert(is_same_v>); static_assert(is_same_v>); -static_assert(is_same_v>); -static_assert(is_same_v>); +static_assert(is_same_v>); +static_assert(is_same_v>); // operators static_assert(quantity{1s} + 1_q_s == 2_q_s); static_assert(quantity{1s} + 1_q_min == 61_q_s); static_assert(10_q_m / quantity{2s} == 5_q_m_per_s); -static_assert(quantity_point{sys_seconds{1s}} + 1_q_s == quantity_point{2_q_s}); -static_assert(quantity_point{sys_seconds{1s}} + 1_q_min == quantity_point{61_q_s}); +static_assert(quantity_point{sys_seconds{1s}} + 1_q_s == time_point{2_q_s}); +static_assert(quantity_point{sys_seconds{1s}} + 1_q_min == time_point{61_q_s}); } // namespace diff --git a/test/unit_test/static/concepts_test.cpp b/test/unit_test/static/concepts_test.cpp index fd0ce1f21..a54e3cd5f 100644 --- a/test/unit_test/static/concepts_test.cpp +++ b/test/unit_test/static/concepts_test.cpp @@ -27,7 +27,7 @@ #include // IWYU pragma: keep #include #include -#include +#include #include #include #include @@ -112,11 +112,11 @@ static_assert(!Representation); static_assert(Quantity>); static_assert(!Quantity); -static_assert(!Quantity>); +static_assert(!Quantity, si::metre>>); // QuantityPoint -static_assert(QuantityPoint>); +static_assert(QuantityPoint, si::metre>>); static_assert(!QuantityPoint>); static_assert(!QuantityPoint); @@ -141,4 +141,9 @@ static_assert(QuantityOf, si::dim_length>); static_assert(QuantityOf, si::fps::dim_length>); static_assert(!QuantityOf, si::dim_time>); +static_assert(QuantityPointOf, si::second, int>, dynamic_origin>); +static_assert(QuantityPointOf, si::second, int>, clock_origin>); +static_assert(!QuantityPointOf, si::second, int>, clock_origin>); +static_assert(!QuantityPointOf, si::second, int>, dynamic_origin>); + } // namespace diff --git a/test/unit_test/static/kind_test.cpp b/test/unit_test/static/kind_test.cpp index fb6ba0bc8..3e9b4eb8f 100644 --- a/test/unit_test/static/kind_test.cpp +++ b/test/unit_test/static/kind_test.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include using namespace units; @@ -97,7 +98,6 @@ static_assert(PointKind); static_assert(is_same_v); static_assert(is_same_v); -static_assert(is_same_v>); static_assert(is_same_v>); static_assert(equivalent); @@ -137,7 +137,6 @@ static_assert(PointKind); static_assert(is_same_v); static_assert(is_same_v); -static_assert(is_same_v>); static_assert(is_same_v>); static_assert(equivalent); diff --git a/test/unit_test/static/point_origin_test.cpp b/test/unit_test/static/point_origin_test.cpp new file mode 100644 index 000000000..8da58e468 --- /dev/null +++ b/test/unit_test/static/point_origin_test.cpp @@ -0,0 +1,73 @@ +// The MIT License (MIT) +// +// Copyright (c) 2018 Mateusz Pusz +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#include +#include +#include +#include +#include +#include + +using namespace units; +namespace si = isq::si; + +namespace { + +struct width : kind {}; + +struct ones_viewpoint1 : point_origin { + template + using rebind = ones_viewpoint1; +}; + +struct ones_viewpoint2 : point_origin { + template + using rebind = ones_viewpoint1; +}; + +static_assert(PointOrigin>); +static_assert(!PointOrigin>); +static_assert(!PointOrigin); +static_assert(!PointOrigin>); + +static_assert(RebindablePointOriginFor, si::dim_length>); +static_assert(is_same_v, si::dim_length>, + dynamic_origin>); +static_assert(RebindablePointOriginFor, si::dim_time>); +static_assert(is_same_v, si::dim_time>, + dynamic_origin>); +static_assert(RebindablePointOriginFor); +static_assert(is_same_v, ones_viewpoint1>); +static_assert(RebindablePointOriginFor); +static_assert(is_same_v, ones_viewpoint1>); +static_assert(RebindablePointOriginFor); +static_assert(is_same_v, ones_viewpoint2>); +static_assert(!RebindablePointOriginFor); + +static_assert(equivalent, dynamic_origin>); +static_assert(equivalent, dynamic_origin>); +static_assert(!equivalent, clock_origin>); +static_assert(!equivalent, clock_origin>); +static_assert(!equivalent, dynamic_origin>); +static_assert(!equivalent); + +} // namespace diff --git a/test/unit_test/static/quantity_kind_test.cpp b/test/unit_test/static/quantity_kind_test.cpp index 5ffea7fe5..740d09734 100644 --- a/test/unit_test/static/quantity_kind_test.cpp +++ b/test/unit_test/static/quantity_kind_test.cpp @@ -82,16 +82,16 @@ static_assert(QuantityKind>); static_assert(QuantityKind>); static_assert(!QuantityKind); static_assert(!QuantityKind>); -static_assert(!QuantityKind>); +static_assert(!QuantityKind, metre>>); static_assert(QuantityKindOf, width_kind>); static_assert(!QuantityKindOf, height_kind>); static_assert(!QuantityKindOf, metre>); static_assert(!QuantityKindOf, width_kind>); static_assert(!QuantityKindOf, metre>); -static_assert(!QuantityKindOf, width_kind>); -static_assert(!QuantityKindOf, dim_length>); -static_assert(!QuantityKindOf, metre>); +static_assert(!QuantityKindOf, metre>, width_kind>); +static_assert(!QuantityKindOf, metre>, dim_length>); +static_assert(!QuantityKindOf, metre>, metre>); /////////////// @@ -105,7 +105,7 @@ 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 { typename quantity_kind>; }; // quantity point used as Rep + requires !requires { typename quantity_kind, metre>>; }; // quantity point used as Rep requires !requires { typename quantity_kind>; }; // quantity kind used as Rep requires !requires { typename quantity_kind; }; // reordered arguments requires !requires { typename quantity_kind; }; // reordered arguments @@ -454,7 +454,7 @@ concept invalid_compound_assignments = requires(quantity_kind requires invalid_compound_assignments_>; 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); @@ -485,12 +485,12 @@ static_assert((width(0 * m) - width(1 static_assert(!std::is_invocable_v, width, double>); static_assert(!std::is_invocable_v, width, length>); -static_assert(!std::is_invocable_v, width, quantity_point>); +static_assert(!std::is_invocable_v, width, quantity_point, metre>>); static_assert(!std::is_invocable_v, width, height>); static_assert(!std::is_invocable_v, width, reference>); static_assert(!std::is_invocable_v, width, double>); static_assert(!std::is_invocable_v, width, length>); -static_assert(!std::is_invocable_v, width, quantity_point>); +static_assert(!std::is_invocable_v, width, quantity_point, metre>>); static_assert(!std::is_invocable_v, width, height>); static_assert(!std::is_invocable_v, width, reference>); @@ -650,17 +650,17 @@ static_assert(is_same_v< static_assert(!std::is_invocable_v, reference, width>); static_assert(!std::is_invocable_v, width, height>); -static_assert(!std::is_invocable_v, height, quantity_point>); -static_assert(!std::is_invocable_v, quantity_point, height>); +static_assert(!std::is_invocable_v, height, quantity_point, metre>>); +static_assert(!std::is_invocable_v, quantity_point, metre>, height>); static_assert(!std::is_invocable_v, reference, width>); static_assert(!std::is_invocable_v, width, height>); -static_assert(!std::is_invocable_v, height, quantity_point>); -static_assert(!std::is_invocable_v, quantity_point, height>); +static_assert(!std::is_invocable_v, height, quantity_point, metre>>); +static_assert(!std::is_invocable_v, quantity_point, metre>, height>); static_assert(!std::is_invocable_v, width, reference>); static_assert(!std::is_invocable_v, width, length>); -static_assert(!std::is_invocable_v, width, quantity_point>); +static_assert(!std::is_invocable_v, width, quantity_point, metre, int>>); static_assert(!std::is_invocable_v, width, double>); static_assert(!std::is_invocable_v, width, width>); @@ -801,8 +801,8 @@ 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, 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 b92ba9b52..737385663 100644 --- a/test/unit_test/static/quantity_point_kind_test.cpp +++ b/test/unit_test/static/quantity_point_kind_test.cpp @@ -57,6 +57,18 @@ struct cgs_height_kind : kind {}; struct rate_of_climb_kind : derived_kind {}; struct altitude_kind : point_kind {}; +struct sea_level_origin : point_origin {}; +struct sea_level_altitude_kind : point_kind {}; + +template +struct screen_origin : point_origin { + template + using rebind = screen_origin; +}; +struct screen_si_width_kind : point_kind> {}; +struct screen_si_cgs_width_kind : + point_kind> {}; + struct apple : kind {}; struct orange : kind {}; struct nth_apple_kind : point_kind {}; @@ -65,6 +77,8 @@ struct nth_orange_kind : point_kind {}; struct time_kind : kind {}; struct time_point_kind : point_kind {}; +struct sys_time_point_kind : point_kind> {}; + template using width = quantity_kind; template using height = quantity_kind; template using abscissa = quantity_point_kind; @@ -76,6 +90,13 @@ template using cgs_height = quantity_kind< template using rate_of_climb = quantity_kind; template using altitude = quantity_point_kind; +template +using sea_level_altitude = quantity_point_kind; +template +using screen_si_width = quantity_point_kind; +template +using screen_si_cgs_width = quantity_point_kind; + template using apples = quantity_kind; template using oranges = quantity_kind; template using nth_apple = quantity_point_kind; @@ -89,7 +110,7 @@ static_assert(QuantityPointKind>); static_assert(QuantityPointKind>); static_assert(!QuantityPointKind); static_assert(!QuantityPointKind>); -static_assert(!QuantityPointKind>); +static_assert(!QuantityPointKind, metre>>); static_assert(!QuantityPointKind>); static_assert(QuantityPointKindOf, abscissa_kind>); @@ -100,9 +121,12 @@ static_assert(!QuantityPointKindOf, metre>); static_assert(!QuantityPointKindOf, abscissa_kind>); static_assert(!QuantityPointKindOf, width_kind>); static_assert(!QuantityPointKindOf, metre>); -static_assert(!QuantityPointKindOf, width_kind>); -static_assert(!QuantityPointKindOf, dim_length>); -static_assert(!QuantityPointKindOf, metre>); +static_assert(!QuantityPointKindOf, sea_level_altitude_kind>); +static_assert(!QuantityPointKindOf, sea_level_altitude_kind>); +static_assert(!QuantityPointKindOf, metre>, width_kind>); +static_assert(!QuantityPointKindOf, metre>, dim_length>); +static_assert(!QuantityPointKindOf, metre>, dynamic_origin>); +static_assert(!QuantityPointKindOf, metre>, metre>); /////////////// @@ -117,7 +141,7 @@ 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>; }; // quantity point 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 @@ -160,6 +184,7 @@ static_assert(!std::is_aggregate_v>); static_assert(is_same_v::point_kind_type, abscissa_kind>); static_assert(is_same_v::kind_type, width_kind>); +static_assert(is_same_v::origin, dynamic_origin>); static_assert(is_same_v::quantity_kind_type, width>); static_assert(is_same_v::quantity_type, length>); static_assert(is_same_v::dimension, dim_length>); @@ -287,6 +312,14 @@ static_assert(!constructible_or_convertible_from>(quantity_ static_assert(!constructible_or_convertible_from>(quantity_point(1.0 * (m * m)))); static_assert(!constructible_or_convertible_from>(quantity_point(1.0 * s))); +static_assert(construct_from_only>(quantity_point, metre>(1 * m)) + .relative() + .common() == 1 * m); +static_assert(construct_from_only>(quantity_point, metre>(1 * m)) + .relative() + .common() == 1 * m); +static_assert(!constructible_or_convertible_from>(quantity_point(1.0 * m))); + // clang-format off static_assert(construct_from_only>(quantity_point(1)).relative().common() == 1); static_assert(construct_from_only>(quantity_point(1)).relative().common() == 1); @@ -303,8 +336,12 @@ static_assert(!constructible_or_convertible_from>(quantity_p static_assert(!constructible_or_convertible_from>(quantity_point(dimensionless(1)))); static_assert(!constructible_or_convertible_from>(quantity_point(1.0 * s))); -static_assert(construct_from_only>(sys_seconds{42s}).relative().common() == 42 * s); // clang-format on +static_assert( + construct_from_only>(sys_seconds{42s}).relative().common() == + 42 * s); +static_assert(!constructible_or_convertible_from>(sys_seconds{42s}), + "no implicit conversion to/from dynamic_origin"); ////////////////////////////////////// @@ -365,6 +402,15 @@ static_assert(!constructible_or_convertible_from>(nth_orange static_assert(!constructible_or_convertible_from>(abscissa(1 * m))); // clang-format on +static_assert(!constructible_or_convertible_from>( + quantity_point_kind{}), + "no implicit conversion to/from dynamic_origin"); +static_assert(!constructible_or_convertible_from>( + quantity_point_kind{}), + "no implicit conversion to/from dynamic_origin"); +static_assert(!constructible_or_convertible_from>(screen_si_cgs_width(1 * m)), + "base kinds are not the same (required by equivalent)"); + ////////////////////// // other conversions @@ -375,7 +421,7 @@ static_assert(!std::is_convertible_v, dimensionless, length>); static_assert(!std::is_convertible_v, width>); static_assert(!std::is_convertible_v, height>); -static_assert(!std::is_convertible_v, quantity_point>); +static_assert(!std::is_convertible_v, quantity_point, metre, int>>); //////////////////////// @@ -420,7 +466,7 @@ concept invalid_compound_assignments = requires(quantity_point_kind>; 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); @@ -447,13 +493,13 @@ static_assert(same(width(2 * km) + abscissa(3e3 * static_assert(same(width(2e3 * m) + abscissa(3 * km), abscissa(5e3 * m))); static_assert(!std::is_invocable_v, abscissa, double>); static_assert(!std::is_invocable_v, abscissa, length>); -static_assert(!std::is_invocable_v, abscissa, quantity_point>); +static_assert(!std::is_invocable_v, abscissa, quantity_point, metre>>); static_assert(!std::is_invocable_v, abscissa, height>); static_assert(!std::is_invocable_v, abscissa, abscissa>); static_assert(!std::is_invocable_v, abscissa, abscissa>); static_assert(!std::is_invocable_v, abscissa, abscissa>); static_assert(!std::is_invocable_v, height, abscissa>); -static_assert(!std::is_invocable_v, quantity_point, abscissa>); +static_assert(!std::is_invocable_v, quantity_point, metre>, abscissa>); static_assert(!std::is_invocable_v, length, abscissa>); static_assert(!std::is_invocable_v, double, abscissa>); @@ -469,14 +515,15 @@ static_assert(same(abscissa(2 * km) - abscissa(3e static_assert(same(abscissa(2e3 * m) - abscissa(3 * km), width(-1e3 * m))); static_assert(!std::is_invocable_v, abscissa, double>); static_assert(!std::is_invocable_v, abscissa, length>); -static_assert(!std::is_invocable_v, abscissa, quantity_point>); +static_assert(!std::is_invocable_v, abscissa, quantity_point, metre>>); static_assert(!std::is_invocable_v, abscissa, height>); static_assert(!std::is_invocable_v, abscissa, ordinate>); static_assert(!std::is_invocable_v, ordinate, abscissa>); static_assert(!std::is_invocable_v, height, abscissa>); -static_assert(!std::is_invocable_v, quantity_point, abscissa>); +static_assert(!std::is_invocable_v, quantity_point, metre>, abscissa>); static_assert(!std::is_invocable_v, length, abscissa>); static_assert(!std::is_invocable_v, double, abscissa>); +static_assert(!std::is_invocable_v, screen_si_width, screen_si_cgs_width>); // clang-format on @@ -496,8 +543,8 @@ static_assert(std::equality_comparable_with, abscissa, abscissa>); static_assert(std::equality_comparable_with, abscissa>); // clang-format on -template -concept invalid_equality = requires(quantity_point_kind x) { +template +concept invalid_equality = requires(quantity_point_kind x, Int i) { requires !requires { x == 1; }; requires !requires { x != 1.0; }; requires !requires { x == 1 * m; }; @@ -516,8 +563,9 @@ concept invalid_equality = requires(quantity_point_kind x) 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); +static_assert(invalid_equality); // clang-format off static_assert(abscissa(1 * m) < abscissa(2 * m)); @@ -531,8 +579,8 @@ static_assert(std::three_way_comparable_with, abscissa< static_assert(std::three_way_comparable_with, abscissa>); static_assert(std::three_way_comparable_with, abscissa>); // clang-format on -template -concept invalid_relational = requires(quantity_point_kind x) { +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; }; @@ -551,8 +599,9 @@ concept invalid_relational = requires(quantity_point_kind 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); +static_assert(invalid_relational); ///////////////////////////// @@ -600,6 +649,7 @@ static_assert(same(quantity_point_kind_cast>(abscissa>(abscissa(1 * m)), abscissa(100 * cm))); static_assert(same(quantity_point_kind_cast>(abscissa(0.01 * m)), abscissa(1 * cm))); static_assert(same(quantity_point_kind_cast>(abscissa(1 * cgs_cm)), abscissa(1 * cgs_cm))); +static_assert(same(quantity_point_kind_cast>(screen_si_width(1 * m)), screen_si_cgs_width(1 * m))); // clang-format on template concept invalid_cast = requires(Int i) { @@ -617,8 +667,9 @@ 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, 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 ff7771c93..d8e810d95 100644 --- a/test/unit_test/static/quantity_point_test.cpp +++ b/test/unit_test/static/quantity_point_test.cpp @@ -41,72 +41,89 @@ using namespace references; using namespace std::chrono_literals; using sys_seconds = std::chrono::time_point; +struct sea_level_origin : point_origin {}; + // class invariants template concept invalid_types = requires { - requires !requires { typename quantity_point; }; // unit of a different dimension - requires !requires { typename quantity_point>; }; // quantity used as Rep - // quantity point used as Rep - requires !requires { typename quantity_point>; }; - requires !requires { typename quantity; }; // reordered arguments + // 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); // member types -static_assert(is_same_v::rep, int>); -static_assert(is_same_v::rep, double>); -static_assert(is_same_v::unit, metre>); -static_assert(is_same_v::unit, kilometre>); -static_assert(is_same_v::dimension, dim_length>); -static_assert(is_same_v::quantity_type, quantity>); +static_assert(is_same_v, metre, int>::rep, int>); +static_assert(is_same_v, metre, double>::rep, double>); +static_assert(is_same_v, metre, int>::unit, metre>); +static_assert(is_same_v, kilometre, int>::unit, kilometre>); +static_assert(is_same_v, metre, int>::dimension, dim_length>); +static_assert(is_same_v, metre, int>::origin, dynamic_origin>); +static_assert(is_same_v, metre, int>::quantity_type, quantity>); // constructors static_assert(quantity_point(1).relative() == quantity(1)); -static_assert(!std::is_convertible_v>); +static_assert(!std::is_convertible_v, one, int>>); static_assert(quantity_point(42s).relative() == 42 * s); static_assert(quantity_point(sys_seconds{42s}).relative() == 42 * s); -static_assert(!std::is_convertible_v>); -static_assert(!std::is_convertible_v>); +static_assert(!std::is_convertible_v, second, std::chrono::seconds::rep>>); +static_assert(!std::is_convertible_v, second, std::chrono::seconds::rep>>); +static_assert(!std::is_convertible_v, second, sys_seconds::rep>>); +static_assert(!std::is_convertible_v, second, sys_seconds::rep>>); -static_assert(quantity_point().relative() == 0_q_m); -constexpr quantity_point km{1000_q_m}; +static_assert(quantity_point, metre, int>().relative() == 0_q_m); +constexpr quantity_point, metre, int> km{1000_q_m}; static_assert(km.relative() == 1000_q_m); -static_assert(quantity_point(km).relative() == km.relative()); - -static_assert(quantity_point(1_q_m).relative() == 1_q_m); -static_assert(!std::is_constructible_v, double>); // truncating conversion -static_assert(quantity_point(1.0_q_m).relative() == 1.0_q_m); -static_assert(quantity_point(1_q_m).relative() == 1_q_m); -static_assert(quantity_point(3.14_q_m).relative() == 3.14_q_m); - -static_assert(quantity_point(km).relative() == 1000_q_m); -static_assert(!std::is_constructible_v, - quantity_point>); // truncating conversion -static_assert(quantity_point(quantity_point(1000.0_q_m)).relative() == 1000.0_q_m); -static_assert(quantity_point(km).relative() == 1000.0_q_m); -static_assert(quantity_point(quantity_point(1_q_km)).relative() == 1000_q_m); -static_assert(!std::is_constructible_v, - quantity_point>); // different dimensions -static_assert(!std::is_constructible_v, - quantity_point>); // truncating conversion +static_assert(quantity_point, metre, int>(km).relative() == km.relative()); + +static_assert(quantity_point, metre, int>(1_q_m).relative() == 1_q_m); +static_assert(!std::is_constructible_v, metre, int>, double>); // truncating conversion +static_assert(quantity_point, metre, double>(1.0_q_m).relative() == 1.0_q_m); +static_assert(quantity_point, metre, double>(1_q_m).relative() == 1_q_m); +static_assert(quantity_point, metre, long double>(3.14_q_m).relative() == 3.14_q_m); + +static_assert(quantity_point, metre, int>(km).relative() == 1000_q_m); +static_assert(!std::is_constructible_v, metre, int>, + quantity_point, metre, double>>); // truncating conversion +static_assert(quantity_point, metre, double>(quantity_point(1000.0_q_m)).relative() == 1000.0_q_m); +static_assert(quantity_point, metre, double>(km).relative() == 1000.0_q_m); +static_assert(quantity_point, metre, int>(quantity_point(1_q_km)).relative() == 1000_q_m); +static_assert(!std::is_constructible_v, metre, int>, + quantity_point, second, int>>); // different dimensions +static_assert(!std::is_constructible_v, kilometre, int>, + quantity_point, metre, int>>); // truncating conversion + +static_assert(!std::is_constructible_v, + quantity_point, metre, int>>, + "non-equivalent origins"); +static_assert(!std::is_constructible_v, second, int>, sys_seconds>, + "non-equivalent origins, no implicit conversion from `clock_origin`"); // assignment operator -static_assert([]() { quantity_point l1(1_q_m), l2{}; return l2 = l1; }().relative() == 1_q_m); +static_assert([]() { quantity_point, metre, int> l1(1_q_m), l2{}; return l2 = l1; }().relative() == 1_q_m); // static member functions -static_assert(quantity_point::min().relative().number() == std::numeric_limits::lowest()); -static_assert(quantity_point::max().relative().number() == std::numeric_limits::max()); -static_assert(quantity_point::min().relative().number() == +static_assert(quantity_point, metre, int>::min().relative().number() == std::numeric_limits::lowest()); +static_assert(quantity_point, metre, int>::max().relative().number() == std::numeric_limits::max()); +static_assert(quantity_point, metre, double>::min().relative().number() == std::numeric_limits::lowest()); -static_assert(quantity_point::max().relative().number() == +static_assert(quantity_point, metre, double>::max().relative().number() == std::numeric_limits::max()); // unary member operators @@ -114,19 +131,19 @@ static_assert(quantity_point::max().relative().number static_assert([](auto v) { auto vv = v++; return std::pair(v, vv); -}(km) == std::pair(quantity_point(1001_q_m), quantity_point(1000_q_m))); +}(km) == std::pair(quantity_point, metre, int>(1001_q_m), quantity_point, metre, int>(1000_q_m))); static_assert([](auto v) { auto vv = ++v; return std::pair(v, vv); -}(km) == std::pair(quantity_point(1001_q_m), quantity_point(1001_q_m))); +}(km) == std::pair(quantity_point, metre, int>(1001_q_m), quantity_point, metre, int>(1001_q_m))); static_assert([](auto v) { auto vv = v--; return std::pair(v, vv); -}(km) == std::pair(quantity_point(999_q_m), quantity_point(1000_q_m))); +}(km) == std::pair(quantity_point, metre, int>(999_q_m), quantity_point, metre, int>(1000_q_m))); static_assert([](auto v) { auto vv = --v; return std::pair(v, vv); -}(km) == std::pair(quantity_point(999_q_m), quantity_point(999_q_m))); +}(km) == std::pair(quantity_point, metre, int>(999_q_m), quantity_point, metre, int>(999_q_m))); // compound assignment @@ -135,23 +152,23 @@ static_assert((quantity_point(2_q_m) -= 1_q_m).relative().number() == 1); // non-member arithmetic operators -static_assert(compare() + length()), - quantity_point>); -static_assert(compare() + quantity_point()), - quantity_point>); -static_assert(compare() + length()), - quantity_point>); -static_assert(compare() + quantity_point()), - quantity_point>); -static_assert(compare() - length()), - quantity_point>); -static_assert(compare() - length()), - quantity_point>); +static_assert(compare, metre, int>() + length()), + quantity_point, metre, double>>); +static_assert(compare() + quantity_point, metre, double>()), + quantity_point, metre, double>>); +static_assert(compare, kilometre, int>() + length()), + quantity_point, metre, double>>); +static_assert(compare() + quantity_point, metre, double>()), + quantity_point, metre, double>>); +static_assert(compare, metre, double>() - length()), + quantity_point, metre, double>>); +static_assert(compare, kilometre, double>() - length()), + quantity_point, metre, double>>); static_assert( - compare() - quantity_point()), + compare, metre, double>() - quantity_point, metre, int>()), length>); static_assert( - compare() - quantity_point()), + compare, kilometre, double>() - quantity_point, metre, int>()), length>); static_assert((1_q_m + km).relative().number() == 1001); @@ -159,6 +176,13 @@ static_assert((quantity_point(1_q_m) + 1_q_km).relative().number() == 1001); static_assert((km - 1_q_m).relative().number() == 999); static_assert((quantity_point(1_q_km) - quantity_point(1_q_m)).number() == 999); +template +concept invalid_subtraction = requires(quantity_point, metre, Int> lhs, + quantity_point rhs) { + requires !requires { rhs - lhs; }; +}; +static_assert(invalid_subtraction); + // comparators static_assert(quantity_point(2_q_m) + 1_q_m == quantity_point(3_q_m)); @@ -190,6 +214,14 @@ static_assert(quantity_point(999_q_m) < quantity_point(1_q_km)); static_assert(quantity_point(1000_q_m) >= quantity_point(1_q_km)); 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; }; +}; +static_assert(invalid_comparisons); + // alias units static_assert(quantity_point(2_q_l) + 2_q_ml == quantity_point(2002_q_ml)); @@ -199,19 +231,19 @@ static_assert(2_q_dm3 + quantity_point(2_q_cm3) == quantity_point(2002_q_ml)); // is_quantity_point -static_assert(QuantityPoint>); +static_assert(QuantityPoint, millimetre, int>>); // common_quantity_point static_assert(compare< - common_quantity_point, quantity_point>, - quantity_point>); -static_assert(compare, - quantity_point>, - quantity_point>); -static_assert(compare, - quantity_point>, - quantity_point>); + common_quantity_point, metre, int>, quantity_point, kilometre, int>>, + quantity_point, metre, int>>); +static_assert(compare, kilometre, long long>, + quantity_point, metre, int>>, + quantity_point, metre, long long>>); +static_assert(compare, kilometre, long long>, + quantity_point, millimetre, double>>, + quantity_point, millimetre, double>>); // common_type @@ -224,11 +256,11 @@ static_assert(std::equality_comparable_with>(quantity_point(2_q_km)).relative().number() == +static_assert(quantity_point_cast, metre, int>>(quantity_point(2_q_km)).relative().number() == 2000); static_assert( - quantity_point_cast>(quantity_point(2000_q_m)).relative().number() == 2); -static_assert(quantity_point_cast>(quantity_point(1.23_q_m)).relative().number() == + quantity_point_cast, kilometre, int>>(quantity_point(2000_q_m)).relative().number() == 2); +static_assert(quantity_point_cast, metre, int>>(quantity_point(1.23_q_m)).relative().number() == 1); static_assert(quantity_point_cast>(quantity_point(2_q_km)).relative().number() == 2000); static_assert(quantity_point_cast>(quantity_point(2000_q_m)).relative().number() == 2); @@ -238,6 +270,13 @@ static_assert(quantity_point_cast(quantity_point(2000_q_m)).relative( static_assert(quantity_point_cast(quantity_point(1.23_q_m)).relative().number() == 1); 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)); }; +}; +static_assert(invalid_cast); + // time static_assert(quantity_point{1_q_h} == quantity_point{3600_q_s}); @@ -263,6 +302,6 @@ concept dimensional_analysis = requires(T t) pow<2>(t); }; -static_assert(!dimensional_analysis>); +static_assert(!dimensional_analysis, metre, int>>); } // namespace