Unit tests for alias_unit added

This commit is contained in:
Mateusz Pusz
2020-05-08 21:18:16 +02:00
parent a330f9a8f9
commit 1830735544
2 changed files with 50 additions and 0 deletions

View File

@@ -155,6 +155,48 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]")
}
}
SECTION("quantity with an alias unit")
{
const auto q = 2q_l;
os << q;
SECTION("iostream")
{
CHECK(os.str() == "2 l");
}
SECTION("fmt with default format {} on a quantity")
{
CHECK(fmt::format("{}", q) == os.str());
}
SECTION("fmt with format {:%Q %q} on a quantity")
{
CHECK(fmt::format("{:%Q %q}", q) == os.str());
}
}
SECTION("quantity with a prefixed alias unit")
{
const auto q = 2q_ml;
os << q;
SECTION("iostream")
{
CHECK(os.str() == "2 ml");
}
SECTION("fmt with default format {} on a quantity")
{
CHECK(fmt::format("{}", q) == os.str());
}
SECTION("fmt with format {:%Q %q} on a quantity")
{
CHECK(fmt::format("{:%Q %q}", q) == os.str());
}
}
SECTION("quantity with a deduced unit")
{
SECTION("coherent derived unit")

View File

@@ -24,6 +24,7 @@
#include "units/physical/si/area.h"
#include "units/physical/si/frequency.h"
#include "units/physical/si/velocity.h"
#include "units/physical/si/volume.h"
#include <chrono>
#include <utility>
@@ -202,6 +203,13 @@ static_assert(999q_m < 1q_km);
static_assert(1000q_m >= 1q_km);
static_assert(1000q_m <= 1q_km);
// alias units
static_assert(2q_l + 2q_ml == 2002q_ml);
static_assert(2q_l + 2q_ml == 2002q_cm3);
static_assert(2q_l + 2q_cm3 == 2002q_ml);
static_assert(2q_dm3 + 2q_cm3 == 2002q_ml);
// is_quantity
static_assert(Quantity<length<millimetre, int>>);