mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Add new weight device class (#79185)
This commit is contained in:
@@ -13,6 +13,12 @@ from homeassistant.const import (
|
||||
LENGTH_MILES,
|
||||
LENGTH_MILLIMETERS,
|
||||
LENGTH_YARD,
|
||||
MASS_GRAMS,
|
||||
MASS_KILOGRAMS,
|
||||
MASS_MICROGRAMS,
|
||||
MASS_MILLIGRAMS,
|
||||
MASS_OUNCES,
|
||||
MASS_POUNDS,
|
||||
POWER_KILO_WATT,
|
||||
POWER_WATT,
|
||||
PRESSURE_CBAR,
|
||||
@@ -46,6 +52,7 @@ from homeassistant.util.unit_conversion import (
|
||||
BaseUnitConverter,
|
||||
DistanceConverter,
|
||||
EnergyConverter,
|
||||
MassConverter,
|
||||
PowerConverter,
|
||||
PressureConverter,
|
||||
SpeedConverter,
|
||||
@@ -70,6 +77,12 @@ INVALID_SYMBOL = "bob"
|
||||
(EnergyConverter, ENERGY_WATT_HOUR),
|
||||
(EnergyConverter, ENERGY_KILO_WATT_HOUR),
|
||||
(EnergyConverter, ENERGY_MEGA_WATT_HOUR),
|
||||
(MassConverter, MASS_GRAMS),
|
||||
(MassConverter, MASS_KILOGRAMS),
|
||||
(MassConverter, MASS_MICROGRAMS),
|
||||
(MassConverter, MASS_MILLIGRAMS),
|
||||
(MassConverter, MASS_OUNCES),
|
||||
(MassConverter, MASS_POUNDS),
|
||||
(PowerConverter, POWER_WATT),
|
||||
(PowerConverter, POWER_KILO_WATT),
|
||||
(PressureConverter, PRESSURE_PA),
|
||||
@@ -107,6 +120,7 @@ def test_convert_same_unit(converter: type[BaseUnitConverter], valid_unit: str)
|
||||
[
|
||||
(DistanceConverter, LENGTH_KILOMETERS),
|
||||
(EnergyConverter, ENERGY_KILO_WATT_HOUR),
|
||||
(MassConverter, MASS_GRAMS),
|
||||
(PowerConverter, POWER_WATT),
|
||||
(PressureConverter, PRESSURE_PA),
|
||||
(SpeedConverter, SPEED_KILOMETERS_PER_HOUR),
|
||||
@@ -132,6 +146,7 @@ def test_convert_invalid_unit(
|
||||
[
|
||||
(DistanceConverter, LENGTH_KILOMETERS, LENGTH_METERS),
|
||||
(EnergyConverter, ENERGY_WATT_HOUR, ENERGY_KILO_WATT_HOUR),
|
||||
(MassConverter, MASS_GRAMS, MASS_KILOGRAMS),
|
||||
(PowerConverter, POWER_WATT, POWER_KILO_WATT),
|
||||
(PressureConverter, PRESSURE_HPA, PRESSURE_INHG),
|
||||
(SpeedConverter, SPEED_KILOMETERS_PER_HOUR, SPEED_MILES_PER_HOUR),
|
||||
@@ -239,6 +254,51 @@ def test_energy_convert(
|
||||
assert EnergyConverter.convert(value, from_unit, to_unit) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"value,from_unit,expected,to_unit",
|
||||
[
|
||||
(10, MASS_KILOGRAMS, 10000, MASS_GRAMS),
|
||||
(10, MASS_KILOGRAMS, 10000000, MASS_MILLIGRAMS),
|
||||
(10, MASS_KILOGRAMS, 10000000000, MASS_MICROGRAMS),
|
||||
(10, MASS_KILOGRAMS, pytest.approx(352.73961), MASS_OUNCES),
|
||||
(10, MASS_KILOGRAMS, pytest.approx(22.046226), MASS_POUNDS),
|
||||
(10, MASS_GRAMS, 0.01, MASS_KILOGRAMS),
|
||||
(10, MASS_GRAMS, 10000, MASS_MILLIGRAMS),
|
||||
(10, MASS_GRAMS, 10000000, MASS_MICROGRAMS),
|
||||
(10, MASS_GRAMS, pytest.approx(0.35273961), MASS_OUNCES),
|
||||
(10, MASS_GRAMS, pytest.approx(0.022046226), MASS_POUNDS),
|
||||
(10, MASS_MILLIGRAMS, 0.00001, MASS_KILOGRAMS),
|
||||
(10, MASS_MILLIGRAMS, 0.01, MASS_GRAMS),
|
||||
(10, MASS_MILLIGRAMS, 10000, MASS_MICROGRAMS),
|
||||
(10, MASS_MILLIGRAMS, pytest.approx(0.00035273961), MASS_OUNCES),
|
||||
(10, MASS_MILLIGRAMS, pytest.approx(0.000022046226), MASS_POUNDS),
|
||||
(10000, MASS_MICROGRAMS, 0.00001, MASS_KILOGRAMS),
|
||||
(10000, MASS_MICROGRAMS, 0.01, MASS_GRAMS),
|
||||
(10000, MASS_MICROGRAMS, 10, MASS_MILLIGRAMS),
|
||||
(10000, MASS_MICROGRAMS, pytest.approx(0.00035273961), MASS_OUNCES),
|
||||
(10000, MASS_MICROGRAMS, pytest.approx(0.000022046226), MASS_POUNDS),
|
||||
(1, MASS_POUNDS, 0.45359237, MASS_KILOGRAMS),
|
||||
(1, MASS_POUNDS, 453.59237, MASS_GRAMS),
|
||||
(1, MASS_POUNDS, 453592.37, MASS_MILLIGRAMS),
|
||||
(1, MASS_POUNDS, 453592370, MASS_MICROGRAMS),
|
||||
(1, MASS_POUNDS, 16, MASS_OUNCES),
|
||||
(16, MASS_OUNCES, 0.45359237, MASS_KILOGRAMS),
|
||||
(16, MASS_OUNCES, 453.59237, MASS_GRAMS),
|
||||
(16, MASS_OUNCES, 453592.37, MASS_MILLIGRAMS),
|
||||
(16, MASS_OUNCES, 453592370, MASS_MICROGRAMS),
|
||||
(16, MASS_OUNCES, 1, MASS_POUNDS),
|
||||
],
|
||||
)
|
||||
def test_mass_convert(
|
||||
value: float,
|
||||
from_unit: str,
|
||||
expected: float,
|
||||
to_unit: str,
|
||||
) -> None:
|
||||
"""Test conversion to other units."""
|
||||
assert MassConverter.convert(value, from_unit, to_unit) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"value,from_unit,expected,to_unit",
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user