1quantity! {
4 quantity: ElectricalResistivity; "electrical resistivity";
6 dimension: ISQ<
8 P3, P1, N3, N2, Z0, Z0, Z0>; units {
16 @yottaohm_meter: prefix!(yotta); "YΩ · m", "yottaohm meter", "yottaohm meters";
17 @zettaohm_meter: prefix!(zetta); "ZΩ · m", "zettaohm meter", "zettaohm meters";
18 @exaohm_meter: prefix!(exa); "EΩ · m", "exaohm meter", "exaohm meters";
19 @petaohm_meter: prefix!(peta); "PΩ · m", "petaohm meter", "petaohm meters";
20 @teraohm_meter: prefix!(tera); "TΩ · m", "teraohm meter", "teraohm meters";
21 @gigaohm_meter: prefix!(giga); "GΩ · m", "gigaohm meter", "gigaohm meters";
22 @megaohm_meter: prefix!(mega); "MΩ · m", "megaohm meter", "megaohm meters";
23 @kiloohm_meter: prefix!(kilo); "kΩ · m", "kiloohm meter", "kiloohm meters";
24 @hectoohm_meter: prefix!(hecto); "hΩ · m", "hectoohm meter", "hectoohm meters";
25 @decaohm_meter: prefix!(deca); "daΩ · m", "decaohm meter", "decaohm meters";
26 @ohm_meter: prefix!(none); "Ω · m", "ohm meter", "ohm meters";
28 @deciohm_meter: prefix!(deci); "dΩ · m", "deciohm meter", "deciohm meters";
29 @centiohm_meter: prefix!(centi); "cΩ · m", "centiohm meter", "centiohm meters";
30 @milliohm_meter: prefix!(milli); "mΩ · m", "milliohm meter", "milliohm meters";
31 @microohm_meter: prefix!(micro); "µΩ · m", "microohm meter", "microohm meters";
32 @nanoohm_meter: prefix!(nano); "nΩ · m", "nanoohm meter", "nanoohm meters";
33 @picoohm_meter: prefix!(pico); "pΩ · m", "picoohm meter", "picoohm meters";
34 @femtoohm_meter: prefix!(femto); "fΩ · m", "femtoohm meter", "femtoohm meters";
35 @attoohm_meter: prefix!(atto); "aΩ · m", "attoohm meter", "attoohm meters";
36 @zeptoohm_meter: prefix!(zepto); "zΩ · m", "zeptoohm meter", "zeptoohm meters";
37 @yoctoohm_meter: prefix!(yocto); "yΩ · m", "yoctoohm meter", "yoctoohm meters";
38
39 @abohm_meter: 1.0_E-9; "abΩ · m", "abohm meter", "abohm meters";
40 @statohm_meter: 8.987_552_917_115_481_E11; "statΩ · m", "statohm meter", "statohm meters";
41
42 @ohm_centimeter: prefix!(none) * prefix!(centi); "Ω · cm", "ohm centimeter",
43 "ohm centimeters";
44 @abohm_centimeter: 1.0_E-9 * prefix!(centi); "abΩ · cm", "abohm centimeter",
45 "abohm centimeters";
46 @statohm_centimeter: 8.987_552_917_115_481_E11 * prefix!(centi); "statΩ · cm",
47 "statohm centimeter", "statohm centimeters";
48
49 @ohm_inch: 2.54_E-2; "Ω · in", "ohm inch", "ohm inches";
50 @ohm_foot: 3.048_E-1; "Ω · ft", "ohm foot", "ohm feet";
51 @ohm_yard: 9.144_E-1; "Ω · yd", "ohm yard", "ohm yards";
52
53 @ohm_square_millimeter_per_meter: prefix!(milli) * prefix!(milli); "Ω · mm²/m",
54 "ohm square millimeter per meter", "ohm square millimeters per meter";
55 }
56}
57
58#[cfg(test)]
59mod tests {
60 storage_types! {
61 use crate::num::One;
62 use crate::si::electrical_resistance as r;
63 use crate::si::electrical_resistivity as er;
64 use crate::si::length as l;
65 use crate::si::quantities::*;
66 use crate::tests::Test;
67
68 #[test]
69 fn check_dimension() {
70 let _: ElectricalResistivity<V> = ElectricalResistance::new::<r::ohm>(V::one())
71 * Length::new::<l::meter>(V::one());
72 }
73
74 #[test]
75 fn check_units() {
76 test::<er::yottaohm_meter, r::yottaohm, l::meter>();
77 test::<er::zettaohm_meter, r::zettaohm, l::meter>();
78 test::<er::petaohm_meter, r::petaohm, l::meter>();
79 test::<er::teraohm_meter, r::teraohm, l::meter>();
80 test::<er::gigaohm_meter, r::gigaohm, l::meter>();
81 test::<er::megaohm_meter, r::megaohm, l::meter>();
82 test::<er::kiloohm_meter, r::kiloohm, l::meter>();
83 test::<er::hectoohm_meter, r::hectoohm, l::meter>();
84 test::<er::decaohm_meter, r::decaohm, l::meter>();
85 test::<er::ohm_meter, r::ohm, l::meter>();
86 test::<er::deciohm_meter, r::deciohm, l::meter>();
87 test::<er::centiohm_meter, r::centiohm, l::meter>();
88 test::<er::milliohm_meter, r::milliohm, l::meter>();
89 test::<er::microohm_meter, r::microohm, l::meter>();
90 test::<er::nanoohm_meter, r::nanoohm, l::meter>();
91 test::<er::picoohm_meter, r::picoohm, l::meter>();
92 test::<er::femtoohm_meter, r::femtoohm, l::meter>();
93 test::<er::attoohm_meter, r::attoohm, l::meter>();
94 test::<er::zeptoohm_meter, r::zeptoohm, l::meter>();
95 test::<er::yoctoohm_meter, r::yoctoohm, l::meter>();
96
97 test::<er::abohm_meter, r::abohm, l::meter>();
98 test::<er::statohm_meter, r::statohm, l::meter>();
99
100 test::<er::ohm_centimeter, r::ohm, l::centimeter>();
101 test::<er::abohm_centimeter, r::abohm, l::centimeter>();
102 test::<er::statohm_centimeter, r::statohm, l::centimeter>();
103
104 test::<er::ohm_inch, r::ohm, l::inch>();
105 test::<er::ohm_foot, r::ohm, l::foot>();
106 test::<er::ohm_yard, r::ohm, l::yard>();
107
108 test::<er::ohm_square_millimeter_per_meter, r::microohm, l::meter>();
109
110 fn test<ER: er::Conversion<V>, R: r::Conversion<V>, L: l::Conversion<V>>() {
111 Test::assert_approx_eq(&ElectricalResistivity::new::<ER>(V::one()),
112 &(ElectricalResistance::new::<R>(V::one())
113 * Length::new::<L>(V::one())));
114 }
115 }
116 }
117}