xo-unit: kitchen-sink doc + build improvements + 1 bug fix
This commit is contained in:
parent
0664af34c5
commit
412a0ba163
45 changed files with 1712 additions and 472 deletions
38
example/ex_su/ex_su.cpp
Normal file
38
example/ex_su/ex_su.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/** @file ex_su.cpp **/
|
||||
|
||||
#include "xo/unit/scaled_unit.hpp"
|
||||
#include "xo/unit/scaled_unit_iostream.hpp"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main() {
|
||||
using namespace xo::qty;
|
||||
|
||||
constexpr auto u_prod = u::meter * u::kilometer;
|
||||
|
||||
static_assert(u_prod[0].bu() == detail::bu::meter);
|
||||
static_assert(u_prod[0].power() == power_ratio_type(2));
|
||||
static_assert(u_prod.outer_scale_factor_ == xo::ratio::ratio<int64_t>(1000));
|
||||
static_assert(u_prod.outer_scale_sq_ == 1.0); // used if fractional dimension
|
||||
|
||||
constexpr auto u_div = u::meter / u::kilometer;
|
||||
|
||||
static_assert(u_div.n_bpu() == 0);
|
||||
static_assert(u_div.outer_scale_factor_ == xo::ratio::ratio<int64_t>(1,1000));
|
||||
static_assert(u_prod.outer_scale_sq_ == 1.0); // used if fractional dimension
|
||||
|
||||
constexpr auto u2_prod = u::meter * u::hour * u::kilometer * u::minute;
|
||||
|
||||
static_assert(u2_prod.n_bpu() == 2);
|
||||
static_assert(u2_prod[0].bu() == detail::bu::meter);
|
||||
static_assert(u2_prod[1].bu() == detail::bu::hour);
|
||||
// *1000 from converting kilometers -> meters
|
||||
// /60 from converting minutes -> hours
|
||||
// 1000/60 = 50/3 in lowest terms
|
||||
static_assert(u2_prod.outer_scale_factor_ == xo::ratio::ratio<int64_t>(50,3)); // used if fractional dimension
|
||||
static_assert(u2_prod.outer_scale_sq_ == 1.0); // used if fractional dimension
|
||||
}
|
||||
|
||||
/** end ex_su.cpp **/
|
||||
Loading…
Add table
Add a link
Reference in a new issue