uom/si/
linear_number_rate.rs1quantity! {
4 quantity: LinearNumberRate; "linear number rate";
6 dimension: ISQ<
8 N1, Z0, N1, Z0, Z0, Z0, Z0>; kind: dyn (crate::si::marker::ConstituentConcentrationKind);
16 units {
17 @per_kilometer_second: prefix!(none) / prefix!(kilo); "km⁻¹ · s⁻¹", "per kilometer second",
18 "per kilometer second";
19 @per_meter_second: prefix!(none); "m⁻¹ · s⁻¹", "per meter second", "per meter second";
20 @per_centimeter_second: prefix!(none) / prefix!(centi); "cm⁻¹ · s⁻¹",
21 "per centimeter second", "per centimeter second";
22 @per_millimeter_second: prefix!(none) / prefix!(milli); "mm⁻¹ · s⁻¹",
23 "per millimeter second", "per millimeter second";
24
25 @per_foot_second: prefix!(none) / 3.048_E-1; "ft⁻¹ · s⁻¹", "per foot second",
26 "per foot second";
27 @per_foot_survey_second: prefix!(none) / 3.048_006_E-1; "ft⁻¹ (U.S. survey) · s⁻¹",
28 "per foot (U.S. survey) second", "per foot (U.S. survey) second";
29 @per_inch_second: prefix!(none) / 2.54_E-2; "in⁻¹ · s⁻¹", "per inch second",
30 "per inch second";
31 @per_mile_second: prefix!(none) / 1.609_344_E3; "mi⁻¹ · s⁻¹", "per mile second",
32 "per mile second";
33 @per_mile_survey_second: prefix!(none) / 1.609_347_E3; "mi⁻¹ (U.S. survey) · s⁻¹",
34 "per mile (U.S. survey) second", "per mile (U.S. survey) second";
35 @per_yard_second: prefix!(none) / 9.144_E-1; "yd⁻¹ · s⁻¹", "per yard second",
36 "per yard second";
37 }
38}
39
40#[cfg(test)]
41mod test {
42 storage_types! {
43 use crate::num::One;
44 use crate::si::linear_number_rate as lnr;
45 use crate::si::quantities::*;
46 use crate::si::time as t;
47 use crate::si::length as l;
48 use crate::tests::Test;
49
50 #[test]
51 fn check_dimension() {
52 let _: LinearNumberRate<V> = (V::one()
53 / Time::new::<t::second>(V::one())
54 / Length::new::<l::meter>(V::one())).into();
55 }
56
57 #[test]
58 fn check_units() {
59 test::<lnr::per_kilometer_second, l::kilometer, t::second>();
60 test::<lnr::per_meter_second, l::meter, t::second>();
61 test::<lnr::per_centimeter_second, l::centimeter, t::second>();
62 test::<lnr::per_millimeter_second, l::millimeter, t::second>();
63
64 test::<lnr::per_foot_second, l::foot, t::second>();
65 test::<lnr::per_foot_survey_second, l::foot_survey, t::second>();
66 test::<lnr::per_inch_second, l::inch, t::second>();
67 test::<lnr::per_mile_second, l::mile, t::second>();
68 test::<lnr::per_mile_survey_second, l::mile_survey, t::second>();
69 test::<lnr::per_yard_second, l::yard, t::second>();
70
71 fn test<LNR: lnr::Conversion<V>, L: l::Conversion<V>, T: t::Conversion<V>>() {
72 Test::assert_approx_eq(&LinearNumberRate::new::<LNR>(V::one()),
73 &(V::one()
74 / Time::new::<T>(V::one())
75 / Length::new::<L>(V::one())).into());
76 }
77 }
78 }
79}