30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
import math
|
|
import numpy as np
|
|
|
|
|
|
class BarChartDescriptionTables:
|
|
|
|
@staticmethod
|
|
def filter(barChartDescriptionTable, predicate):
|
|
return barChartDescriptionTable[barChartDescriptionTable.apply(
|
|
lambda barChartDescription: predicate(
|
|
barChartDescription['BAR_CHART_DESCRIPTION']),
|
|
axis='columns')]
|
|
|
|
@staticmethod
|
|
def isValidJensenShannonDistance(barChartDescription):
|
|
jensenShannonDistance = barChartDescription['Jensen-Shannon distance']
|
|
return not math.isnan(jensenShannonDistance)
|
|
|
|
@staticmethod
|
|
def hasMinSizeOfGuessedHistogram(barChartDescription, minSizeOfGuessedHistogram):
|
|
sizeOfGuessedHistogram = sum(
|
|
barChartDescription['Adverse Reaction Reports guessed'])
|
|
return sizeOfGuessedHistogram >= minSizeOfGuessedHistogram
|
|
|
|
@staticmethod
|
|
def hasCountryWithGuessedGreaterThanKnown(barChartDescription):
|
|
guessedBarChart = barChartDescription['Adverse Reaction Reports guessed']
|
|
knownBarChart = barChartDescription['Adverse Reaction Reports known']
|
|
return np.any(np.asarray(guessedBarChart) > np.asarray(knownBarChart))
|