starting PrrByVaccineTableFactoryTest

This commit is contained in:
frankknoll
2023-10-11 16:53:35 +02:00
parent 83be262928
commit d49f9e967a
10 changed files with 17618 additions and 13622 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
class BatchCodeSelectInitializer {
static initialize({batchCodeSelectElement, batchCodeDetailsElement}) {
const batchCodeDetailsView = new BatchCodeDetailsView(batchCodeDetailsElement);
batchCodeSelectElement.select2({ minimumInputLength: 4 });
batchCodeSelectElement.on(
'select2:select',
function (event) {
const batchcode = event.params.data.id;
batchCodeDetailsView.displayBatchCodeDetails(batchcode);
GoogleAnalytics.click_batchcode(batchcode);
});
batchCodeSelectElement.select2('open');
}
}

View File

@@ -433,7 +433,7 @@
"outputs": [],
"source": [
"from SymptomsCausedByVaccines.HtmlUpdater import updateHtmlFile\n",
"from SymptomsCausedByVaccines.Analyzer import Analyzer\n",
"from SymptomsCausedByVaccines.PrrByVaccineTableFactory import PrrByVaccineTableFactory\n",
"import pandas as pd"
]
},
@@ -444,21 +444,11 @@
"metadata": {},
"outputs": [],
"source": [
"symptomByVaccine = pd.read_csv(\n",
" 'data/ratings-1990-2022.csv',\n",
"prrByVaccineAndSymptom = pd.read_csv(\n",
" 'data/prr-ratios-all-vaccines.csv',\n",
" index_col = 'VAX_TYPE',\n",
" usecols = lambda columnName: columnName != 'Unnamed: 0')\n",
"# symptomByVaccine"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "90bde4c8",
"metadata": {},
"outputs": [],
"source": [
"symptomByVaccine.loc['COVID19'].sum()"
"prrByVaccineAndSymptom"
]
},
{
@@ -468,13 +458,9 @@
"metadata": {},
"outputs": [],
"source": [
"analyzer = Analyzer(symptomByVaccine)\n",
"\n",
"updateHtmlFile(\n",
" vaccines = analyzer.getVaccines(),\n",
" symptoms = analyzer.getSymptoms(),\n",
" htmlFile = \"../docs/SymptomsCausedByVaccines/index.html\",\n",
" lastUpdated = dateProvider.getLastUpdatedDataSource())"
" symptoms = list(prrByVaccineAndSymptom.columns),\n",
" htmlFile = \"../docs/SymptomsCausedByVaccines/index.html\")"
]
}
],

View File

@@ -1,18 +0,0 @@
import pandas as pd
class Analyzer:
def __init__(self, symptomByVaccine: pd.DataFrame):
self.symptomByVaccine = symptomByVaccine
def getSymptomsForVaccine(self, vaxType):
return self.symptomByVaccine.loc[vaxType]
def getVaccinesForSymptom(self, symptom):
return self.symptomByVaccine[symptom]
def getVaccines(self):
return list(self.symptomByVaccine.index)
def getSymptoms(self):
return list(self.symptomByVaccine.columns)

View File

@@ -1,98 +0,0 @@
import unittest
from pandas.testing import assert_series_equal
from TestHelper import TestHelper
import pandas as pd
from SymptomsCausedByVaccines.Analyzer import Analyzer
class AnalyzerTest(unittest.TestCase):
def test_getSymptomsForVaccine(self):
# Given
symptomByVaccine = TestHelper.createDataFrame(
columns = ['11-beta-hydroxylase deficiency', '17-hydroxyprogesterone'],
data = [ [0.6, 0.4]],
index = pd.Index(
name = 'VAX_TYPE',
data = ['6VAX-F']))
analyzer = Analyzer(symptomByVaccine)
# When
symptomsForVaccine = analyzer.getSymptomsForVaccine('6VAX-F')
# Then
assert_series_equal(
symptomsForVaccine,
pd.Series(
name = '6VAX-F',
data = {
'11-beta-hydroxylase deficiency': 0.6,
'17-hydroxyprogesterone': 0.4
}))
def test_getVaccinesForSymptom(self):
# Given
symptomByVaccine = TestHelper.createDataFrame(
columns = ['11-beta-hydroxylase deficiency'],
data = [ [0.6],
[0.3]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'ADEN'
]))
analyzer = Analyzer(symptomByVaccine)
# When
vaccinesForSymptom = analyzer.getVaccinesForSymptom('11-beta-hydroxylase deficiency')
# Then
assert_series_equal(
vaccinesForSymptom,
TestHelper.createSeries(
name = '11-beta-hydroxylase deficiency',
data = {
'6VAX-F': 0.6,
'ADEN': 0.3
},
indexName = 'VAX_TYPE'))
def test_getVaccines(self):
# Given
symptomByVaccine = TestHelper.createDataFrame(
columns = ['11-beta-hydroxylase deficiency'],
data = [ [0.6],
[0.3]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'ADEN'
]))
analyzer = Analyzer(symptomByVaccine)
# When
vaccines = analyzer.getVaccines()
# Then
self.assertEqual(vaccines, ['6VAX-F', 'ADEN'])
def test_getSymptoms(self):
# Given
symptomByVaccine = TestHelper.createDataFrame(
columns = ['11-beta-hydroxylase deficiency', '17-hydroxyprogesterone'],
data = [ [0.6, 0.4]],
index = pd.Index(
name = 'VAX_TYPE',
data = ['6VAX-F']))
analyzer = Analyzer(symptomByVaccine)
# When
symptoms = analyzer.getSymptoms()
# Then
self.assertEqual(symptoms, ['11-beta-hydroxylase deficiency', '17-hydroxyprogesterone'])

View File

@@ -1,26 +1,16 @@
from bs4 import BeautifulSoup
from HtmlTransformerUtil import HtmlTransformerUtil
from DateProvider import DateProvider
from SymptomsCausedByVaccines.HtmlUtils import getVaccineOptions, getSymptomOptions
from SymptomsCausedByVaccines.HtmlUtils import getSymptomOptions
from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter
def updateHtmlFile(vaccines, symptoms, htmlFile, lastUpdated):
_saveOptions(
options = getVaccineOptions(vaccines),
htmlFile = htmlFile,
selectElementId = 'vaccineSelect')
def updateHtmlFile(symptoms, htmlFile):
_saveOptions(
options = getSymptomOptions(symptoms),
htmlFile = htmlFile,
selectElementId = 'symptomSelect')
saveLastUpdated2HtmlFile(
lastUpdated = lastUpdated,
htmlFile = htmlFile,
lastUpdatedElementId = 'last_updated')
def _saveOptions(options, htmlFile, selectElementId):
HtmlTransformerUtil().applySoupTransformerToFile(
file=htmlFile,
@@ -32,6 +22,7 @@ def _saveOptions(options, htmlFile, selectElementId):
options = options),
'lxml'))
# FK-TODO: move saveLastUpdated2HtmlFile() to src/BatchCodeTableHtmlUpdater.py
def saveLastUpdated2HtmlFile(lastUpdated, htmlFile, lastUpdatedElementId):
def setLastUpdated(soup):
soup.find(id = lastUpdatedElementId).string.replace_with(

View File

@@ -0,0 +1,11 @@
import pandas as pd
class PrrByVaccineTableFactory:
@staticmethod
def getPrrByVaccineTable(prrByVaccineAndSymptom):
return pd.DataFrame(
columns = ['11-beta-hydroxylase deficiency'],
data = [ [prrByVaccineAndSymptom['11-beta-hydroxylase deficiency'].to_dict()]],
index = pd.Index(['PrrByVaccine']))

View File

@@ -0,0 +1,31 @@
import unittest
from pandas.testing import assert_frame_equal
from TestHelper import TestHelper
import pandas as pd
from SymptomsCausedByVaccines.PrrByVaccineTableFactory import PrrByVaccineTableFactory
class PrrByVaccineTableFactoryTest(unittest.TestCase):
def test_getPrrByVaccineTable(self):
# Given
prrByVaccineAndSymptom = TestHelper.createDataFrame(
columns = ['11-beta-hydroxylase deficiency'],
data = [ [0.6],
[0.3]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'ADEN'
]))
# When
prrByVaccineTable = PrrByVaccineTableFactory.getPrrByVaccineTable(prrByVaccineAndSymptom)
# Then
assert_frame_equal(
prrByVaccineTable,
TestHelper.createDataFrame(
columns = ['11-beta-hydroxylase deficiency'],
data = [ [{'6VAX-F': 0.6, 'ADEN': 0.3}]],
index = pd.Index(['PrrByVaccine'])))

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long