diff --git a/src/BarChartDescriptionTables.py b/src/BarChartDescriptionTables.py index ecd98e723b8..2fa33d0bc4e 100644 --- a/src/BarChartDescriptionTables.py +++ b/src/BarChartDescriptionTables.py @@ -21,6 +21,11 @@ class BarChartDescriptionTables: sizeOfGuessedHistogram = sum(barChartDescription['Adverse Reaction Reports guessed']) return sizeOfGuessedHistogram >= minSizeOfGuessedHistogram + @staticmethod + def hasMinSizeOfKnownHistogram(barChartDescription, minSizeOfKnownHistogram): + sizeOfKnownHistogram = sum(barChartDescription['Adverse Reaction Reports known']) + return sizeOfKnownHistogram >= minSizeOfKnownHistogram + @staticmethod def hasCountryWithGuessedGreaterThanKnown(barChartDescription): guessedBarChart = barChartDescription['Adverse Reaction Reports guessed'] diff --git a/src/BarChartDescriptionTablesTest.py b/src/BarChartDescriptionTablesTest.py index 7f161275eee..2270039ca64 100644 --- a/src/BarChartDescriptionTablesTest.py +++ b/src/BarChartDescriptionTablesTest.py @@ -137,6 +137,79 @@ class BarChartDescriptionTablesTest(unittest.TestCase): name='VAX_LOT')), check_dtype=True) + def test_filterHasMinSizeOfKnownHistogram_true(self): + # Given + barChartDescriptionTable = TestHelper.createDataFrame( + columns=['BAR_CHART_DESCRIPTION'], + data=[ + [ + { + 'countries': ['Germany', 'Hungary'], + 'Adverse Reaction Reports guessed': [10, 20], + 'Adverse Reaction Reports known': [20, 30], + 'Jensen-Shannon distance': 0.4711 + } + ] + ], + index=pd.Index( + [ + '!D0181' + ], + name='VAX_LOT')) + + # When + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + lambda barChartDescription: + BarChartDescriptionTables.hasMinSizeOfKnownHistogram( + barChartDescription, + minSizeOfKnownHistogram=20)) + + # Then + assert_frame_equal( + barChartDescriptionTableResult, + barChartDescriptionTable, + check_dtype=True) + + def test_filterHasMinSizeOfKnownHistogram_false(self): + # Given + barChartDescriptionTable = TestHelper.createDataFrame( + columns=['BAR_CHART_DESCRIPTION'], + data=[ + [ + { + 'countries': ['Germany', 'Hungary'], + 'Adverse Reaction Reports guessed': [100, 20], + 'Adverse Reaction Reports known': [20, 30], + 'Jensen-Shannon distance': 0.4711 + } + ] + ], + index=pd.Index( + [ + '!D0181' + ], + name='VAX_LOT')) + + # When + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + lambda barChartDescription: + BarChartDescriptionTables.hasMinSizeOfKnownHistogram( + barChartDescription, + minSizeOfKnownHistogram=51)) + + # Then + assert_frame_equal( + barChartDescriptionTableResult, + TestHelper.createDataFrame( + columns=['BAR_CHART_DESCRIPTION'], + data=[], + index=pd.Index( + [], + name='VAX_LOT')), + check_dtype=True) + def test_filterHasCountryWithGuessedGreaterThanKnown(self): # Given guessed = 25