Add support for converting to and from mmHg (#64844)

This commit is contained in:
Erik Montnemery 2022-01-24 22:57:56 +01:00 committed by GitHub
parent f662e8669e
commit 2caad1a474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 0 deletions

View File

@ -11,6 +11,7 @@ from homeassistant.const import (
PRESSURE_INHG,
PRESSURE_KPA,
PRESSURE_MBAR,
PRESSURE_MMHG,
PRESSURE_PA,
PRESSURE_PSI,
UNIT_NOT_RECOGNIZED_TEMPLATE,
@ -25,6 +26,7 @@ VALID_UNITS: tuple[str, ...] = (
PRESSURE_MBAR,
PRESSURE_INHG,
PRESSURE_PSI,
PRESSURE_MMHG,
)
UNIT_CONVERSION: dict[str, float] = {
@ -36,6 +38,7 @@ UNIT_CONVERSION: dict[str, float] = {
PRESSURE_MBAR: 1 / 100,
PRESSURE_INHG: 1 / 3386.389,
PRESSURE_PSI: 1 / 6894.757,
PRESSURE_MMHG: 1 / 133.322,
}

View File

@ -7,6 +7,7 @@ from homeassistant.const import (
PRESSURE_INHG,
PRESSURE_KPA,
PRESSURE_MBAR,
PRESSURE_MMHG,
PRESSURE_PA,
PRESSURE_PSI,
)
@ -24,6 +25,7 @@ def test_convert_same_unit():
assert pressure_util.convert(5, PRESSURE_INHG, PRESSURE_INHG) == 5
assert pressure_util.convert(6, PRESSURE_KPA, PRESSURE_KPA) == 6
assert pressure_util.convert(7, PRESSURE_CBAR, PRESSURE_CBAR) == 7
assert pressure_util.convert(8, PRESSURE_MMHG, PRESSURE_MMHG) == 8
def test_convert_invalid_unit():
@ -108,3 +110,32 @@ def test_convert_from_inhg():
assert pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_CBAR) == pytest.approx(
101.59167
)
assert pressure_util.convert(inhg, PRESSURE_INHG, PRESSURE_MMHG) == pytest.approx(
762.002
)
def test_convert_from_mmhg():
"""Test conversion from mmHg to other units."""
inhg = 30
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_PSI) == pytest.approx(
0.580102
)
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_KPA) == pytest.approx(
3.99966
)
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_HPA) == pytest.approx(
39.9966
)
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_PA) == pytest.approx(
3999.66
)
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_MBAR) == pytest.approx(
39.9966
)
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_CBAR) == pytest.approx(
3.99966
)
assert pressure_util.convert(inhg, PRESSURE_MMHG, PRESSURE_INHG) == pytest.approx(
1.181099
)