Add new tests for base dimension of quanties of the same kind and for derived dimensions. Remove temporary helper objects.

This commit is contained in:
jvocht
2025-01-11 17:31:03 +01:00
parent 3cd80dea87
commit f6940e224c

View File

@ -82,22 +82,23 @@ static_assert(!Dimension<struct si::metre>);
static_assert(!Dimension<int>);
// DimensionOf
inline constexpr struct isq::dim_length tdimlength;
inline constexpr struct isq::dim_time tdimtime;
inline constexpr struct isq::length tlength;
inline constexpr struct isq::time ttime;
static_assert(DimensionOf<struct isq::dim_length, tdimlength>);
static_assert(!DimensionOf<struct isq::dim_length, tdimtime>);
static_assert(!DimensionOf<struct isq::dim_length, tlength>);
static_assert(!DimensionOf<struct isq::dim_length, ttime>);
static_assert(!DimensionOf<struct isq::dim_time, tdimlength>);
static_assert(!DimensionOf<struct isq::dim_time, tlength>);
static_assert(!DimensionOf<struct isq::length, tdimlength>);
static_assert(!DimensionOf<struct isq::length, tdimtime>);
static_assert(!DimensionOf<struct isq::length, tlength>);
static_assert(!DimensionOf<struct isq::length, ttime>);
static_assert(!DimensionOf<struct isq::time, tdimlength>);
static_assert(!DimensionOf<struct isq::time, tlength>);
static_assert(DimensionOf<struct isq::dim_length, isq::dim_length>);
static_assert(DimensionOf<struct isq::dim_length, isq::height.dimension>);
static_assert(DimensionOf<struct isq::dim_length, isq::radius.dimension>);
static_assert(!DimensionOf<struct isq::dim_length, isq::length>);
static_assert(!DimensionOf<struct isq::length, isq::dim_length>);
static_assert(!DimensionOf<struct isq::length, isq::length>);
static_assert(!DimensionOf<struct isq::dim_length, isq::dim_time>);
static_assert(!DimensionOf<struct isq::dim_length, isq::time>);
static_assert(!DimensionOf<struct isq::dim_time, isq::dim_length>);
static_assert(!DimensionOf<struct isq::dim_time, isq::length>);
static_assert(!DimensionOf<struct isq::length, isq::dim_time>);
static_assert(!DimensionOf<struct isq::length, isq::time>);
static_assert(!DimensionOf<struct isq::time, isq::dim_length>);
static_assert(!DimensionOf<struct isq::time, isq::length>);
static_assert(DimensionOf<decltype(isq::dim_length / isq::dim_time), isq::speed.dimension>);
static_assert(DimensionOf<decltype(isq::force.dimension * isq::time.dimension), isq::impulse.dimension>);
static_assert(DimensionOf<decltype(isq::angular_momentum.dimension / isq::angular_velocity.dimension), isq::moment_of_inertia.dimension>);
// QuantitySpec
inline constexpr auto speed = isq::length / isq::time;