refactoring
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
# FK-TODO: zu langsam
|
||||
import pandas as pd
|
||||
|
||||
|
||||
class MultiIndexValuesProvider:
|
||||
|
||||
@staticmethod
|
||||
def getValues(multiIndex):
|
||||
return set(MultiIndexValuesProvider._concat(MultiIndexValuesProvider._tuples2Lists(multiIndex.values)))
|
||||
|
||||
@staticmethod
|
||||
def _tuples2Lists(tuples):
|
||||
return [list(tuple) for tuple in tuples]
|
||||
|
||||
@staticmethod
|
||||
def _concat(lsts):
|
||||
return sum(lsts, [])
|
||||
df = multiIndex.to_frame(index = False)
|
||||
values = (pd
|
||||
.concat([df[column] for column in df.columns])
|
||||
.unique())
|
||||
return set(values)
|
||||
|
||||
@@ -4,7 +4,22 @@ import pandas as pd
|
||||
|
||||
class MultiIndexValuesProviderTest(unittest.TestCase):
|
||||
|
||||
def test_getValues(self):
|
||||
def test_getValues_1_level(self):
|
||||
# Given
|
||||
value1 = '1808982'
|
||||
value2 = 'EW0175'
|
||||
multiIndex = pd.MultiIndex.from_tuples(
|
||||
names = ['VAX_LOT1'],
|
||||
tuples = [[value1],
|
||||
[value2]])
|
||||
|
||||
# When
|
||||
values = MultiIndexValuesProvider.getValues(multiIndex)
|
||||
|
||||
# Then
|
||||
self.assertEqual(values, {value1, value2})
|
||||
|
||||
def test_getValues_2_levels(self):
|
||||
# Given
|
||||
value1 = '1808982'
|
||||
value2 = 'EW0175'
|
||||
|
||||
Reference in New Issue
Block a user