From af45d6d4fd75347ee63a0bed6d86a9fd5a5ecafb Mon Sep 17 00:00:00 2001 From: frankknoll Date: Sun, 27 Aug 2023 15:59:23 +0200 Subject: [PATCH] refactoring --- src/BarChartDescriptionTables.py | 17 +++++++-- src/BarChartDescriptionTablesTest.py | 55 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/src/BarChartDescriptionTables.py b/src/BarChartDescriptionTables.py index 2fa33d0bc4e..7a067503e99 100644 --- a/src/BarChartDescriptionTables.py +++ b/src/BarChartDescriptionTables.py @@ -18,12 +18,14 @@ class BarChartDescriptionTables: @staticmethod def hasMinSizeOfGuessedHistogram(barChartDescription, minSizeOfGuessedHistogram): - sizeOfGuessedHistogram = sum(barChartDescription['Adverse Reaction Reports guessed']) + sizeOfGuessedHistogram = sum( + barChartDescription['Adverse Reaction Reports guessed']) return sizeOfGuessedHistogram >= minSizeOfGuessedHistogram @staticmethod def hasMinSizeOfKnownHistogram(barChartDescription, minSizeOfKnownHistogram): - sizeOfKnownHistogram = sum(barChartDescription['Adverse Reaction Reports known']) + sizeOfKnownHistogram = sum( + barChartDescription['Adverse Reaction Reports known']) return sizeOfKnownHistogram >= minSizeOfKnownHistogram @staticmethod @@ -34,6 +36,13 @@ class BarChartDescriptionTables: @staticmethod def isGuessedGreaterThanKnown(barChartDescription): - sizeOfGuessedHistogram = sum(barChartDescription['Adverse Reaction Reports guessed']) - sizeOfKnownHistogram = sum(barChartDescription['Adverse Reaction Reports known']) + sizeOfGuessedHistogram = sum( + barChartDescription['Adverse Reaction Reports guessed']) + sizeOfKnownHistogram = sum( + barChartDescription['Adverse Reaction Reports known']) return sizeOfGuessedHistogram >= sizeOfKnownHistogram + + @staticmethod + def containsCountry(barChartDescription, country): + COUNTRIES = [country.upper() for country in barChartDescription['countries']] + return country.upper() in COUNTRIES diff --git a/src/BarChartDescriptionTablesTest.py b/src/BarChartDescriptionTablesTest.py index 2270039ca64..ed4a2890664 100644 --- a/src/BarChartDescriptionTablesTest.py +++ b/src/BarChartDescriptionTablesTest.py @@ -321,3 +321,58 @@ class BarChartDescriptionTablesTest(unittest.TestCase): ], name='VAX_LOT')), check_dtype=True) + + def test_filterContainsCountry(self): + # Given + barChartDescriptionTable = TestHelper.createDataFrame( + columns=['BAR_CHART_DESCRIPTION'], + data=[ + [ + { + 'countries': ['Germany', 'Hungary'], + 'Adverse Reaction Reports guessed': [25, 20], + 'Adverse Reaction Reports known': [20, 30], + 'Jensen-Shannon distance': 0.4711 + } + ], + [ + { + 'countries': ['Germany', 'America'], + 'Adverse Reaction Reports guessed': [25, 20], + 'Adverse Reaction Reports known': [250, 200], + 'Jensen-Shannon distance': 0.815 + } + ]], + index=pd.Index( + [ + '!D0181', + 'some batch code' + ], + name='VAX_LOT')) + + # When + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + lambda barChartDescription: BarChartDescriptionTables.containsCountry(barChartDescription, 'America')) + + # Then + assert_frame_equal( + barChartDescriptionTableResult, + TestHelper.createDataFrame( + columns=['BAR_CHART_DESCRIPTION'], + data=[ + [ + { + 'countries': ['Germany', 'America'], + 'Adverse Reaction Reports guessed': [25, 20], + 'Adverse Reaction Reports known': [250, 200], + 'Jensen-Shannon distance': 0.815 + } + ] + ], + index=pd.Index( + [ + 'some batch code' + ], + name='VAX_LOT')), + check_dtype=True)