Square and cubic UDLs renamed

This commit is contained in:
Mateusz Pusz
2020-01-09 10:03:41 +01:00
parent 159e2c1c02
commit a01c811f5f
13 changed files with 84 additions and 84 deletions
+11 -11
View File
@@ -58,20 +58,20 @@ TEST_CASE("fmt::format on synthesized unit symbols", "[text][fmt]")
SECTION("area")
{
CHECK(fmt::format("{}", 1sq_m) == "1 m²");
CHECK(fmt::format("{}", 1sq_mm) == "1 mm²");
CHECK(fmt::format("{}", 1sq_cm) == "1 cm²");
CHECK(fmt::format("{}", 1sq_km) == "1 km²");
CHECK(fmt::format("{}", 1sq_ft) == "1 ft²");
CHECK(fmt::format("{}", 1m2) == "1 m²");
CHECK(fmt::format("{}", 1mm2) == "1 mm²");
CHECK(fmt::format("{}", 1cm2) == "1 cm²");
CHECK(fmt::format("{}", 1km2) == "1 km²");
CHECK(fmt::format("{}", 1ft2) == "1 ft²");
}
SECTION("volume")
{
CHECK(fmt::format("{}", 1cub_m) == "1 m³");
CHECK(fmt::format("{}", 1cub_mm) == "1 mm³");
CHECK(fmt::format("{}", 1cub_cm) == "1 cm³");
CHECK(fmt::format("{}", 1cub_km) == "1 km³");
CHECK(fmt::format("{}", 1cub_ft) == "1 ft³");
CHECK(fmt::format("{}", 1m3) == "1 m³");
CHECK(fmt::format("{}", 1mm3) == "1 mm³");
CHECK(fmt::format("{}", 1cm3) == "1 cm³");
CHECK(fmt::format("{}", 1km3) == "1 km³");
CHECK(fmt::format("{}", 1ft3) == "1 ft³");
}
SECTION("frequency")
@@ -92,7 +92,7 @@ TEST_CASE("fmt::format on synthesized unit symbols", "[text][fmt]")
SECTION("acceleration")
{
CHECK(fmt::format("{}", 1mps_sq) == "1 m/s²");
CHECK(fmt::format("{}", 1mps2) == "1 m/s²");
}
SECTION("energy")
+3 -3
View File
@@ -41,15 +41,15 @@ TEST_CASE("'pow<N>()' on quantity changes the value and the dimension accordingl
}
SECTION ("'pow<2>(q)' squares both the value and a dimension") {
CHECK(pow<2>(2m) == 4sq_m);
CHECK(pow<2>(2m) == 4m2);
}
SECTION ("'pow<3>(q)' cubes both the value and a dimension") {
CHECK(pow<3>(2m) == 8cub_m);
CHECK(pow<3>(2m) == 8m3);
}
}
TEST_CASE("'sqrt()' on quantity changes the value and the dimension accordingly", "[math][sqrt]")
{
REQUIRE(sqrt(4sq_m) == 2m);
REQUIRE(sqrt(4m2) == 2m);
}
+5 -5
View File
@@ -59,8 +59,8 @@ static_assert(detail::unit_text<dim_velocity, centimetre_per_second>() == "cm/s"
// area
static_assert(std::is_same_v<ratio_divide<centimetre::ratio, dimension_unit<dim_length>::ratio>, ratio<1>>);
static_assert(1cm * 1cm == 1sq_cm);
static_assert(100sq_cm / 10cm == 10cm);
static_assert(1cm * 1cm == 1cm2);
static_assert(100cm2 / 10cm == 10cm);
static_assert(detail::unit_text<dim_area, square_centimetre>() == "cm²");
@@ -80,9 +80,9 @@ static_assert(100dyn / 10Gal == 10g);
// pressure
static_assert(10dyn / 10sq_cm == 1Ba);
static_assert(10dyn / 1Ba == 10sq_cm);
static_assert(1Ba * 10sq_cm == 10dyn);
static_assert(10dyn / 10cm2 == 1Ba);
static_assert(10dyn / 1Ba == 10cm2);
static_assert(1Ba * 10cm2 == 10dyn);
// energy
+2 -2
View File
@@ -29,7 +29,7 @@ namespace {
static_assert(std::is_same_v<decltype(pow<0>(2m)), std::int64_t>);
static_assert(std::is_same_v<decltype(pow<1>(2m)), decltype(2m)>);
static_assert(std::is_same_v<decltype(pow<2>(2m)), decltype(4sq_m)>);
static_assert(std::is_same_v<decltype(sqrt(4sq_m)), decltype(2m)>);
static_assert(std::is_same_v<decltype(pow<2>(2m)), decltype(4m2)>);
static_assert(std::is_same_v<decltype(sqrt(4m2)), decltype(2m)>);
} // namespace
+2 -2
View File
@@ -270,7 +270,7 @@ static_assert((7m % 2).count() == 1);
static_assert((7m % 2m).count() == 1);
static_assert((7km % 2000m).count() == 1000);
static_assert((10sq_km * 10sq_km) / 50sq_km == 2sq_km);
static_assert((10km2 * 10km2) / 50km2 == 2km2);
// comparators
@@ -346,6 +346,6 @@ static_assert(1km / 1s == 1000mps);
static_assert(2kmph * 2h == 4km);
static_assert(2km / 2kmph == 1h);
static_assert(std::is_same_v<decltype(pow<2>(2m)), decltype(4sq_m)>);
static_assert(std::is_same_v<decltype(pow<2>(2m)), decltype(4m2)>);
} // namespace
+3 -3
View File
@@ -65,7 +65,7 @@ static_assert(cgs::length<cgs::centimetre>(100) == 1m);
static_assert(cgs::mass<cgs::gram>(1'000) == 1kg);
static_assert(cgs::time<cgs::second>(1) == 1s);
static_assert(cgs::velocity<cgs::centimetre_per_second>(100) == 1mps);
static_assert(cgs::acceleration<cgs::gal>(100) == 1mps_sq);
static_assert(cgs::acceleration<cgs::gal>(100) == 1mps2);
static_assert(cgs::force<cgs::dyne>(100'000) == 1N);
static_assert(cgs::energy<cgs::erg>(10'000'000) == 1_J);
static_assert(cgs::power<cgs::erg_per_second>(10'000'000) == 1W);
@@ -98,7 +98,7 @@ using namespace units::cgs::literals;
// static_assert(1'000g == 1kg); // ambiguous
static_assert(1s == 1s);
static_assert(100cmps == 1mps);
static_assert(100Gal == 1mps_sq);
static_assert(100Gal == 1mps2);
static_assert(100'000dyn == 1N);
static_assert(10'000'000_erg == 1_J);
static_assert(10'000'000_ergps == 1W);
@@ -131,7 +131,7 @@ static_assert(quantity_cast<cgs::length<cgs::centimetre>>(si::length<si::metre>(
// static_assert(200cm * si::length<si::metre>(2) == si::area<si::square_metre>(4)); // should not compile (unknown dimension)
static_assert(quantity_cast<si::dim_length>(200cm) * si::length<si::metre>(2) == si::area<si::square_metre>(4));
static_assert(200cm * quantity_cast<cgs::dim_length>(si::length<si::metre>(2)) == 40'000sq_cm);
static_assert(200cm * quantity_cast<cgs::dim_length>(si::length<si::metre>(2)) == 40'000cm2);
// TODO Add support for quantity_cast on an unknown_dimension?
// static_assert(quantity_cast<si::area<si::square_metre>>(200cm * si::length<si::metre>(2)) == si::area<si::square_metre>(4));
+22 -22
View File
@@ -122,15 +122,15 @@ static_assert(10Hz * 1min == 600);
static_assert(2 / 1Hz == 2s);
// force
static_assert(10kg * 10mps_sq == 100N);
static_assert(100N / 1mps_sq == 100kg);
static_assert(100N / 1kg == 100mps_sq);
static_assert(10kg * 10mps2 == 100N);
static_assert(100N / 1mps2 == 100kg);
static_assert(100N / 1kg == 100mps2);
// pressure
static_assert(10N / 10sq_m == 1Pa);
static_assert(10N / 1Pa == 10sq_m);
static_assert(1Pa * 10sq_m == 10N);
static_assert(10N / 10m2 == 1Pa);
static_assert(10N / 1Pa == 10m2);
static_assert(1Pa * 10m2 == 10N);
// energy
@@ -147,9 +147,9 @@ static_assert(gigajoule::symbol == "GJ");
static_assert(10N * 10m == 100_J);
static_assert(100_J / 10m == 10N);
static_assert(100_J / 10N == 10m);
static_assert(10Pa * 10cub_m == 100_J);
static_assert(100_J / 10Pa == 10cub_m);
static_assert(100_J / 10cub_m == 10Pa);
static_assert(10Pa * 10m3 == 100_J);
static_assert(100_J / 10Pa == 10m3);
static_assert(100_J / 10m3 == 10Pa);
// power
@@ -215,30 +215,30 @@ static_assert(kilometre_per_hour::symbol == "km/h");
// acceleration
static_assert(10mps / 10s == 1mps_sq);
static_assert(10mps / 1mps_sq == 10s);
static_assert(1mps_sq * 10s == 10mps);
static_assert(10mps / 10s == 1mps2);
static_assert(10mps / 1mps2 == 10s);
static_assert(1mps2 * 10s == 10mps);
static_assert(detail::unit_text<dim_acceleration, metre_per_second_sq>() == "m/s²");
// area
static_assert(10m * 10m == 100sq_m);
static_assert(100sq_m / 10m == 10m);
static_assert(10km * 10km == 100sq_km);
static_assert(1sq_m == 10'000sq_cm);
static_assert(1ha == 10'000sq_m);
static_assert(10m * 10m == 100m2);
static_assert(100m2 / 10m == 10m);
static_assert(10km * 10km == 100km2);
static_assert(1m2 == 10'000cm2);
static_assert(1ha == 10'000m2);
static_assert(detail::unit_text<dim_area, square_metre>() == "m²");
// volume
static_assert(1m * 1m * 1m == 1cub_m);
static_assert(10sq_m * 10m == 100cub_m);
static_assert(10km * 10km * 10km == 1000cub_km);
static_assert(1cub_m == 1'000'000cub_cm);
static_assert(1m * 1m * 1m == 1m3);
static_assert(10m2 * 10m == 100m3);
static_assert(10km * 10km * 10km == 1000km3);
static_assert(1m3 == 1'000'000cm3);
static_assert(1dm * 1dm * 1dm == 1_l);
static_assert(1000_l == 1cub_m);
static_assert(1000_l == 1m3);
static_assert(detail::unit_text<dim_volume, cubic_metre>() == "m³");