From 619a39b38069b8c7d07dc9debce6c725737fd605 Mon Sep 17 00:00:00 2001 From: frankknoll Date: Sat, 26 Aug 2023 22:15:04 +0200 Subject: [PATCH] refactoring --- src/BarChartDescriptionTables.py | 35 +++++++--------------------- src/BarChartDescriptionTablesTest.py | 26 ++++++++++++++------- 2 files changed, 26 insertions(+), 35 deletions(-) diff --git a/src/BarChartDescriptionTables.py b/src/BarChartDescriptionTables.py index bd377854c65..973c87a9036 100644 --- a/src/BarChartDescriptionTables.py +++ b/src/BarChartDescriptionTables.py @@ -5,44 +5,25 @@ import numpy as np class BarChartDescriptionTables: @staticmethod - def filterValidJensenShannonDistances(barChartDescriptionTable): - return BarChartDescriptionTables._filter( - barChartDescriptionTable, - BarChartDescriptionTables._isValidJensenShannonDistance) + def filter(barChartDescriptionTable, predicate): + return barChartDescriptionTable[barChartDescriptionTable.apply( + lambda barChartDescription: predicate( + barChartDescription['BAR_CHART_DESCRIPTION']), + axis='columns')] @staticmethod - def _isValidJensenShannonDistance(barChartDescription): + def isValidJensenShannonDistance(barChartDescription): jensenShannonDistance = barChartDescription['Jensen-Shannon distance'] return not math.isnan(jensenShannonDistance) @staticmethod - def filterHasMinSizeOfGuessedHistogram(barChartDescriptionTable, minSizeOfGuessedHistogram): - return BarChartDescriptionTables._filter( - barChartDescriptionTable, - lambda barChartDescription: - BarChartDescriptionTables._hasMinSizeOfGuessedHistogram(barChartDescription, minSizeOfGuessedHistogram)) - - @staticmethod - def _hasMinSizeOfGuessedHistogram(barChartDescription, minSizeOfGuessedHistogram): + def hasMinSizeOfGuessedHistogram(barChartDescription, minSizeOfGuessedHistogram): sizeOfGuessedHistogram = sum( barChartDescription['Adverse Reaction Reports guessed']) return sizeOfGuessedHistogram >= minSizeOfGuessedHistogram @staticmethod - def filterHasCountryWithGuessedGreaterThanKnown(barChartDescriptionTable): - return BarChartDescriptionTables._filter( - barChartDescriptionTable, - BarChartDescriptionTables._hasCountryWithGuessedGreaterThanKnown) - - @staticmethod - def _hasCountryWithGuessedGreaterThanKnown(barChartDescription): + def hasCountryWithGuessedGreaterThanKnown(barChartDescription): guessedBarChart = barChartDescription['Adverse Reaction Reports guessed'] knownBarChart = barChartDescription['Adverse Reaction Reports known'] return np.any(np.asarray(guessedBarChart) > np.asarray(knownBarChart)) - - @staticmethod - def _filter(barChartDescriptionTable, predicate): - return barChartDescriptionTable[barChartDescriptionTable.apply( - lambda barChartDescription: predicate( - barChartDescription['BAR_CHART_DESCRIPTION']), - axis='columns')] diff --git a/src/BarChartDescriptionTablesTest.py b/src/BarChartDescriptionTablesTest.py index 17d530c1de0..c93b554b377 100644 --- a/src/BarChartDescriptionTablesTest.py +++ b/src/BarChartDescriptionTablesTest.py @@ -38,8 +38,9 @@ class BarChartDescriptionTablesTest(unittest.TestCase): name='VAX_LOT')) # When - barChartDescriptionTableResult = BarChartDescriptionTables.filterValidJensenShannonDistances( - barChartDescriptionTable) + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + BarChartDescriptionTables.isValidJensenShannonDistance) # Then assert_frame_equal( @@ -84,8 +85,12 @@ class BarChartDescriptionTablesTest(unittest.TestCase): name='VAX_LOT')) # When - barChartDescriptionTableResult = BarChartDescriptionTables.filterHasMinSizeOfGuessedHistogram( - barChartDescriptionTable, 20) + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + lambda barChartDescription: + BarChartDescriptionTables.hasMinSizeOfGuessedHistogram( + barChartDescription, + minSizeOfGuessedHistogram=20)) # Then assert_frame_equal( @@ -114,8 +119,12 @@ class BarChartDescriptionTablesTest(unittest.TestCase): name='VAX_LOT')) # When - barChartDescriptionTableResult = BarChartDescriptionTables.filterHasMinSizeOfGuessedHistogram( - barChartDescriptionTable, 31) + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + lambda barChartDescription: + BarChartDescriptionTables.hasMinSizeOfGuessedHistogram( + barChartDescription, + minSizeOfGuessedHistogram=31)) # Then assert_frame_equal( @@ -159,8 +168,9 @@ class BarChartDescriptionTablesTest(unittest.TestCase): name='VAX_LOT')) # When - barChartDescriptionTableResult = BarChartDescriptionTables.filterHasCountryWithGuessedGreaterThanKnown( - barChartDescriptionTable) + barChartDescriptionTableResult = BarChartDescriptionTables.filter( + barChartDescriptionTable, + BarChartDescriptionTables.hasCountryWithGuessedGreaterThanKnown) # Then assert_frame_equal(