uom/si/
temperature_gradient.rs1quantity! {
4 quantity: TemperatureGradient; "temperature gradient";
6 dimension: ISQ<
8 N1, Z0, Z0, Z0, P1, Z0, Z0>; units {
16 @kelvin_per_kilometer: prefix!(none) / prefix!(kilo); "K/km", "kelvin per kilometer",
17 "kelvins per kilometer";
18 @kelvin_per_hectometer: prefix!(none) / prefix!(hecto); "K/hm", "kelvin per hectometer",
19 "kelvins per hectometer";
20 @kelvin_per_meter: prefix!(none); "K/m", "kelvin per meter", "kelvins per meter";
21 @kelvin_per_centimeter: prefix!(none) / prefix!(centi); "K/cm", "kelvin per centimeter",
22 "kelvins per centimeter";
23 @kelvin_per_millimeter: prefix!(none) / prefix!(milli); "K/mm", "kelvin per millimeter",
24 "kelvins per millimeter";
25 @kelvin_per_micrometer: prefix!(none) / prefix!(micro); "K/µm", "kelvin per micrometer",
26 "kelvins per micrometer";
27 }
28}
29
30#[cfg(test)]
31mod test {
32 storage_types! {
33 use crate::num::One;
34 use crate::si::temperature_gradient as tg;
35 use crate::si::temperature_interval as ti;
36 use crate::si::quantities::*;
37 use crate::si::length as l;
38 use crate::tests::Test;
39
40 #[test]
41 fn check_dimension() {
42 let _: TemperatureGradient<V> = TemperatureInterval::new::<ti::kelvin>(V::one())
43 / Length::new::<l::meter>(V::one());
44 }
45
46 #[test]
47 fn check_units() {
48 test::<ti::kelvin, l::meter, tg::kelvin_per_meter>();
49 test::<ti::kelvin, l::centimeter, tg::kelvin_per_centimeter>();
50 test::<ti::kelvin, l::millimeter, tg::kelvin_per_millimeter>();
51 test::<ti::kelvin, l::micrometer, tg::kelvin_per_micrometer>();
52 test::<ti::kelvin, l::hectometer, tg::kelvin_per_hectometer>();
53 test::<ti::kelvin, l::kilometer, tg::kelvin_per_kilometer>();
54
55 fn test<TI: ti::Conversion<V>, L: l::Conversion<V>, TG: tg::Conversion<V>>() {
56 Test::assert_approx_eq(&TemperatureGradient::new::<TG>(V::one()),
57 &(TemperatureInterval::new::<TI>(V::one())
58 / Length::new::<L>(V::one())));
59 }
60 }
61 }
62}