From ae7aca5fa0b02eb2d305978ef779cb9becd93708 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 11 May 2021 20:12:46 +0200 Subject: [PATCH] test: uncommented some already supported cases Resolves #206 --- test/unit_test/static/si_cgs_test.cpp | 12 ++++++------ test/unit_test/static/si_fps_test.cpp | 14 +++++++------- test/unit_test/static/si_test.cpp | 8 +++++--- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/test/unit_test/static/si_cgs_test.cpp b/test/unit_test/static/si_cgs_test.cpp index 9907e480..81a67faa 100644 --- a/test/unit_test/static/si_cgs_test.cpp +++ b/test/unit_test/static/si_cgs_test.cpp @@ -107,8 +107,8 @@ namespace cgs_test { // addition -// static_assert(100_q_cm + si::length(1) == si::length(2)); // should not compile (different dimensions) -// static_assert(si::length(1) + 100_q_cm == si::length(2)); // should not compile (different dimensions) +static_assert(100_q_cm + si::length(1) == si::length(2)); +static_assert(si::length(1) + 100_q_cm == si::length(2)); static_assert(quantity_cast>(100_q_cm) + si::length(1) == si::length(2)); static_assert(si::length(1) + quantity_cast>(100_q_cm) == si::length(2)); static_assert(100_q_cm + quantity_cast>(si::length(1)) == 200_q_cm); @@ -116,8 +116,8 @@ static_assert(quantity_cast>(si::length(1) == si::length(4)); // should not compile (different dimensions) -// static_assert(si::length(5) - 100_q_cm == si::length(4)); // should not compile (different dimensions) +static_assert(500_q_cm - si::length(1) == si::length(4)); +static_assert(si::length(5) - 100_q_cm == si::length(4)); static_assert(quantity_cast>(500_q_cm) - si::length(1) == si::length(4)); static_assert(si::length(5) - quantity_cast>(100_q_cm) == si::length(4)); static_assert(500_q_cm - quantity_cast>(si::length(1)) == 400_q_cm); @@ -125,7 +125,7 @@ static_assert(quantity_cast>(si::length(2) == si::area(4)); // should not compile (unknown dimension) +// static_assert(200_q_cm * si::length(2) == si::area(4)); // TODO Add support for comparing of an unknown_dimension static_assert(quantity_cast(200._q_cm) * si::length(2) == si::area(4)); static_assert(200._q_cm * quantity_cast(si::length(2)) == 40'000_q_cm2); @@ -138,7 +138,7 @@ static_assert(200._q_cm * quantity_cast(si::length(4) / 200_q_cm == si::length(2)); // should not compile (unknown dimension) +// static_assert(si::area(4) / 200_q_cm == si::length(2)); // TODO Add support for comparing of an unknown_dimension static_assert(si::area(4) / quantity_cast>(200_q_cm) == si::length(2)); static_assert(quantity_cast>(si::area(4)) / 200._q_cm == 200_q_cm); diff --git a/test/unit_test/static/si_fps_test.cpp b/test/unit_test/static/si_fps_test.cpp index 2af500c6..27fd6dc7 100644 --- a/test/unit_test/static/si_fps_test.cpp +++ b/test/unit_test/static/si_fps_test.cpp @@ -124,8 +124,8 @@ using namespace units::isq::si::fps::references; // addition -// static_assert(si::length(1) + 1 * ft == si::length(1.3048)); // should not compile (different dimensions) -// static_assert(1 * ft / 0.3048 + si::length(1) == si::length(1.3048)); // should not compile (different dimensions) +static_assert(si::length(1) + 1 * ft == si::length(1.3048)); +static_assert(1 * ft + si::length(1) == si::length(1.3048)); static_assert(quantity_cast>(1. * ft / 0.3048) + si::length(1) == si::length(2)); // 1 m in ft + 1 m static_assert(si::length(1) + quantity_cast>(1. * ft / 0.3048) == si::length(2)); // 1 m + 1 m in ft static_assert(1 * ft + quantity_cast>(si::length(0.3048)) == 2 * ft); // 1 ft + 1 ft in m @@ -133,8 +133,8 @@ static_assert(quantity_cast>(si::length(1) == -si::length(0.6952)); // should not compile (different dimensions) -// static_assert(si::length(1) - 1 * ft == si::length(0.6952)); // should not compile (different dimensions) +static_assert(1 * ft - si::length(1) == -si::length(0.6952)); +static_assert(si::length(1) - 1 * ft == si::length(0.6952)); static_assert(quantity_cast>(6. * ft) - si::length(1) > si::length(0.8287) && quantity_cast>(6. * ft) - si::length(1) < si::length(0.8289)); // 6 ft in m - 1 m = ... m static_assert(si::length(5) - quantity_cast>(6 * ft) == si::length(3.1712)); // 5 m - 6 ft in m = ... @@ -143,14 +143,14 @@ static_assert(quantity_cast>(si::length(2) == si::area(1.2192)); // should not compile (unknown dimension) -// static_assert(quantity_cast>(2. * ft) * si::length(2) == si::area(1.2192)); +// static_assert(2 * ft * si::length(2) == si::area(1.2192)); // TODO Add support for comparing of an unknown_dimension +static_assert(quantity_cast>(2. * ft) * si::length(2) == si::area(1.2192)); static_assert(quantity_cast>(2. * ft) * si::length(0.6096) == si::area(0.371612160)); // 2 ft * 2 ft == 4 sq ft static_assert(2. * ft * quantity_cast>(si::length(0.6096)) == 4._q_ft2); // division -// static_assert(si::area(4) / 200_q_cm == si::length(2)); // should not compile (unknown dimension) +// static_assert(si::area(4) / 200_q_cm == si::length(2)); // TODO Add support for comparing of an unknown_dimension static_assert(si::area(1.48644864) / quantity_cast>(4 * ft) == si::length(1.2192)); // 16 ft2 / 4 ft = 4 ft static_assert(quantity_cast>(si::area(1.48644864)) / (4. * ft) == 4. * ft); // 16 ft2 / 4 ft = 4 ft diff --git a/test/unit_test/static/si_test.cpp b/test/unit_test/static/si_test.cpp index 29b27fa7..bc7e16fb 100644 --- a/test/unit_test/static/si_test.cpp +++ b/test/unit_test/static/si_test.cpp @@ -246,17 +246,17 @@ static_assert(kilogray::symbol == "kGy"); static_assert(10_q_m / 5_q_s == 2_q_m_per_s); static_assert(10 / 5_q_s * 1_q_m == 2_q_m_per_s); static_assert(1_q_km / 1_q_s == 1000_q_m_per_s); -// static_assert(1_q_km / 1_q_h == 1_q_km_per_h); // should not compile +static_assert(1_q_km / 1_q_h == 1_q_km_per_h); static_assert(1.0_q_km / 1_q_h == 1_q_km_per_h); static_assert(1000.0_q_m / 3600.0_q_s == 1_q_km_per_h); static_assert(2_q_km_per_h * 2_q_h == 4_q_km); -// static_assert(2_q_km_per_h * 15_q_min == 500_q_m); // should not compile +static_assert(2_q_km_per_h * 15_q_min == 500_q_m); static_assert(2_q_km_per_h * 15.0_q_min == 500_q_m); static_assert(2.0_q_km_per_h * 15_q_min == 500_q_m); static_assert(2_q_km / 2_q_km_per_h == 1_q_h); -// static_assert(2000_q_m / 2_q_km_per_h == 1_q_h); // should not compile +static_assert(2000_q_m / 2_q_km_per_h == 1_q_h); static_assert(quantity_cast(2000_q_m) / 2_q_km_per_h == 1_q_h); static_assert(detail::unit_text() == "m/s"); @@ -382,6 +382,8 @@ static_assert(1_q_J_per_mol * 1_q_mol_per_m3 * 1_q_m3 == 1_q_N * 1_q_m); static_assert(detail::unit_text() == "J/mol"); // angular velocity + static_assert(1_q_rad / 1_q_s == 1_q_rad_per_s); static_assert(detail::unit_text() == basic_symbol_text("ω", "w")); + } // namespace