From 7e09a5f810d47ff7513e36d8342dc2c28f52cba2 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Mon, 7 Nov 2022 16:19:42 -1000 Subject: [PATCH] test: more static unit tests added --- test/unit_test/static/dimension_test.cpp | 13 +++++++++++++ test/unit_test/static/unit_test.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/test/unit_test/static/dimension_test.cpp b/test/unit_test/static/dimension_test.cpp index 1d1e0e73..f45e2dbd 100644 --- a/test/unit_test/static/dimension_test.cpp +++ b/test/unit_test/static/dimension_test.cpp @@ -108,6 +108,19 @@ static_assert(is_of_type>>>); static_assert(is_of_type<1 / (speed * speed) * length, derived_dimension, per>>); +static_assert( + is_of_type<(length * length) * (time * time), derived_dimension, units::power>>); +static_assert( + is_of_type<(time * time) * (length * length), derived_dimension, units::power>>); + +static_assert(is_of_type>>); +static_assert(is_of_type>>>); +static_assert( + is_of_type>>>); +static_assert( + is_of_type>>>); +static_assert(is_of_type>>>); + template concept invalid_operations = requires { requires !requires { t < t; }; diff --git a/test/unit_test/static/unit_test.cpp b/test/unit_test/static/unit_test.cpp index 9ead5e96..0c56ffee 100644 --- a/test/unit_test/static/unit_test.cpp +++ b/test/unit_test/static/unit_test.cpp @@ -22,6 +22,7 @@ #include "test_tools.h" #include +#include #include #include #include @@ -295,6 +296,18 @@ static_assert(is_of_type); static_assert(is_of_type>>); static_assert(is_of_type>>); +static_assert(is_of_type>>); +static_assert(is_of_type<1 / (1 / second), second_>); +static_assert(is_of_type); + +static_assert(is_of_type<1 / pascal, derived_unit>>); +static_assert(is_of_type<1 / gram * metre * square, derived_unit, per>>); +static_assert(is_of_type<1 / (gram / (metre * square)), derived_unit, per>>); +static_assert(is_of_type / gram), derived_unit, per>>); +static_assert(is_of_type / gram, derived_unit, per>>); +static_assert(is_of_type<(metre * square / gram) * one, derived_unit, per>>); +static_assert(is_of_type / gram * one, derived_unit, per>>); + static_assert(std::is_same_v); static_assert(std::is_same_v); static_assert(std::is_same_v); @@ -317,6 +330,14 @@ static_assert(is_of_type>>); static_assert(is_of_type>>); static_assert(get_canonical_unit(km_per_h).mag == mag); +static_assert(is_of_type>>); +static_assert(is_of_type); + +static_assert( + is_of_type>>>); +static_assert( + is_of_type, per>>); + // operations commutativity constexpr auto u1 = mag<1000> * kilometre / hour; static_assert(is_of_type, derived_unit>>>); @@ -506,6 +527,9 @@ static_assert(unit_symbol(mag<60> * second, {.encoding = ascii}) == "[6 x 10^1] // derived units static_assert(unit_symbol(one) == ""); +static_assert(unit_symbol(percent) == "%"); +static_assert(unit_symbol(per_mille) == "‰"); +static_assert(unit_symbol(per_mille, {.encoding = ascii}) == "%o"); static_assert(unit_symbol(square) == "m²"); static_assert(unit_symbol(square, {.encoding = ascii}) == "m^2"); static_assert(unit_symbol(cubic) == "m³");