From 3d39472f46bae04ccf5c540dbab53ae5c1e2c383 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Fri, 6 Sep 2024 18:07:33 +0200 Subject: [PATCH] test: unit tests for creating a quantity from a `volatile` variable --- test/runtime/quantity_test.cpp | 6 ++++++ test/static/quantity_test.cpp | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/test/runtime/quantity_test.cpp b/test/runtime/quantity_test.cpp index 151845a7..14dec787 100644 --- a/test/runtime/quantity_test.cpp +++ b/test/runtime/quantity_test.cpp @@ -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); +} diff --git a/test/static/quantity_test.cpp b/test/static/quantity_test.cpp index caba5705..89f169bb 100644 --- a/test/static/quantity_test.cpp +++ b/test/static/quantity_test.cpp @@ -115,6 +115,10 @@ static_assert(quantity::unit == si::metre); static_assert(is_same_v::rep, double>); static_assert(is_same_v::rep, int>); +[[maybe_unused]] volatile std::int16_t vint = 123; +static_assert(is_same_v); +static_assert(is_same_v); + //////////////////////////// // static member functions