Skip to content

Commit

Permalink
Add Curvature.
Browse files Browse the repository at this point in the history
  • Loading branch information
jhelovuo committed Feb 14, 2020
1 parent 3a236e5 commit fa83c7a
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
57 changes: 57 additions & 0 deletions src/si/curvature.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
//! [Curvature](https://en.wikipedia.org/wiki/Curvature) (base unit radian per meter, m⁻¹).

quantity! {
/// Curvature (base unit radian per meter, m⁻¹).
quantity: Curvature; "curvature";
/// Dimension of curvature, L⁻¹ (base unit radian per meter, m⁻¹).
dimension: ISQ<
N1, // length
Z0, // mass
Z0, // time
Z0, // electric current
Z0, // thermodynamic temperature
Z0, // amount of substance
Z0>; // luminous intensity
kind: dyn (::si::marker::AngleKind);
units {
@radian_per_meter: 1.0_E0; "rad/m", "radian per meter", "radians per meter";
@degree_per_meter: 1.745_329_251_994_329_5_E-2; "°/m", "degree per meter",
"degrees per meter";

@radian_per_millimeter: 1000.0; "rad/mm", "radian per millimeter", "radians per millimeter";
@degree_per_millimeter: 1.745_329_251_994_329_5_E1; "°/mm", "degree per millimeter",
"degrees per millimeter";
}
}

#[cfg(test)]
mod tests {
storage_types! {
use num::One;
use si::quantities::*;
use si::curvature as c;
use si::length as l;
use si::angle as a;
use tests::Test;

#[test]
fn check_dimension() {
let _: Curvature<V> =
(Angle::new::<a::radian>(V::one())
/ Length::new::<l::meter>(V::one())).into();
}

#[test]
fn check_units() {
test::<a::radian, l::meter, c::radian_per_meter>();
test::<a::degree, l::meter, c::degree_per_meter>();
test::<a::radian, l::millimeter, c::radian_per_millimeter>();
test::<a::degree, l::millimeter, c::degree_per_millimeter>();

fn test<A: a::Conversion<V>, L: l::Conversion<V>, C: c::Conversion<V>>() {
Test::assert_approx_eq(&Curvature::new::<C>(V::one()),
&(Angle::new::<A>(V::one()) / Length::new::<L>(V::one())).into());
}
}
}
}
1 change: 1 addition & 0 deletions src/si/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ system! {
capacitance::Capacitance,
catalytic_activity::CatalyticActivity,
catalytic_activity_concentration::CatalyticActivityConcentration,
curvature::Curvature,
electric_charge::ElectricCharge,
electric_current::ElectricCurrent,
electric_potential::ElectricPotential,
Expand Down

0 comments on commit fa83c7a

Please sign in to comment.