From 2caad1a474d9a1d8fa4e92497fa0e10787c79588 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 24 Jan 2022 22:57:56 +0100 Subject: [PATCH] Add support for converting to and from mmHg (#64844) --- homeassistant/util/pressure.py | 3 +++ tests/util/test_pressure.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/homeassistant/util/pressure.py b/homeassistant/util/pressure.py index 8ff3f9f5f93..dca94764de3 100644 --- a/homeassistant/util/pressure.py +++ b/homeassistant/util/pressure.py @@ -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, } diff --git a/tests/util/test_pressure.py b/tests/util/test_pressure.py index 0109d045a55..e3b6ed92e4d 100644 --- a/tests/util/test_pressure.py +++ b/tests/util/test_pressure.py @@ -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 + )