diff --git a/test/unit_test/static/quantity_point_test.cpp b/test/unit_test/static/quantity_point_test.cpp index b656ec81..c6a0d35a 100644 --- a/test/unit_test/static/quantity_point_test.cpp +++ b/test/unit_test/static/quantity_point_test.cpp @@ -43,6 +43,10 @@ inline constexpr struct ground_level : relative_point_origin{42 * isq::height[m]}> { } ground_level; +inline constexpr struct tower_peak : + relative_point_origin{42 * isq::height[m]}> { +} tower_peak; + inline constexpr struct everest_base_camp : relative_point_origin{5364 * m}> { } everest_base_camp; @@ -162,10 +166,16 @@ static_assert(quantity_point::reference == isq::he static_assert(quantity_point::quantity_spec == isq::height); static_assert(quantity_point::dimension == isq::dim_length); static_assert(quantity_point::unit == si::metre); -static_assert( - is_of_type::point_origin, std::remove_const_t>); +static_assert(is_of_type::point_origin, struct ground_level>); static_assert(is_of_type::absolute_point_origin, struct mean_sea_level>); +static_assert(quantity_point::reference == isq::height[m]); +static_assert(quantity_point::quantity_spec == isq::height); +static_assert(quantity_point::dimension == isq::dim_length); +static_assert(quantity_point::unit == si::metre); +static_assert(is_of_type::point_origin, struct tower_peak>); +static_assert(is_of_type::absolute_point_origin, struct mean_sea_level>); + ////////////////// // member types @@ -383,11 +393,31 @@ static_assert(quantity_point(dimensionless(1 * one)).relative() == 1 * one); static_assert(quantity_point(42 * m).relative() == 42 * m); static_assert(quantity_point(42 * m).relative() == 42 * m); +static_assert(quantity_point(42 * m).relative() == 42 * m); static_assert(quantity_point(quantity_point(42 * m)) .relative() == 84 * m); +static_assert(quantity_point(quantity_point(42 * m)) + .relative() == 126 * m); + static_assert(quantity_point(quantity_point(84 * m)) .relative() == 42 * m); +static_assert(quantity_point(quantity_point(42 * m)) + .relative() == 84 * m); + +static_assert(quantity_point(quantity_point(42 * m)) + .relative() == -42 * m); +static_assert(quantity_point(quantity_point(84 * m)) + .relative() == 42 * m); + +static_assert(quantity_point(42 * m).point_from(mean_sea_level).relative() == 84 * m); +static_assert(quantity_point(42 * m).point_from(mean_sea_level).relative() == 126 * m); + +static_assert(quantity_point(84 * m).point_from(ground_level).relative() == 42 * m); +static_assert(quantity_point(42 * m).point_from(ground_level).relative() == 84 * m); + +static_assert(quantity_point(42 * m).point_from(tower_peak).relative() == -42 * m); +static_assert(quantity_point(84 * m).point_from(tower_peak).relative() == 42 * m); /////////////////////////////////// @@ -405,8 +435,27 @@ static_assert(quantity_point(42 * m).absolute() == static_assert(quantity_point(quantity_point(42 * m)) .absolute() == 84 * m); +static_assert(quantity_point(quantity_point(42 * m)) + .absolute() == 126 * m); + static_assert(quantity_point(quantity_point(84 * m)) .absolute() == 84 * m); +static_assert(quantity_point(quantity_point(42 * m)) + .absolute() == 126 * m); + +static_assert(quantity_point(quantity_point(42 * m)) + .absolute() == 42 * m); +static_assert(quantity_point(quantity_point(84 * m)) + .absolute() == 126 * m); + +static_assert(quantity_point(42 * m).point_from(mean_sea_level).absolute() == 84 * m); +static_assert(quantity_point(42 * m).point_from(mean_sea_level).absolute() == 126 * m); + +static_assert(quantity_point(84 * m).point_from(ground_level).absolute() == 84 * m); +static_assert(quantity_point(42 * m).point_from(ground_level).absolute() == 126 * m); + +static_assert(quantity_point(42 * m).point_from(tower_peak).absolute() == 42 * m); +static_assert(quantity_point(84 * m).point_from(tower_peak).absolute() == 126 * m); ///////////////////////////////////