adding HistogramTable2JsonTableConverterTest

This commit is contained in:
frankknoll
2023-01-24 16:05:01 +01:00
parent 9bc06e368a
commit 87f096303e
2 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
class HistogramTable2JsonTableConverter:
@staticmethod
def convertHistogramTable2JsonTable(symptomHistogramByBatchcodeTable):
vax_lot_columns = symptomHistogramByBatchcodeTable.index.names.difference(['SYMPTOM'])
return (
symptomHistogramByBatchcodeTable
.groupby(vax_lot_columns)
.agg(lambda histogram_with_vax_lots: HistogramTable2JsonTableConverter._histogram_to_json(histogram_with_vax_lots, vax_lot_columns))
)
@staticmethod
def _histogram_to_json(histogram_with_vax_lots, vax_lot_columns):
histogram = histogram_with_vax_lots.reset_index(level = vax_lot_columns, drop=True)
return histogram.to_json()

View File

@@ -0,0 +1,36 @@
import unittest
from pandas.testing import assert_frame_equal
from HistogramTable2JsonTableConverter import HistogramTable2JsonTableConverter
from TestHelper import TestHelper
import pandas as pd
class HistogramTable2JsonTableConverterTest(unittest.TestCase):
def test_convertHistogramTable2JsonTable(self):
# Given
histogramTable = TestHelper.createDataFrame(
columns = ['SYMPTOM_COUNT_BY_VAX_LOT'],
data = [ [5],
[1],
[2]],
index = pd.MultiIndex.from_tuples(
names = ['VAX_LOT1', 'SYMPTOM'],
tuples = [['1808982', 'Blood pressure orthostatic abnormal'],
['1808982', 'Chest discomfort'],
['EW0175', 'Chest discomfort']]))
# When
jsonTable = HistogramTable2JsonTableConverter.convertHistogramTable2JsonTable(histogramTable)
# Then
assert_frame_equal(
jsonTable,
TestHelper.createDataFrame(
columns = ['SYMPTOM_COUNT_BY_VAX_LOT'],
data = [ ['{"Blood pressure orthostatic abnormal":5,"Chest discomfort":1}'],
['{"Chest discomfort":2}']],
index = pd.Index(
name = 'VAX_LOT1',
data = ['1808982',
'EW0175'])))