diff --git a/src/si/electrical_mobility.rs b/src/si/electrical_mobility.rs new file mode 100644 index 00000000..b9f69e88 --- /dev/null +++ b/src/si/electrical_mobility.rs @@ -0,0 +1,56 @@ +//! Electrical mobility (base unit square meter per volt second, kg⁻¹ ·s² · A). + +quantity! { + /// Electrical mobility (base unit square meter per volt second, kg⁻¹ ·s² · A). + quantity: ElectricalMobility; "electrical mobility"; + /// Dimension of electrical mobility, M⁻¹T²I⁻¹ (base unit square meter per volt second, kg⁻¹ ·s² · A). + dimension: ISQ< + Z0, // length + N1, // mass + P2, // time + P1, // electric current + Z0, // thermodynamic temperature + Z0, // amount of substance + Z0>; // luminous intensity + units { + @square_meter_per_volt_second: prefix!(none); "m²/(V·s)", + "square meter per volt second", "square meter per volt seconds"; + @square_centimeter_per_volt_second: prefix!(centi) * prefix!(centi); "cm²/(V·s)", + "square centimeter per volt second", "square centimeter per volt seconds"; + } +} + +#[cfg(test)] +mod test { + storage_types! { + use crate::num::One; + use crate::si::electrical_mobility as em; + use crate::si::electric_potential as ep; + use crate::si::time as t; + use crate::si::length as l; + use crate::si::quantities::*; + use crate::tests::Test; + + #[test] + fn check_dimension() { + let _: ElectricalMobility = Length::new::(V::one()) + * Length::new::(V::one()) + / Time::new::(V::one()) + / ElectricPotential::new::(V::one()); + } + + #[test] + fn check_units() { + test::(); + test::(); + + fn test, EP: ep::Conversion, T: t::Conversion, EM: em::Conversion>() { + Test::assert_approx_eq(&ElectricalMobility::new::(V::one()), + &(Length::new::(V::one()) + * Length::new::(V::one()) + / ElectricPotential::new::(V::one()) + / Time::new::(V::one()))); + } + } + } +} diff --git a/src/si/mod.rs b/src/si/mod.rs index 175cddf6..8822f83e 100644 --- a/src/si/mod.rs +++ b/src/si/mod.rs @@ -63,6 +63,7 @@ system! { electric_current::ElectricCurrent, electric_potential::ElectricPotential, electrical_conductance::ElectricalConductance, + electrical_mobility::ElectricalMobility, electrical_resistance::ElectricalResistance, energy::Energy, force::Force,