@@ -54,10 +54,11 @@ TEST(Units, with_defaults1) {
5454}
5555
5656TEST (Units, with_defaults2) {
57- UnitSystem U ({" dyn/cm^2" });
57+ UnitSystem U ({" dyn/cm^2" , " K " });
5858 EXPECT_DOUBLE_EQ (U.convertTo (1.0 , " Pa" ), 0.1 );
5959 EXPECT_DOUBLE_EQ (U.convertFrom (1.0 , " Pa" ), 10 );
6060 EXPECT_DOUBLE_EQ (U.convertTo (1.0 , " N/m^2" ), 1.0 );
61+ EXPECT_DOUBLE_EQ (U.convertTo (300.0 , " K" ), 300.0 );
6162}
6263
6364TEST (Units, with_defaults_map) {
@@ -139,6 +140,12 @@ TEST(Units, activation_energies6) {
139140 EXPECT_DOUBLE_EQ (U.convertActivationEnergyTo (1 , " eV" ), 1.0 );
140141}
141142
143+ TEST (Units, activation_energies_bad) {
144+ UnitSystem U;
145+ EXPECT_THROW (U.convertActivationEnergyTo (1000 , " kg" ), CanteraError);
146+ EXPECT_THROW (U.convertActivationEnergyFrom (1000 , " K^2" ), CanteraError);
147+ }
148+
142149TEST (Units, from_anymap) {
143150 AnyMap m = AnyMap::fromYamlString (
144151 " {p: 12 bar, v: 10, A: 1 cm^2, V: 1,"
@@ -180,6 +187,24 @@ TEST(Units, to_anymap) {
180187 EXPECT_DOUBLE_EQ (m[" density" ].asVector <double >()[1 ], 20.0 * 1e-6 );
181188}
182189
190+ TEST (Units, anymap_quantities) {
191+ AnyMap m;
192+ std::vector<AnyValue> values (2 );
193+ values[0 ].setQuantity (8 , " kg/m^3" );
194+ values[1 ].setQuantity (12 , " mg/cl" );
195+ m[" a" ] = values;
196+ values.emplace_back (" hello" );
197+ m[" b" ] = values;
198+ m.applyUnits ();
199+ EXPECT_TRUE (m[" a" ].is <vector_fp>());
200+ m.applyUnits ();
201+ EXPECT_TRUE (m[" a" ].is <vector_fp>());
202+ auto converted = m[" a" ].asVector <double >();
203+ EXPECT_DOUBLE_EQ (converted[0 ], 8.0 );
204+ EXPECT_DOUBLE_EQ (converted[1 ], 1.2 );
205+ EXPECT_FALSE (m[" b" ].is <vector_fp>());
206+ }
207+
183208TEST (Units, to_anymap_nested) {
184209 UnitSystem U1{" g" , " cm" , " mol" };
185210 UnitSystem U2{" mg" , " km" };
0 commit comments