From 0fa873e46146c2fdb93215f960fabc954cc29f6a Mon Sep 17 00:00:00 2001 From: frankknoll Date: Fri, 31 Mar 2023 12:17:02 +0200 Subject: [PATCH] refactoring --- src/CountriesMerger.py | 9 ++++++--- src/CountriesMergerTest.py | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/CountriesMerger.py b/src/CountriesMerger.py index 0b3133ffaa6..a406f310680 100644 --- a/src/CountriesMerger.py +++ b/src/CountriesMerger.py @@ -4,7 +4,10 @@ import pandas as pd class CountriesMerger: @staticmethod - def mergeCountriesSerieses(countriesSeriesA, countriesSeriesB): + def mergeSrcIntoDst(src: pd.Series, dst: pd.Series): + def merge(series): + series = series.dropna() + return sorted(series[0].union(series[1:])) return (pd - .merge(countriesSeriesA, countriesSeriesB, how='left', left_index=True, right_index=True) - .apply(lambda countries: sorted(set(countries.dropna())), axis='columns')) + .merge(dst, src, how='left', left_index=True, right_index=True) + .apply(merge, axis='columns')) diff --git a/src/CountriesMergerTest.py b/src/CountriesMergerTest.py index 80db37af12c..89330cd4c39 100644 --- a/src/CountriesMergerTest.py +++ b/src/CountriesMergerTest.py @@ -6,13 +6,13 @@ from pandas.testing import assert_series_equal class CountriesMergerTest(unittest.TestCase): - def test_mergeCountriesSerieses(self): + def test_mergeSrcIntoDst(self): # Given - countriesSeriesA = pd.Series({'NO72A': 'CountryA-1', 'EW096': 'CountryA-2'}, name='countriesSeriesA') - countriesSeriesB = pd.Series({'NO72A': 'CountryB-1', 'FS192': 'CountryB-2'}, name='countriesSeriesB') + dstCountries = pd.Series({'NO72A': {'CountryA-1'}, 'EW096': {'CountryA-2'}}, name='dstCountries') + srcCountries = pd.Series({'NO72A': 'CountryB-1', 'FS192': 'CountryB-2'}, name='srcCountries') # When - mergedCountries = CountriesMerger.mergeCountriesSerieses(countriesSeriesA, countriesSeriesB) + mergedCountries = CountriesMerger.mergeSrcIntoDst(src = srcCountries, dst = dstCountries) # Then assert_series_equal(