refining DataFrameFilterTest

This commit is contained in:
frankknoll
2023-12-02 12:14:32 +01:00
parent 90df7a3751
commit c48587cb22
2 changed files with 88 additions and 3 deletions

View File

@@ -1,9 +1,17 @@
class DataFrameFilter: class DataFrameFilter:
@staticmethod @staticmethod
def withoutZeroRows(dataFrame): def withoutZeroRowsAndZeroColumns(dataFrame):
return DataFrameFilter._withoutZeroColumns(DataFrameFilter._withoutZeroRows(dataFrame))
@staticmethod
def _withoutZeroRows(dataFrame):
return dataFrame.loc[~DataFrameFilter._isZeroRow(dataFrame)] return dataFrame.loc[~DataFrameFilter._isZeroRow(dataFrame)]
@staticmethod @staticmethod
def _isZeroRow(dataFrame): def _isZeroRow(dataFrame):
return (dataFrame == 0.0).all(axis = 'columns') return (dataFrame == 0.0).all(axis = 'columns')
@staticmethod
def _withoutZeroColumns(dataFrame):
return dataFrame.loc[:, (dataFrame != 0.0).any(axis = 'index')]

View File

@@ -6,6 +6,34 @@ from SymptomsCausedByVaccines.DataFrameFilter import DataFrameFilter
class DataFrameFilterTest(unittest.TestCase): class DataFrameFilterTest(unittest.TestCase):
def test_withoutZeroRowsAndZeroColumns(self):
# Given
dataFrame = TestHelper.createDataFrame(
columns = ['col1', 'zero column'],
data = [ [0.6, 0.0],
[0.0, 0.0]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'ZERO ROW'
]))
# When
dataFrameWithoutZeroRowsAndZeroColumns = DataFrameFilter.withoutZeroRowsAndZeroColumns(dataFrame)
# Then
assert_frame_equal(
dataFrameWithoutZeroRowsAndZeroColumns,
TestHelper.createDataFrame(
columns = ['col1'],
data = [ [0.6]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F'
])))
def test_withoutZeroRows_noZeroRow(self): def test_withoutZeroRows_noZeroRow(self):
# Given # Given
dataFrame = TestHelper.createDataFrame( dataFrame = TestHelper.createDataFrame(
@@ -20,7 +48,7 @@ class DataFrameFilterTest(unittest.TestCase):
])) ]))
# When # When
dataFrameWithoutZeroRows = DataFrameFilter.withoutZeroRows(dataFrame) dataFrameWithoutZeroRows = DataFrameFilter._withoutZeroRows(dataFrame)
# Then # Then
assert_frame_equal(dataFrameWithoutZeroRows, dataFrame) assert_frame_equal(dataFrameWithoutZeroRows, dataFrame)
@@ -39,7 +67,7 @@ class DataFrameFilterTest(unittest.TestCase):
])) ]))
# When # When
dataFrameWithoutZeroRows = DataFrameFilter.withoutZeroRows(dataFrame) dataFrameWithoutZeroRows = DataFrameFilter._withoutZeroRows(dataFrame)
# Then # Then
assert_frame_equal( assert_frame_equal(
@@ -52,3 +80,52 @@ class DataFrameFilterTest(unittest.TestCase):
data = [ data = [
'6VAX-F' '6VAX-F'
]))) ])))
def test_withoutZeroColumns_noZeroColumn(self):
# Given
dataFrame = TestHelper.createDataFrame(
columns = ['col1', 'col2'],
data = [ [0.6, 1.5],
[0.3, 3.0]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'ADEN'
]))
# When
dataFrameWithoutZeroColumns = DataFrameFilter._withoutZeroColumns(dataFrame)
# Then
assert_frame_equal(dataFrameWithoutZeroColumns, dataFrame)
def test_withoutZeroColumns(self):
# Given
dataFrame = TestHelper.createDataFrame(
columns = ['col1', 'zero column'],
data = [ [0.6, 0.0],
[1.2, 0.0]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'6VAX-G'
]))
# When
dataFrameWithoutZeroColumns = DataFrameFilter._withoutZeroColumns(dataFrame)
# Then
assert_frame_equal(
dataFrameWithoutZeroColumns,
TestHelper.createDataFrame(
columns = ['col1'],
data = [ [0.6],
[1.2]],
index = pd.Index(
name = 'VAX_TYPE',
data = [
'6VAX-F',
'6VAX-G'
])))