From a9963e98da3a3ee257a6a1e9735f4481aef5faee Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 24 Nov 2023 18:13:04 -0800 Subject: [PATCH 1/3] TST/CLN: Remove make_rand_series --- pandas/_testing/__init__.py | 20 ------------------- pandas/conftest.py | 10 ++++++---- pandas/tests/base/test_misc.py | 2 +- pandas/tests/generic/test_generic.py | 20 +++++++++++++++---- pandas/tests/io/pytables/test_append.py | 2 +- pandas/tests/io/pytables/test_keys.py | 5 ++++- pandas/tests/io/pytables/test_read.py | 2 +- pandas/tests/io/pytables/test_round_trip.py | 4 ++-- pandas/tests/io/pytables/test_store.py | 4 +++- pandas/tests/plotting/test_series.py | 4 +++- pandas/tests/reductions/test_reductions.py | 4 ++-- .../tests/reductions/test_stat_reductions.py | 20 +++++++++---------- pandas/tests/series/test_arithmetic.py | 6 +++++- pandas/tests/series/test_unary.py | 6 ++---- 14 files changed, 56 insertions(+), 53 deletions(-) diff --git a/pandas/_testing/__init__.py b/pandas/_testing/__init__.py index 6f9766f32b894..625015ff27d80 100644 --- a/pandas/_testing/__init__.py +++ b/pandas/_testing/__init__.py @@ -504,23 +504,6 @@ def all_timeseries_index_generator(k: int = 10) -> Iterable[Index]: yield make_index_func(k=k) -# make series -def make_rand_series(name=None, dtype=np.float64) -> Series: - index = makeStringIndex(_N) - data = np.random.default_rng(2).standard_normal(_N) - with np.errstate(invalid="ignore"): - data = data.astype(dtype, copy=False) - return Series(data, index=index, name=name) - - -def makeFloatSeries(name=None) -> Series: - return make_rand_series(name=name) - - -def makeStringSeries(name=None) -> Series: - return make_rand_series(name=name) - - def makeObjectSeries(name=None) -> Series: data = makeStringIndex(_N) data = Index(data, dtype=object) @@ -1143,7 +1126,6 @@ def shares_memory(left, right) -> bool: "makeDataFrame", "makeDateIndex", "makeFloatIndex", - "makeFloatSeries", "makeIntervalIndex", "makeIntIndex", "makeMixedDataFrame", @@ -1153,10 +1135,8 @@ def shares_memory(left, right) -> bool: "makePeriodFrame", "makePeriodIndex", "makePeriodSeries", - "make_rand_series", "makeRangeIndex", "makeStringIndex", - "makeStringSeries", "makeTimeDataFrame", "makeTimedeltaIndex", "makeTimeSeries", diff --git a/pandas/conftest.py b/pandas/conftest.py index b24606f8007d2..0589ffd12e232 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -728,9 +728,9 @@ def string_series() -> Series: """ Fixture for Series of floats with Index of unique strings """ - s = tm.makeStringSeries() - s.name = "series" - return s + return Series( + range(30), index=[f"i_{i}" for i in range(30)], dtype=np.float64, name="series" + ) @pytest.fixture @@ -775,7 +775,9 @@ def series_with_simple_index(index) -> Series: _narrow_series = { - f"{dtype.__name__}-series": tm.make_rand_series(name="a", dtype=dtype) + f"{dtype.__name__}-series": Series( + range(30), index=[f"i-{i}" for i in range(30)], name="a", dtype=dtype + ) for dtype in tm.NARROW_NP_DTYPES } diff --git a/pandas/tests/base/test_misc.py b/pandas/tests/base/test_misc.py index c6fd4955d2d63..ab2d94caca60c 100644 --- a/pandas/tests/base/test_misc.py +++ b/pandas/tests/base/test_misc.py @@ -127,7 +127,7 @@ def test_memory_usage_components_series(series_with_simple_index): @pytest.mark.parametrize("dtype", tm.NARROW_NP_DTYPES) def test_memory_usage_components_narrow_series(dtype): - series = tm.make_rand_series(name="a", dtype=dtype) + series = Series(range(5), dtype=dtype, index=[f"i-{i}" for i in range(5)], name="a") total_usage = series.memory_usage(index=True) non_index_usage = series.memory_usage(index=False) index_usage = series.index.memory_usage() diff --git a/pandas/tests/generic/test_generic.py b/pandas/tests/generic/test_generic.py index 87beab04bc586..1f08b9d5c35b8 100644 --- a/pandas/tests/generic/test_generic.py +++ b/pandas/tests/generic/test_generic.py @@ -316,7 +316,11 @@ class TestNDFrame: # tests that don't fit elsewhere @pytest.mark.parametrize( - "ser", [tm.makeFloatSeries(), tm.makeStringSeries(), tm.makeObjectSeries()] + "ser", + [ + Series(range(10), dtype=np.float64), + Series([str(i) for i in range(10)], dtype=object), + ], ) def test_squeeze_series_noop(self, ser): # noop @@ -360,14 +364,18 @@ def test_squeeze_axis_len_3(self): tm.assert_frame_equal(df.squeeze(axis=0), df) def test_numpy_squeeze(self): - s = tm.makeFloatSeries() + s = Series(range(2), dtype=np.float64) tm.assert_series_equal(np.squeeze(s), s) df = tm.makeTimeDataFrame().reindex(columns=["A"]) tm.assert_series_equal(np.squeeze(df), df["A"]) @pytest.mark.parametrize( - "ser", [tm.makeFloatSeries(), tm.makeStringSeries(), tm.makeObjectSeries()] + "ser", + [ + Series(range(10), dtype=np.float64), + Series([str(i) for i in range(10)], dtype=object), + ], ) def test_transpose_series(self, ser): # calls implementation in pandas/core/base.py @@ -393,7 +401,11 @@ def test_numpy_transpose(self, frame_or_series): np.transpose(obj, axes=1) @pytest.mark.parametrize( - "ser", [tm.makeFloatSeries(), tm.makeStringSeries(), tm.makeObjectSeries()] + "ser", + [ + Series(range(10), dtype=np.float64), + Series([str(i) for i in range(10)], dtype=object), + ], ) def test_take_series(self, ser): indices = [1, 5, -2, 6, 3, -1] diff --git a/pandas/tests/io/pytables/test_append.py b/pandas/tests/io/pytables/test_append.py index dace8435595ee..50cf7d737eb99 100644 --- a/pandas/tests/io/pytables/test_append.py +++ b/pandas/tests/io/pytables/test_append.py @@ -99,7 +99,7 @@ def test_append(setup_path): def test_append_series(setup_path): with ensure_clean_store(setup_path) as store: # basic - ss = tm.makeStringSeries() + ss = Series(range(20), dtype=np.float64, index=[f"i_{i}" for i in range(20)]) ts = tm.makeTimeSeries() ns = Series(np.arange(100)) diff --git a/pandas/tests/io/pytables/test_keys.py b/pandas/tests/io/pytables/test_keys.py index 0dcc9f7f1b9c2..fd7df29595090 100644 --- a/pandas/tests/io/pytables/test_keys.py +++ b/pandas/tests/io/pytables/test_keys.py @@ -3,6 +3,7 @@ from pandas import ( DataFrame, HDFStore, + Series, _testing as tm, ) from pandas.tests.io.pytables.common import ( @@ -16,7 +17,9 @@ def test_keys(setup_path): with ensure_clean_store(setup_path) as store: store["a"] = tm.makeTimeSeries() - store["b"] = tm.makeStringSeries() + store["b"] = Series( + range(10), dtype="float64", index=[f"i_{i}" for i in range(10)] + ) store["c"] = tm.makeDataFrame() assert len(store) == 3 diff --git a/pandas/tests/io/pytables/test_read.py b/pandas/tests/io/pytables/test_read.py index 32af61de05ee4..2030b1eca3203 100644 --- a/pandas/tests/io/pytables/test_read.py +++ b/pandas/tests/io/pytables/test_read.py @@ -356,7 +356,7 @@ def test_read_hdf_series_mode_r(tmp_path, format, setup_path): # GH 16583 # Tests that reading a Series saved to an HDF file # still works if a mode='r' argument is supplied - series = tm.makeFloatSeries() + series = Series(range(10), dtype=np.float64) path = tmp_path / setup_path series.to_hdf(path, key="data", format=format) result = read_hdf(path, key="data", mode="r") diff --git a/pandas/tests/io/pytables/test_round_trip.py b/pandas/tests/io/pytables/test_round_trip.py index 4f908f28cb5e9..6c24843f18d0d 100644 --- a/pandas/tests/io/pytables/test_round_trip.py +++ b/pandas/tests/io/pytables/test_round_trip.py @@ -36,7 +36,7 @@ def roundtrip(key, obj, **kwargs): o = tm.makeTimeSeries() tm.assert_series_equal(o, roundtrip("series", o)) - o = tm.makeStringSeries() + o = Series(range(10), dtype="float64", index=[f"i_{i}" for i in range(10)]) tm.assert_series_equal(o, roundtrip("string_series", o)) o = tm.makeDataFrame() @@ -249,7 +249,7 @@ def test_table_values_dtypes_roundtrip(setup_path): @pytest.mark.filterwarnings("ignore::pandas.errors.PerformanceWarning") def test_series(setup_path): - s = tm.makeStringSeries() + s = Series(range(10), dtype="float64", index=[f"i_{i}" for i in range(10)]) _check_roundtrip(s, tm.assert_series_equal, path=setup_path) ts = tm.makeTimeSeries() diff --git a/pandas/tests/io/pytables/test_store.py b/pandas/tests/io/pytables/test_store.py index 4624a48df18e3..96c160ab40bd8 100644 --- a/pandas/tests/io/pytables/test_store.py +++ b/pandas/tests/io/pytables/test_store.py @@ -103,7 +103,9 @@ def test_repr(setup_path): repr(store) store.info() store["a"] = tm.makeTimeSeries() - store["b"] = tm.makeStringSeries() + store["b"] = Series( + range(10), dtype="float64", index=[f"i_{i}" for i in range(10)] + ) store["c"] = tm.makeDataFrame() df = tm.makeDataFrame() diff --git a/pandas/tests/plotting/test_series.py b/pandas/tests/plotting/test_series.py index f78f5c4879b9f..e316902ec0fe4 100644 --- a/pandas/tests/plotting/test_series.py +++ b/pandas/tests/plotting/test_series.py @@ -42,7 +42,9 @@ def ts(): @pytest.fixture def series(): - return tm.makeStringSeries(name="series") + return Series( + range(20), dtype=np.float64, name="series", index=[f"i_{i}" for i in range(20)] + ) @pytest.fixture diff --git a/pandas/tests/reductions/test_reductions.py b/pandas/tests/reductions/test_reductions.py index 17227e7cfabc7..c36f073c2a567 100644 --- a/pandas/tests/reductions/test_reductions.py +++ b/pandas/tests/reductions/test_reductions.py @@ -863,7 +863,7 @@ def test_idxmin_dt64index(self, unit): def test_idxmin(self): # test idxmin # _check_stat_op approach can not be used here because of isna check. - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") # add some NaNs string_series[5:15] = np.nan @@ -896,7 +896,7 @@ def test_idxmin(self): def test_idxmax(self): # test idxmax # _check_stat_op approach can not be used here because of isna check. - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") # add some NaNs string_series[5:15] = np.nan diff --git a/pandas/tests/reductions/test_stat_reductions.py b/pandas/tests/reductions/test_stat_reductions.py index 74e521ab71f41..81f560caff3fa 100644 --- a/pandas/tests/reductions/test_stat_reductions.py +++ b/pandas/tests/reductions/test_stat_reductions.py @@ -154,15 +154,15 @@ def _check_stat_op( f(string_series_, numeric_only=True) def test_sum(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") self._check_stat_op("sum", np.sum, string_series, check_allna=False) def test_mean(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") self._check_stat_op("mean", np.mean, string_series) def test_median(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") self._check_stat_op("median", np.median, string_series) # test with integers, test failure @@ -170,19 +170,19 @@ def test_median(self): tm.assert_almost_equal(np.median(int_ts), int_ts.median()) def test_prod(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") self._check_stat_op("prod", np.prod, string_series) def test_min(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") self._check_stat_op("min", np.min, string_series, check_objects=True) def test_max(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") self._check_stat_op("max", np.max, string_series, check_objects=True) def test_var_std(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") datetime_series = tm.makeTimeSeries().rename("ts") alt = lambda x: np.std(x, ddof=1) @@ -208,7 +208,7 @@ def test_var_std(self): assert pd.isna(result) def test_sem(self): - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") datetime_series = tm.makeTimeSeries().rename("ts") alt = lambda x: np.std(x, ddof=1) / np.sqrt(len(x)) @@ -228,7 +228,7 @@ def test_sem(self): def test_skew(self): sp_stats = pytest.importorskip("scipy.stats") - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") alt = lambda x: sp_stats.skew(x, bias=False) self._check_stat_op("skew", alt, string_series) @@ -250,7 +250,7 @@ def test_skew(self): def test_kurt(self): sp_stats = pytest.importorskip("scipy.stats") - string_series = tm.makeStringSeries().rename("series") + string_series = Series(range(20), dtype=np.float64, name="series") alt = lambda x: sp_stats.kurtosis(x, bias=False) self._check_stat_op("kurt", alt, string_series) diff --git a/pandas/tests/series/test_arithmetic.py b/pandas/tests/series/test_arithmetic.py index 6471cd71f0860..f38a29bfe7e88 100644 --- a/pandas/tests/series/test_arithmetic.py +++ b/pandas/tests/series/test_arithmetic.py @@ -47,7 +47,11 @@ class TestSeriesFlexArithmetic: (lambda x: x, lambda x: x * 2, False), (lambda x: x, lambda x: x[::2], False), (lambda x: x, lambda x: 5, True), - (lambda x: tm.makeFloatSeries(), lambda x: tm.makeFloatSeries(), True), + ( + lambda x: Series(range(10), dtype=np.float64), + lambda x: Series(range(10), dtype=np.float64), + True, + ), ], ) @pytest.mark.parametrize( diff --git a/pandas/tests/series/test_unary.py b/pandas/tests/series/test_unary.py index ad0e344fa4420..8f153788e413c 100644 --- a/pandas/tests/series/test_unary.py +++ b/pandas/tests/series/test_unary.py @@ -8,13 +8,11 @@ class TestSeriesUnaryOps: # __neg__, __pos__, __invert__ def test_neg(self): - ser = tm.makeStringSeries() - ser.name = "series" + ser = Series(range(5), dtype="float64", name="series") tm.assert_series_equal(-ser, -1 * ser) def test_invert(self): - ser = tm.makeStringSeries() - ser.name = "series" + ser = Series(range(5), dtype="float64", name="series") tm.assert_series_equal(-(ser < 0), ~(ser < 0)) @pytest.mark.parametrize( From a9289cee18530fae9954ec2f8ad25bffd255e790 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 25 Nov 2023 13:14:19 -0800 Subject: [PATCH 2/3] Remove old usages --- pandas/tests/dtypes/test_missing.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pandas/tests/dtypes/test_missing.py b/pandas/tests/dtypes/test_missing.py index 1cc1e2725b9c7..857c481d3ed6b 100644 --- a/pandas/tests/dtypes/test_missing.py +++ b/pandas/tests/dtypes/test_missing.py @@ -77,8 +77,6 @@ def test_notna_notnull(notna_f): @pytest.mark.parametrize( "ser", [ - tm.makeFloatSeries(), - tm.makeStringSeries(), tm.makeObjectSeries(), tm.makeTimeSeries(), tm.makePeriodSeries(), From 627c51c4d1e3d5c98c002afecbf8d8159a639677 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Sat, 25 Nov 2023 21:52:21 -0800 Subject: [PATCH 3/3] Adjust test --- pandas/conftest.py | 4 +++- pandas/tests/apply/test_invalid_arg.py | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pandas/conftest.py b/pandas/conftest.py index 0589ffd12e232..112196058675d 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -729,7 +729,9 @@ def string_series() -> Series: Fixture for Series of floats with Index of unique strings """ return Series( - range(30), index=[f"i_{i}" for i in range(30)], dtype=np.float64, name="series" + np.arange(30, dtype=np.float64) * 1.1, + index=Index([f"i_{i}" for i in range(30)], dtype=object), + name="series", ) diff --git a/pandas/tests/apply/test_invalid_arg.py b/pandas/tests/apply/test_invalid_arg.py index 9f5157181843e..9f8611dd4b08b 100644 --- a/pandas/tests/apply/test_invalid_arg.py +++ b/pandas/tests/apply/test_invalid_arg.py @@ -338,11 +338,8 @@ def test_transform_wont_agg_series(string_series, func): # we are trying to transform with an aggregator msg = "Function did not transform" - warn = RuntimeWarning if func[0] == "sqrt" else None - warn_msg = "invalid value encountered in sqrt" with pytest.raises(ValueError, match=msg): - with tm.assert_produces_warning(warn, match=warn_msg, check_stacklevel=False): - string_series.transform(func) + string_series.transform(func) @pytest.mark.parametrize(