6 #include "../vnix/units/statdim-base.hpp" 10 template <uint64_t D>
using statdim_base = vnix::units::statdim_base<D>;
14 TEST_CASE(
"Check dimension on dyndim_base from dim.",
"[dyndim-base]") {
15 dim
constexpr d(-1, 1, 0, 0, 0);
22 TEST_CASE(
"Sum & diff require same dimension for dyndim.",
"[dyndim-base]") {
23 dim
constexpr d1(-1, 1, 1, 0, 0);
24 dim
constexpr d2(+1, 0, 0, 0, 0);
30 REQUIRE_NOTHROW(ddb
.sum(ddb
));
31 REQUIRE_NOTHROW(ddb
.sum(sdb1
));
33 REQUIRE_NOTHROW(ddb
.diff(sdb1
));
40 REQUIRE_THROWS(ddb
.sum(sdb2
));
45 TEST_CASE(
"Prod & quot change dimension for dyndim.",
"[dyndim-base]") {
46 dim
constexpr d1(-1, +1, +1, 0, 0);
47 dim
constexpr d2(+1, +0, +0, 0, 0);
48 dim
constexpr d3(+0, +1, +1, 0, 0);
49 dim
constexpr d4(-2, +1, +1, 0, 0);
50 dim
constexpr d5(+1, -1, -1, 0, 0);
52 dyndim_base ddb1
(d1
), ddb2
(d2
);
63 TEST_CASE(
"Pow and sqrt change dimension for dyndim.",
"[dyndim-base]") {
66 dim
constexpr d1(-1, +1, +1, 0, 0);
67 dim
constexpr d2(-2, +2, +2, 0, 0);
68 dim
constexpr d3(rat
(-1
, 2
), rat
(1
, 2
), rat
(1
, 2
), 0, 0);
constexpr word encode() const
Encode data for this dim into a word.
constexpr recip_basedim recip() const
Dimension for reciprocal of dimensioned value.
constexpr dyndim_base diff(B const &b) const
Dimension for difference of dimensioned values.
Base-type for a dimensioned value whose dimension is specified, perhaps dynamically at run-time...
constexpr dim d() const
Exponent for each unit in dimensioned quantity.
constexpr dyndim_base(dim dd)
Initialize from exponents representing dimension.
constexpr rational(stype n=0, stype d=1)
Initialize from numerator and denominator.
constexpr dyndim_base quot(B const &b) const
Dimension for quotient of dimensioned values.
constexpr dyndim_base pow(dim::rat p) const
Dimension for rational power of dimensioned value.
constexpr dyndim_base sum(B const &b) const
Dimension for sum of dimensioned values.
constexpr dyndim_base prod(B const &b) const
Dimension for product of dimensioned values.
constexpr bool operator==(basic_dim const &d) const
constexpr dyndim_base sqrt() const
Dimension for square-root of dimensioned value.
Thomas E. Vaughan's public software.
Classes and functions supporting a model of physically dimensioned quantities.
constexpr dyndim_base pow() const
Dimension for rational power of dimensioned value.