uom/si/
linear_power_density.rs

1//! Linear power density (base unit watt per meter, m · kg · s⁻³).
2
3quantity! {
4    /// Linear power density (base unit watt per meter, m · kg · s⁻³).
5    quantity: LinearPowerDensity; "linear power density";
6    /// Dimension of linear power density, LMT⁻³ (base unit watt per meter, m · kg · s⁻³).
7    dimension: ISQ<
8        P1,     // length
9        P1,     // mass
10        N3,     // time
11        Z0,     // electric current
12        Z0,     // thermodynamic temperature
13        Z0,     // amount of substance
14        Z0>;    // luminous intensity
15    units {
16        @watt_per_meter: prefix!(none); "W/m", "watt per meter", "watts per meter";
17        @watt_per_centimeter: prefix!(none) / prefix!(centi); "W/cm", "watt per centimeter",
18            "watts per centimeter";
19        @watt_per_millimeter: prefix!(none) / prefix!(milli); "W/mm", "watt per millimeter",
20            "watts per millimeter";
21    }
22}
23
24#[cfg(test)]
25mod tests {
26    storage_types! {
27        use crate::num::One;
28        use crate::si::power as p;
29        use crate::si::quantities::*;
30        use crate::si::linear_power_density as lpd;
31        use crate::si::length as l;
32        use crate::tests::Test;
33
34        #[test]
35        fn check_dimension() {
36            let _: LinearPowerDensity<V> =  Power::new::<p::watt>(V::one())
37                / Length::new::<l::meter>(V::one());
38        }
39
40        #[test]
41        fn check_units() {
42            test::<p::watt, l::meter, lpd::watt_per_meter>();
43            test::<p::watt, l::centimeter, lpd::watt_per_centimeter>();
44            test::<p::watt, l::millimeter, lpd::watt_per_millimeter>();
45
46            fn test<P: p::Conversion<V>, L: l::Conversion<V>, LPD: lpd::Conversion<V>>() {
47                Test::assert_approx_eq(&LinearPowerDensity::new::<LPD>(V::one()),
48                    &(Power::new::<P>(V::one()) / Length::new::<L>(V::one())));
49            }
50        }
51    }
52}