41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
import unittest
|
|
from TestHelper import TestHelper
|
|
from pandas.testing import assert_frame_equal
|
|
import statistics
|
|
import pandas as pd
|
|
from intensivstationen.MedianOfFreeBedsByKreisTableFactory import MedianOfFreeBedsByKreisTableFactory
|
|
|
|
class MedianOfFreeBedsByKreisTableFactoryTest(unittest.TestCase):
|
|
|
|
def test_createMedianOfFreeBedsByKreisTable(self):
|
|
# Given
|
|
dataFrame = TestHelper.createDataFrame(
|
|
columns = ['date', 'betten_frei', 'betten_belegt', 'Kreis'],
|
|
data = [ ['2020-04-24', 40, 38, 'Flensburg, Stadt'],
|
|
['2020-04-24', 42, 36, 'Flensburg, Stadt'],
|
|
['2020-04-24', 44, 34, 'Flensburg, Stadt'],
|
|
['2020-04-24', 9, 10, 'Bamberg']],
|
|
index = [
|
|
0,
|
|
1,
|
|
2,
|
|
3])
|
|
medianOfFreeBedsByKreisTableFactory = MedianOfFreeBedsByKreisTableFactory(dataFrame)
|
|
|
|
# When
|
|
medianOfFreeBedsByKreisTable = medianOfFreeBedsByKreisTableFactory.createMedianOfFreeBedsByKreisTable('Kreis')
|
|
|
|
# Then
|
|
assert_frame_equal(
|
|
medianOfFreeBedsByKreisTable,
|
|
TestHelper.createDataFrame(
|
|
columns = ['median_free_beds_in_percent'],
|
|
data = [ [statistics.median([40/(40 + 38) * 100, 42/(42 + 36) * 100, 44/(44 + 34) * 100])],
|
|
[9/(9 + 10) * 100]],
|
|
index = pd.Index(
|
|
name = 'Kreis',
|
|
data = [
|
|
'Flensburg, Stadt',
|
|
'Bamberg'
|
|
])),
|
|
check_dtype = False) |