Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.

Commit 543c733

Browse files
add functions for gen data, args, base. simplification _test_case (#572)
* start add function for generate data * add gen_data * add gen_args * add gen_base * fix problem with PEP8 * add data_generator * add data_generator * fix problem with PEP8 * delete excess import * rename some parameters & add new parameters on default * rename params Co-authored-by: Sergey Pokhodenko <pokhodenko.s.a@gmail.com>
1 parent 72896c4 commit 543c733

5 files changed

Lines changed: 66 additions & 43 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import numpy as np
2+
import pandas as pd
3+
4+
from sdc.tests.tests_perf.test_perf_utils import *
5+
6+
7+
def gen_str_data(data_num, data_length, input_data, data_width):
8+
data = []
9+
full_input_data_length = data_width
10+
data.append(perf_data_gen_fixed_len(input_data, full_input_data_length,
11+
data_length))
12+
for i in range(data_num - 1):
13+
np.random.seed(i)
14+
data.append(np.random.choice(input_data, data_length))
15+
16+
return data
17+
18+
19+
def gen_data(data_num, data_length, input_data):
20+
data = []
21+
full_input_data_length = sum(len(i) for i in input_data)
22+
data.append(perf_data_gen_fixed_len(input_data, full_input_data_length,
23+
data_length))
24+
for i in range(data_num - 1):
25+
np.random.seed(i)
26+
data.append(np.random.ranf(data_length))
27+
28+
return data
29+
30+
31+
def gen_series_str(data_num, data_length, input_data, data_width):
32+
all_data = gen_str_data(data_num, data_length, input_data, data_width)
33+
results = []
34+
for data in all_data:
35+
test_data = pd.Series(data)
36+
results.append(test_data)
37+
38+
return results
39+
40+
41+
def gen_series(data_num, data_length, input_data):
42+
all_data = gen_data(data_num, data_length, input_data)
43+
results = []
44+
for data in all_data:
45+
test_data = pd.Series(data)
46+
results.append(test_data)
47+
48+
return results
49+
50+
51+
def gen_df(data_num, data_length, input_data, columns=3):
52+
all_data = gen_data(data_num, data_length, input_data)
53+
results = []
54+
for data in all_data:
55+
test_data = pd.DataFrame({f"f{i}": data for i in range(columns)})
56+
results.append(test_data)
57+
58+
return results

sdc/tests/tests_perf/test_perf_df.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
# *****************************************************************************
2727

28-
import numpy as np
29-
30-
import pandas
3128
import numba
3229
import sdc
3330

@@ -36,6 +33,7 @@
3633
from sdc.tests.test_utils import test_global_input_data_float64
3734
from .generator import generate_test_cases
3835
from .generator import TestCase as TC
36+
from .data_generator import gen_df
3937

4038

4139
# python -m sdc.runtests sdc.tests.tests_perf.test_perf_df.TestDataFrameMethods.test_df_{method_name}
@@ -50,21 +48,13 @@ def _test_case(self, pyfunc, name, total_data_length, input_data, data_num=1):
5048
if input_data is None:
5149
input_data = test_global_input_data_float64
5250

53-
full_input_data_length = sum(len(i) for i in input_data)
5451
for data_length in total_data_length:
5552
base = {
5653
"test_name": test_name,
5754
"data_size": data_length,
5855
}
59-
data = perf_data_gen_fixed_len(input_data, full_input_data_length,
60-
data_length)
61-
test_data = pandas.DataFrame({f"f{i}": data for i in range(3)})
6256

63-
args = [test_data]
64-
for i in range(data_num - 1):
65-
np.random.seed(i)
66-
extra_data = np.random.ranf(data_length)
67-
args.append(pandas.DataFrame({f"f{i}": extra_data for i in range(3)}))
57+
args = gen_df(data_num, data_length, input_data)
6858

6959
self._test_jit(pyfunc, base, *args)
7060
self._test_py(pyfunc, base, *args)

sdc/tests/tests_perf/test_perf_series.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
# *****************************************************************************
2727

28-
import pandas
29-
import numpy as np
30-
3128
import time
3229
import random
3330

@@ -38,6 +35,7 @@
3835
from .test_perf_utils import calc_compilation, get_times, perf_data_gen_fixed_len
3936
from .generator import generate_test_cases
4037
from .generator import TestCase as TC
38+
from .data_generator import gen_series
4139

4240

4341
# python -m sdc.runtests sdc.tests.tests_perf.test_perf_series.TestSeriesMethods.test_series_{method_name}
@@ -52,21 +50,13 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
5250
if input_data is None:
5351
input_data = test_global_input_data_float64
5452

55-
full_input_data_length = sum(len(i) for i in input_data)
5653
for data_length in total_data_length:
5754
base = {
5855
"test_name": test_name,
5956
"data_size": data_length,
6057
}
61-
data = perf_data_gen_fixed_len(input_data, full_input_data_length,
62-
data_length)
63-
test_data = pandas.Series(data)
6458

65-
args = [test_data]
66-
for i in range(data_num - 1):
67-
np.random.seed(i)
68-
extra_data = np.random.ranf(data_length)
69-
args.append(pandas.Series(extra_data))
59+
args = gen_series(data_num, data_length, input_data)
7060

7161
self._test_jit(pyfunc, base, *args)
7262
self._test_py(pyfunc, base, *args)

sdc/tests/tests_perf/test_perf_series_operators.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
# *****************************************************************************
2727

28-
import pandas
29-
import numpy as np
30-
3128
import time
3229
import random
3330

@@ -38,6 +35,7 @@
3835
from .test_perf_utils import calc_compilation, get_times, perf_data_gen_fixed_len
3936
from .generator import generate_test_cases
4037
from .generator import TestCase as TC
38+
from .data_generator import gen_series
4139

4240

4341
"""
@@ -57,21 +55,13 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
5755
if input_data is None:
5856
input_data = test_global_input_data_float64
5957

60-
full_input_data_length = sum(len(i) for i in input_data)
6158
for data_length in total_data_length:
6259
base = {
6360
"test_name": test_name,
6461
"data_size": data_length,
6562
}
66-
data = perf_data_gen_fixed_len(input_data, full_input_data_length,
67-
data_length)
68-
test_data = pandas.Series(data)
6963

70-
args = [test_data]
71-
for i in range(data_num - 1):
72-
np.random.seed(i)
73-
extra_data = np.random.ranf(data_length)
74-
args.append(pandas.Series(extra_data))
64+
args = gen_series(data_num, data_length, input_data)
7565

7666
self._test_jit(pyfunc, base, *args)
7767
self._test_py(pyfunc, base, *args)

sdc/tests/tests_perf/test_perf_series_str.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,12 @@
3131
import unittest
3232
from contextlib import contextmanager
3333

34-
import pandas as pd
35-
3634
from sdc.tests.test_utils import *
3735
from sdc.tests.tests_perf.test_perf_base import TestBase
3836
from sdc.tests.tests_perf.test_perf_utils import *
3937
from .generator import generate_test_cases
4038
from .generator import TestCase as TC
39+
from .data_generator import gen_series_str
4140

4241

4342
test_global_input_data_unicode_kind1 = [
@@ -68,12 +67,8 @@ def _test_case(self, pyfunc, name, total_data_length, data_num=1, input_data=tes
6867
"data_size": data_length,
6968
"data_width": data_width,
7069
}
71-
full_input_data_length = data_width
72-
data = perf_data_gen_fixed_len(input_data, full_input_data_length,
73-
data_length)
74-
test_data = pd.Series(data)
7570

76-
args = [test_data]
71+
args = gen_series_str(data_num, data_length, input_data, data_width)
7772

7873
self._test_jit(pyfunc, base, *args)
7974
self._test_py(pyfunc, base, *args)

0 commit comments

Comments
 (0)