starting RegionCountsByClickedBatchcodeProviderTest

This commit is contained in:
frankknoll
2023-10-03 21:49:37 +02:00
parent 59fe764ef5
commit bc3c3a11a7
3 changed files with 54 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ class CountryCountsByClickedBatchcodeProvider:
},
index_columns = ['COUNTRY'])
# FK-TODO: move this method to a new class named GoogleAnalytics.GoogleAnalyticsReader
@staticmethod
def _read_csv(file, columns, index_columns):
dataframe = pd.read_csv(file, index_col = 0, skiprows = [0, 1, 2, 3, 4, 5, 7])

View File

@@ -0,0 +1,28 @@
import pandas as pd
from GoogleAnalytics.ResolutionProvider import Resolution, ResolutionProvider
from CountryCountsByClickedBatchcodeProvider import CountryCountsByClickedBatchcodeProvider
class RegionCountsByClickedBatchcodeProvider:
@staticmethod
def getRegionCountsByClickedBatchcode(file):
cityCountsByClickedBatchcodeTable = RegionCountsByClickedBatchcodeProvider._getCityCountsByClickedBatchcode(file)
return (cityCountsByClickedBatchcodeTable
.groupby(['VAX_LOT', 'COUNTRY', 'REGION'])
.agg(REGION_COUNT_BY_VAX_LOT =
pd.NamedAgg(
column = 'CITY_COUNT_BY_VAX_LOT',
aggfunc = sum)))
# FK-TODO: delegate same method CountryCountsByClickedBatchcodeProvider._getCityCountsByClickedBatchcode() to here
@staticmethod
def _getCityCountsByClickedBatchcode(file):
return CountryCountsByClickedBatchcodeProvider._read_csv(
file = file,
columns = {
'Country': 'COUNTRY',
'Region': 'REGION',
'City': 'CITY',
'Event count': 'CITY_COUNT_BY_VAX_LOT'
},
index_columns = ['COUNTRY', 'REGION', 'CITY'])

View File

@@ -0,0 +1,25 @@
import unittest
from pandas.testing import assert_frame_equal
from TestHelper import TestHelper
import pandas as pd
from GoogleAnalytics.RegionCountsByClickedBatchcodeProvider import RegionCountsByClickedBatchcodeProvider
class RegionCountsByClickedBatchcodeProviderTest(unittest.TestCase):
def test_getRegionCountsByClickedBatchcode(self):
# Given
# When
regionCountsByClickedBatchcodeTable = RegionCountsByClickedBatchcodeProvider.getRegionCountsByClickedBatchcode('src/testdata/GoogleAnalytics/CountryByBatchcode 20230730-20230929.csv')
# Then
assert_frame_equal(
regionCountsByClickedBatchcodeTable,
TestHelper.createDataFrame(
columns = ['REGION_COUNT_BY_VAX_LOT'],
data = [ [100],
[10 + 20]],
index = pd.MultiIndex.from_tuples(
names = ['VAX_LOT', 'COUNTRY', 'REGION'],
tuples = [['#003B21A', 'United States', 'California'],
['000086A', 'Germany', 'Bavaria']])))