uom/si/
electrical_conductance.rs1quantity! {
4 quantity: ElectricalConductance; "electrical conductance";
6 dimension: ISQ<
8 N2, N1, P3, P2, Z0, Z0, Z0>; units {
16 @yottasiemens: prefix!(yotta); "YS", "yottasiemens", "yottasiemens";
17 @zettasiemens: prefix!(zetta); "ZS", "zettasiemens", "zettasiemens";
18 @exasiemens: prefix!(exa); "ES", "exasiemens", "exasiemens";
19 @petasiemens: prefix!(peta); "PS", "petasiemens", "petasiemens";
20 @terasiemens: prefix!(tera); "TS", "terasiemens", "terasiemens";
21 @gigasiemens: prefix!(giga); "GS", "gigasiemens", "gigasiemens";
22 @megasiemens: prefix!(mega); "MS", "megasiemens", "megasiemens";
23 @kilosiemens: prefix!(kilo); "kS", "kilosiemens", "kilosiemens";
24 @hectosiemens: prefix!(hecto); "hS", "hectosiemens", "hectosiemens";
25 @decasiemens: prefix!(deca); "daS", "decasiemens", "decasiemens";
26 @siemens: prefix!(none); "S", "siemens", "siemens";
28 @mho: prefix!(none); "℧", "mho", "mhos";
29 @decisiemens: prefix!(deci); "dS", "decisiemens", "decisiemens";
30 @centisiemens: prefix!(centi); "cS", "centisiemens", "centisiemens";
31 @millisiemens: prefix!(milli); "mS", "millisiemens", "millisiemens";
32 @microsiemens: prefix!(micro); "µS", "microsiemens", "microsiemens";
33 @nanosiemens: prefix!(nano); "nS", "nanosiemens", "nanosiemens";
34 @picosiemens: prefix!(pico); "pS", "picosiemens", "picosiemens";
35 @femtosiemens: prefix!(femto); "fS", "femtosiemens", "femtosiemens";
36 @attosiemens: prefix!(atto); "aS", "attosiemens", "attosiemens";
37 @zeptosiemens: prefix!(zepto); "zS", "zeptosiemens", "zeptosiemens";
38 @yoctosiemens: prefix!(yocto); "yS", "yoctosiemens", "yoctosiemens";
39
40 @abmho: 1.0_E9; "abmho", "abmho", "abmhos";
41 @absiemens: 1.0_E9; "abS", "abmsiemens", "abmsiemens";
42 @statsiemens: 1.112_650_E-12; "statS", "statsiemens", "statsiemens";
43 @statmho: 1.112_650_E-12; "statmho", "statmho", "statmhos";
44 }
45}
46
47#[cfg(test)]
48mod tests {
49 storage_types! {
50 use crate::num::One;
51 use crate::si::electrical_conductance as g;
52 use crate::si::electrical_resistance as r;
53 use crate::si::quantities::*;
54 use crate::tests::Test;
55
56 #[test]
57 fn check_dimension() {
58 let _: ElectricalConductance<V> = V::one()
59 / ElectricalResistance::new::<r::ohm>(V::one());
60 }
61
62 #[test]
63 fn check_units() {
64 test::<r::yoctoohm, g::yottasiemens>();
65 test::<r::zeptoohm, g::zettasiemens>();
66 test::<r::attoohm, g::exasiemens>();
67 test::<r::femtoohm, g::petasiemens>();
68 test::<r::picoohm, g::terasiemens>();
69 test::<r::nanoohm, g::gigasiemens>();
70 test::<r::microohm, g::megasiemens>();
71 test::<r::milliohm, g::kilosiemens>();
72 test::<r::centiohm, g::hectosiemens>();
73 test::<r::deciohm, g::decasiemens>();
74 test::<r::ohm, g::siemens>();
75 test::<r::decaohm, g::decisiemens>();
76 test::<r::hectoohm, g::centisiemens>();
77 test::<r::kiloohm, g::millisiemens>();
78 test::<r::megaohm, g::microsiemens>();
79 test::<r::gigaohm, g::nanosiemens>();
80 test::<r::teraohm, g::picosiemens>();
81 test::<r::petaohm, g::femtosiemens>();
82 test::<r::exaohm, g::attosiemens>();
83 test::<r::zettaohm, g::zeptosiemens>();
84 test::<r::yottaohm, g::yoctosiemens>();
85
86 test::<r::abohm, g::absiemens>();
87 test::<r::statohm, g::statsiemens>();
88 test::<r::abohm, g::abmho>();
89 test::<r::statohm, g::statmho>();
90
91 fn test<R: r::Conversion<V>, G: g::Conversion<V>>() {
92 Test::assert_approx_eq(&ElectricalConductance::new::<G>(V::one()),
93 &(V::one() / ElectricalResistance::new::<R>(V::one())));
94 }
95 }
96 }
97}