1quantity! {
4 quantity: Molality; "molality";
6 dimension: ISQ<
8 Z0, N1, Z0, Z0, Z0, P1, Z0>; kind: dyn (crate::si::marker::ConstituentConcentrationKind);
16 units {
17 @mole_per_kilogram: prefix!(none); "mol/kg", "mole per kilogram", "moles per kilogram";
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 storage_types! {
24 use crate::num::One;
25 use crate::si::amount_of_substance as aos;
26 use crate::si::mass as m;
27 use crate::si::molality as mol;
28 use crate::si::quantities::*;
29 use crate::tests::Test;
30
31 #[test]
32 fn check_dimension() {
33 let _: Molality<V> = (AmountOfSubstance::new::<aos::mole>(V::one())
34 / Mass::new::<m::kilogram>(V::one())).into();
35 }
36
37 #[test]
38 fn check_units() {
39 test::<aos::mole, m::kilogram, mol::mole_per_kilogram>();
40
41 fn test<AOS: aos::Conversion<V>, M: m::Conversion<V>, MOL: mol::Conversion<V>>() {
42 Test::assert_approx_eq(&Molality::new::<MOL>(V::one()),
43 &(AmountOfSubstance::new::<AOS>(V::one()) /
44 Mass::new::<M>(V::one())).into());
45 }
46 }
47 }
48}