def test_bondtype_to_dict_custom_output_units(self): """ Test BondType to_dict with custom output units. """ from simtk import unit p1 = BondHandler.BondType(smirks='[*:1]-[*:2]', length=1.02 * unit.angstrom, k=5 * unit.kilocalorie_per_mole / unit.angstrom**2) param_dict = p1.to_dict() param_dict_unitless, attached_units = detach_units( param_dict, output_units={'length_unit': unit.nanometer}) assert attached_units['length_unit'] == unit.nanometer assert abs(param_dict_unitless['length'] - 0.102) < 1e-10
def test_bondtype_to_dict_invalid_output_units(self): """ Test ParameterType to_dict with invalid output units. """ from simtk import unit p1 = BondHandler.BondType(smirks='[*:1]-[*:2]', length=1.02*unit.angstrom, k=5 * unit.kilocalorie_per_mole / unit.angstrom ** 2 ) param_dict = p1.to_dict() with pytest.raises(ValueError, match='Requested output unit calorie is not compatible with quantity unit angstrom .' ) as context: param_dict_unitless, attached_units = detach_units(param_dict, output_units = {'length_unit': unit.calorie})
def test_bondtype_to_dict(self): """ Test BondType to_dict. """ from simtk import unit p1 = BondHandler.BondType(smirks='[*:1]-[*:2]', length=1.02 * unit.angstrom, k=5 * unit.kilocalorie_per_mole / unit.angstrom ** 2 ) param_dict = p1.to_dict() param_dict_unitless, attached_units = detach_units(param_dict) assert param_dict_unitless == {'smirks': '[*:1]-[*:2]', 'length': 1.02, 'k': 5,} assert attached_units == {'length_unit': unit.angstrom, 'k_unit': (unit.angstrom ** -2) * (unit.mole ** -1) * (unit.kilocalorie ** 1) }