diff --git a/src/core/include/units/bits/derived_unit.h b/src/core/include/units/bits/derived_unit.h index f65b2fdd..097a08c2 100644 --- a/src/core/include/units/bits/derived_unit.h +++ b/src/core/include/units/bits/derived_unit.h @@ -47,7 +47,7 @@ constexpr ratio inverse_if_negative(const ratio& r) template constexpr ratio derived_ratio(exponent_list) { - return (... * inverse_if_negative(pow(Us::ratio) / dimension_unit::ratio)); + return (... * inverse_if_negative(pow(Us::ratio / dimension_unit::ratio))); } template diff --git a/test/unit_test/static/fps_test.cpp b/test/unit_test/static/fps_test.cpp index 1eb7e541..74ddd60e 100644 --- a/test/unit_test/static/fps_test.cpp +++ b/test/unit_test/static/fps_test.cpp @@ -59,6 +59,10 @@ static_assert(100_q_ft2 / 10_q_ft == 10_q_ft); static_assert(detail::unit_text() == basic_symbol_text("ft²", "ft^2")); +// volume +static_assert(1_q_yd * 1_q_yd * 1_q_yd == 1_q_yd3); +static_assert(cubic_yard::ratio / cubic_foot::ratio == ratio(27)); + /* ************** DERIVED DIMENSIONS WITH NAMED UNITS **************** */ // acceleration