feat: solid angle support added

This commit is contained in:
Mateusz Pusz
2022-09-01 12:16:47 +02:00
parent a92a315bda
commit e40a5d631c
3 changed files with 115 additions and 2 deletions
+9 -2
View File
@@ -21,18 +21,20 @@
// SOFTWARE.
#include <units/generic/angle.h>
#include <units/generic/solid_angle.h>
#include <numbers>
namespace {
// plane angle
using namespace units::references;
using namespace units::literals;
static_assert(360 * deg == 1 * rot);
static_assert(400 * grad == 1 * rot);
static_assert(std::numbers::pi * 2 * rad == 1. * rot);
using namespace units::literals;
static_assert(360_q_deg == 1_q_rot);
static_assert(400_q_grad == 1_q_rot);
static_assert(std::numbers::pi * quantity_cast<double>(2._q_rad) == quantity_cast<double>(1._q_rot));
@@ -42,4 +44,9 @@ static_assert(units::aliases::deg<int>(360) == units::aliases::rot<int>(1));
static_assert(units::aliases::grad<int>(400) == units::aliases::rot<int>(1));
static_assert(std::numbers::pi * units::aliases::rad<>(2.) == units::aliases::rot<>(1.));
// solid angle
static_assert(1_q_rad * 1_q_rad == 1_q_sr);
static_assert(1_q_deg * 1_q_deg == 1_q_deg2);
} // namespace