adding HistogramTable2JsonTableConverterTest
This commit is contained in:
15
src/HistogramTable2JsonTableConverter.py
Normal file
15
src/HistogramTable2JsonTableConverter.py
Normal 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()
|
||||
36
src/HistogramTable2JsonTableConverterTest.py
Normal file
36
src/HistogramTable2JsonTableConverterTest.py
Normal 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'])))
|
||||
|
||||
Reference in New Issue
Block a user