13 std::vector<std::pair<std::string,std::string>> unit_tests = {
24 {
"1_m^2",
"1e6_mm^2"},
25 {
"1_cm^2",
"100_mm^2"},
28 {
"1_m^3",
"1e9_mm^3"},
29 {
"1_cm^3",
"1000_mm^3"},
43 {
"1_tonne",
"1000_kg"},
44 {
"1_lb",
"0.45359237_kg"},
45 {
"1_oz",
"0.0283495_kg"},
48 {
"1_N",
"1_kg*m/s^2"},
50 {
"1_lbf",
"4.44822162_N"},
57 {
"1_psi",
"6894.76_Pa"},
63 {
"1_eV",
"1.602176634e-19_J"},
71 {
"1_m/Pa/s",
"1e+3_mm/kPa/ms"},
72 {
"1_m^3/J/s",
"1e+9_mm^3/kJ/ms"},
73 {
"1_m^3/Pa/s",
"1e+9_mm^3/kPa/ms"},
76 {
"1_W/m/K",
"1e3_mW/m/K"},
77 {
"1_m^2/s",
"1e6_mm^2/s"},
80 {
"1_m/s",
"1e3_mm/s"},
81 {
"1_m/s^2",
"1e3_mm/s^2"},
82 {
"1_km/hr",
"0.27777778_m/s"},
96 {
"1_N/m^2",
"1_kg/m/s^2"},
99 {
"1_J",
"1_kg*m^2/s^2"},
100 {
"1_N",
"1_kg*m/s^2"},
107 {
"1E-12_m/Pa/s",
"1E-9_mm/kPa/ms"},
108 {
"1E-15_m^3/J/s",
"1E-15_mm^3/J/ms"},
114 for (
auto unit_test : unit_tests)
121 catch(std::runtime_error &e)
135 catch(std::runtime_error &e)
165 Util::Message(
INFO,unit_test.first,
" resolved value does not match ",unit_test.second);
int Equivalence(int verbose=0)
void Message(std::string file, std::string func, int line, Args const &... args)
bool isType(const Unit &test) const
static Unit Parse(double val, std::string unitstring, bool verbose=false)
double normalized_value() const