From 21723b0d0b97a71aad8aafeb5d413015b2909320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= Date: Thu, 28 Dec 2017 12:23:54 +0000 Subject: accucheck_reports: fix bug for mg/dL native meters. This was mixing up the units in the conversion. While fixing the bug, remove the confusing two-parameter form of convert_glucose_unit. --- glucometerutils/common.py | 10 +++++----- glucometerutils/drivers/accuchek_reports.py | 6 ++++-- test/test_common.py | 12 ++---------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/glucometerutils/common.py b/glucometerutils/common.py index 31584b4..318fc86 100644 --- a/glucometerutils/common.py +++ b/glucometerutils/common.py @@ -28,7 +28,7 @@ class MeasurementMethod(enum.Enum): CGM = 'CGM' # Continuous Glucose Monitoring -def convert_glucose_unit(value, from_unit, to_unit=None): +def convert_glucose_unit(value, from_unit, to_unit): """Convert the given value of glucose level between units. Args: @@ -38,14 +38,14 @@ def convert_glucose_unit(value, from_unit, to_unit=None): Returns: The converted representation of the blood glucose level. - - Raises: - exceptions.InvalidGlucoseUnit: If the parameters are incorrect. """ + from_unit = Unit(from_unit) + to_unit = Unit(to_unit) + if from_unit == to_unit: return value - if from_unit is Unit.MG_DL: + if from_unit == Unit.MG_DL: return round(value / 18.0, 2) else: return round(value * 18.0, 0) diff --git a/glucometerutils/drivers/accuchek_reports.py b/glucometerutils/drivers/accuchek_reports.py index d55ac0f..404ed9b 100644 --- a/glucometerutils/drivers/accuchek_reports.py +++ b/glucometerutils/drivers/accuchek_reports.py @@ -130,6 +130,8 @@ class Device(object): yield common.GlucoseReading( self._extract_datetime(record), - common.convert_glucose_unit(float(record[_RESULT_CSV_KEY]), - _UNIT_MAP[record[_UNIT_CSV_KEY]]), + common.convert_glucose_unit( + float(record[_RESULT_CSV_KEY]), + _UNIT_MAP[record[_UNIT_CSV_KEY]], + common.Unit.MG_DL), meal=self._extract_meal(record)) diff --git a/test/test_common.py b/test/test_common.py index febf578..8ca50e1 100644 --- a/test/test_common.py +++ b/test/test_common.py @@ -21,18 +21,10 @@ class TestCommon(unittest.TestCase): 5.56, common.convert_glucose_unit( 100, common.Unit.MG_DL, common.Unit.MMOL_L)) - self.assertEqual( - 5.56, common.convert_glucose_unit( - 100, common.Unit.MG_DL)) - self.assertEqual( 180, common.convert_glucose_unit( 10, common.Unit.MMOL_L, common.Unit.MG_DL)) - self.assertEqual( - 180, common.convert_glucose_unit( - 10, common.Unit.MMOL_L)) - self.assertEqual( 100, common.convert_glucose_unit( 100, common.Unit.MG_DL, common.Unit.MG_DL)) @@ -42,8 +34,8 @@ class TestCommon(unittest.TestCase): 10, common.Unit.MMOL_L, common.Unit.MMOL_L)) self.assertRaises( - exceptions.InvalidGlucoseUnit, - common.convert_glucose_unit, common.Unit.MMOL_L, 'foo') + ValueError, + common.convert_glucose_unit, 10, common.Unit.MMOL_L, 'foo') if __name__ == '__main__': unittest.main() -- cgit v1.2.3