Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion sdc/tests/tests_perf/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class TestCase(NamedTuple):
data_num: total number of generated data, e.g. 2 (data, other)
input_data: input data for generating test data
skip: flag for skipping a test
check_skipna: flag for checking a function with both parameters skipna=True and skipna=False
"""
name: str
size: list
Expand All @@ -35,15 +36,32 @@ class TestCase(NamedTuple):
data_num: int = 1
input_data: list = None
skip: bool = False
check_skipna: bool = False


def to_varname_without_excess_underscores(string):
"""Removing excess underscores from the string."""
return '_'.join(i for i in to_varname(string).split('_') if i)


def skipna_cases(cases):
"""Generator. Replaces a test case containing check_skipna=True
with two cases containing parameters skipna=True and skipna=False
"""
for case in cases:
if case.check_skipna:
for skipna in [True, False]:
params = case.params
if params:
params += ', '
params += f'skipna={skipna}'
yield case._replace(params=params)
else:
yield case


def generate_test_cases(cases, class_add, typ, prefix=''):
for test_case in cases:
for test_case in skipna_cases(cases):
test_name_parts = ['test', typ, prefix, test_case.name, gen_params_wo_data(test_case)]
test_name = to_varname_without_excess_underscores('_'.join(test_name_parts))

Expand Down
16 changes: 8 additions & 8 deletions sdc/tests/tests_perf/test_perf_df.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,15 @@ def _test_case(self, pyfunc, name, total_data_length, input_data, data_num=1):
TC(name='append', size=[10 ** 7], params='other', data_num=2),
TC(name='count', size=[10 ** 7]),
TC(name='drop', size=[10 ** 8], params='columns="f0"'),
TC(name='max', size=[10 ** 7]),
TC(name='mean', size=[10 ** 7]),
TC(name='median', size=[10 ** 7]),
TC(name='min', size=[10 ** 7]),
TC(name='max', size=[10 ** 7], check_skipna=True),
TC(name='mean', size=[10 ** 7], check_skipna=True),
TC(name='median', size=[10 ** 7], check_skipna=True),
TC(name='min', size=[10 ** 7], check_skipna=True),
TC(name='pct_change', size=[10 ** 7]),
TC(name='prod', size=[10 ** 7]),
TC(name='std', size=[10 ** 7]),
TC(name='sum', size=[10 ** 7]),
TC(name='var', size=[10 ** 7]),
TC(name='prod', size=[10 ** 7], check_skipna=True),
TC(name='std', size=[10 ** 7], check_skipna=True),
TC(name='sum', size=[10 ** 7], check_skipna=True),
TC(name='var', size=[10 ** 7], check_skipna=True),
]

generate_test_cases(cases, TestDataFrameMethods, 'df')
28 changes: 11 additions & 17 deletions sdc/tests/tests_perf/test_perf_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
TC(name='corr', size=[10 ** 7],params='other', data_num=2),
TC(name='count', size=[10 ** 8]),
TC(name='cov', size=[10 ** 8], params='other', data_num=2),
TC(name='cumsum', size=[10 ** 8]),
TC(name='cumsum', size=[10 ** 8], check_skipna=True),
TC(name='describe', size=[10 ** 7]),
TC(name='div', size=[10 ** 7], params='other', data_num=2),
TC(name='dropna', size=[10 ** 7]),
Expand All @@ -89,8 +89,8 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
TC(name='gt', size=[10 ** 7],params='other', data_num=2),
TC(name='head', size=[10 ** 8]),
TC(name='iat', size=[10 ** 7], call_expr='data.iat[100000]', usecase_params='data'),
TC(name='idxmax', size=[10 ** 8]),
TC(name='idxmin', size=[10 ** 8]),
TC(name='idxmax', size=[10 ** 8], check_skipna=True),
TC(name='idxmin', size=[10 ** 8], check_skipna=True),
TC(name='iloc', size=[10 ** 7], call_expr='data.iloc[100000]', usecase_params='data'),
TC(name='index', size=[10 ** 7], call_expr='data.index', usecase_params='data'),
TC(name='isin', size=[10 ** 7], call_expr='data.isin([0])', usecase_params='data'),
Expand All @@ -101,13 +101,10 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
TC(name='lt', size=[10 ** 7], params='other', data_num=2),
TC(name='map', size=[10 ** 7], params='lambda x: x * 2'),
TC(name='map', size=[10 ** 7], params='{2.: 42., 4.: 3.14}'),
TC(name='max', size=[10 ** 8], params='skipna=True'),
TC(name='max', size=[10 ** 8], params='skipna=False'),
TC(name='mean', size=[10 ** 8], params='skipna=True'),
TC(name='mean', size=[10 ** 8], params='skipna=False'),
TC(name='median', size=[10 ** 8]),
TC(name='min', size=[10 ** 8], params='skipna=True'),
TC(name='min', size=[10 ** 8], params='skipna=False'),
TC(name='max', size=[10 ** 8], check_skipna=True),
TC(name='mean', size=[10 ** 8], check_skipna=True),
TC(name='median', size=[10 ** 8], check_skipna=True),
TC(name='min', size=[10 ** 8], check_skipna=True),
TC(name='mod', size=[10 ** 7], params='other', data_num=2),
TC(name='mul', size=[10 ** 7], params='other', data_num=2),
TC(name='ndim', size=[10 ** 7], call_expr='data.ndim', usecase_params='data'),
Expand All @@ -116,8 +113,7 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
TC(name='notna', size=[10 ** 7]),
TC(name='nsmallest', size=[10 ** 6]),
TC(name='nunique', size=[10 ** 7]),
TC(name='prod', size=[10 ** 8], params='skipna=True'),
TC(name='prod', size=[10 ** 8], params='skipna=False'),
TC(name='prod', size=[10 ** 8], check_skipna=True),
TC(name='pct_change', size=[10 ** 7], params='periods=1, limit=None, freq=None'),
TC(name='pow', size=[10 ** 7], params='other', data_num=2),
TC(name='quantile', size=[10 ** 8]),
Expand All @@ -127,16 +123,14 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
TC(name='shift', size=[10 ** 8]),
TC(name='size', size=[10 ** 7], call_expr='data.size', usecase_params='data'),
TC(name='sort_values', size=[10 ** 5]),
TC(name='std', size=[10 ** 7], params='skipna=True'),
TC(name='std', size=[10 ** 7], params='skipna=False'),
TC(name='std', size=[10 ** 7], check_skipna=True),
TC(name='sub', size=[10 ** 7], params='other', data_num=2),
TC(name='sum', size=[10 ** 8]),
TC(name='sum', size=[10 ** 8], check_skipna=True),
TC(name='take', size=[10 ** 7], call_expr='data.take([0])', usecase_params='data'),
TC(name='truediv', size=[10 ** 7], params='other', data_num=2),
TC(name='values', size=[10 ** 7], call_expr='data.values', usecase_params='data'),
TC(name='value_counts', size=[10 ** 6]),
TC(name='var', size=[10 ** 8], params='skipna=True'),
TC(name='var', size=[10 ** 8], params='skipna=False'),
TC(name='var', size=[10 ** 8], check_skipna=True),
TC(name='unique', size=[10 ** 5]),
]

Expand Down