test: unit tests for creating a quantity from a volatile variable

This commit is contained in:
Mateusz Pusz
2024-09-06 18:07:33 +02:00
parent 664d52c0c0
commit 3d39472f46
2 changed files with 10 additions and 0 deletions

View File

@ -73,3 +73,9 @@ TEST_CASE("Issue 474 is fixed", "[conversion][radical]")
REQUIRE(within_4_ulps(sqrt(val_issue_474).numerical_value_in(m / s),
sqrt(val_issue_474.numerical_value_in(m * m / s / s))));
}
TEST_CASE("Volatile representation type", "[volatile]")
{
volatile std::int16_t vint = 123;
REQUIRE(quantity(vint * m).numerical_value_in(m) == 123);
}

View File

@ -115,6 +115,10 @@ static_assert(quantity<isq::length[m]>::unit == si::metre);
static_assert(is_same_v<quantity<isq::length[m]>::rep, double>);
static_assert(is_same_v<quantity<isq::length[m], int>::rep, int>);
[[maybe_unused]] volatile std::int16_t vint = 123;
static_assert(is_same_v<decltype(quantity(vint * m))::rep, std::int16_t>);
static_assert(is_same_v<decltype(quantity(vint, m))::rep, std::int16_t>);
////////////////////////////
// static member functions