Skip to content

Commit e0d1c7e

Browse files
authored
TST: collect tests by method (#37617)
* TST/REF: collect test_timeseries tests by method * misplaced DataFrame.values tst * misplaced dataframe.values test * collect test by method
1 parent 93e3477 commit e0d1c7e

File tree

9 files changed

+93
-109
lines changed

9 files changed

+93
-109
lines changed

pandas/tests/frame/methods/test_asfreq.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,14 @@ def test_asfreq_fillvalue(self):
7474
expected_series = ts.asfreq(freq="1S").fillna(9.0)
7575
actual_series = ts.asfreq(freq="1S", fill_value=9.0)
7676
tm.assert_series_equal(expected_series, actual_series)
77+
78+
def test_asfreq_with_date_object_index(self, frame_or_series):
79+
rng = date_range("1/1/2000", periods=20)
80+
ts = frame_or_series(np.random.randn(20), index=rng)
81+
82+
ts2 = ts.copy()
83+
ts2.index = [x.date() for x in ts2.index]
84+
85+
result = ts2.asfreq("4H", method="ffill")
86+
expected = ts.asfreq("4H", method="ffill")
87+
tm.assert_equal(result, expected)

pandas/tests/frame/methods/test_values.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import numpy as np
2+
import pytest
23

3-
from pandas import DataFrame, NaT, Timestamp, date_range
4+
from pandas import DataFrame, NaT, Series, Timestamp, date_range, period_range
45
import pandas._testing as tm
56

67

@@ -44,6 +45,22 @@ def test_values_duplicates(self):
4445

4546
tm.assert_numpy_array_equal(result, expected)
4647

48+
@pytest.mark.parametrize("constructor", [date_range, period_range])
49+
def test_values_casts_datetimelike_to_object(self, constructor):
50+
series = Series(constructor("2000-01-01", periods=10, freq="D"))
51+
52+
expected = series.astype("object")
53+
54+
df = DataFrame({"a": series, "b": np.random.randn(len(series))})
55+
56+
result = df.values.squeeze()
57+
assert (result[:, 0] == expected.values).all()
58+
59+
df = DataFrame({"a": series, "b": ["foo"] * len(series)})
60+
61+
result = df.values.squeeze()
62+
assert (result[:, 0] == expected.values).all()
63+
4764
def test_frame_values_with_tz(self):
4865
tz = "US/Central"
4966
df = DataFrame({"A": date_range("2000", periods=4, tz=tz)})

pandas/tests/indexes/datetimes/test_indexing.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,13 @@ def test_contains_nonunique(self, vals):
544544

545545

546546
class TestGetIndexer:
547+
def test_get_indexer_date_objs(self):
548+
rng = date_range("1/1/2000", periods=20)
549+
550+
result = rng.get_indexer(rng.map(lambda x: x.date()))
551+
expected = rng.get_indexer(rng)
552+
tm.assert_numpy_array_equal(result, expected)
553+
547554
def test_get_indexer(self):
548555
idx = pd.date_range("2000-01-01", periods=3)
549556
exp = np.array([0, 1, 2], dtype=np.intp)

pandas/tests/series/apply/test_series_apply.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,23 @@
55
import pytest
66

77
import pandas as pd
8-
from pandas import DataFrame, Index, MultiIndex, Series, isna
8+
from pandas import DataFrame, Index, MultiIndex, Series, isna, timedelta_range
99
import pandas._testing as tm
1010
from pandas.core.base import SpecificationError
1111

1212

1313
class TestSeriesApply:
14+
def test_series_map_box_timedelta(self):
15+
# GH#11349
16+
ser = Series(timedelta_range("1 day 1 s", periods=5, freq="h"))
17+
18+
def f(x):
19+
return x.total_seconds()
20+
21+
ser.map(f)
22+
ser.apply(f)
23+
DataFrame(ser).applymap(f)
24+
1425
def test_apply(self, datetime_series):
1526
with np.errstate(all="ignore"):
1627
tm.assert_series_equal(
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import numpy as np
2+
import pytest
3+
4+
from pandas import IntervalIndex, Series, period_range
5+
import pandas._testing as tm
6+
7+
8+
class TestValues:
9+
@pytest.mark.parametrize(
10+
"data",
11+
[
12+
period_range("2000", periods=4),
13+
IntervalIndex.from_breaks([1, 2, 3, 4]),
14+
],
15+
)
16+
def test_values_object_extension_dtypes(self, data):
17+
# https://github.com/pandas-dev/pandas/issues/23995
18+
result = Series(data).values
19+
expected = np.array(data.astype(object))
20+
tm.assert_numpy_array_equal(result, expected)

pandas/tests/series/test_arithmetic.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,21 @@ def test_datetime_understood(self):
730730
expected = Series(pd.to_datetime(["2011-12-26", "2011-12-27", "2011-12-28"]))
731731
tm.assert_series_equal(result, expected)
732732

733+
def test_align_date_objects_with_datetimeindex(self):
734+
rng = date_range("1/1/2000", periods=20)
735+
ts = Series(np.random.randn(20), index=rng)
736+
737+
ts_slice = ts[5:]
738+
ts2 = ts_slice.copy()
739+
ts2.index = [x.date() for x in ts2.index]
740+
741+
result = ts + ts2
742+
result2 = ts2 + ts
743+
expected = ts + ts[5:]
744+
expected.index = expected.index._with_freq(None)
745+
tm.assert_series_equal(result, expected)
746+
tm.assert_series_equal(result2, expected)
747+
733748

734749
@pytest.mark.parametrize(
735750
"names",

pandas/tests/series/test_dtypes.py

Lines changed: 10 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pandas.core.dtypes.dtypes import CategoricalDtype
77

88
import pandas as pd
9-
from pandas import Categorical, DataFrame, Series, date_range
9+
from pandas import Categorical, DataFrame, Series
1010
import pandas._testing as tm
1111

1212

@@ -120,18 +120,20 @@ def cmp(a, b):
120120
s.astype("object").astype(CategoricalDtype()), roundtrip_expected
121121
)
122122

123+
def test_invalid_conversions(self):
123124
# invalid conversion (these are NOT a dtype)
125+
cat = Categorical([f"{i} - {i + 499}" for i in range(0, 10000, 500)])
126+
ser = Series(np.random.randint(0, 10000, 100)).sort_values()
127+
ser = pd.cut(ser, range(0, 10500, 500), right=False, labels=cat)
128+
124129
msg = (
125130
"dtype '<class 'pandas.core.arrays.categorical.Categorical'>' "
126131
"not understood"
127132
)
128-
129-
for invalid in [
130-
lambda x: x.astype(Categorical),
131-
lambda x: x.astype("object").astype(Categorical),
132-
]:
133-
with pytest.raises(TypeError, match=msg):
134-
invalid(s)
133+
with pytest.raises(TypeError, match=msg):
134+
ser.astype(Categorical)
135+
with pytest.raises(TypeError, match=msg):
136+
ser.astype("object").astype(Categorical)
135137

136138
@pytest.mark.parametrize("dtype", np.typecodes["All"])
137139
def test_astype_empty_constructor_equality(self, dtype):
@@ -148,27 +150,6 @@ def test_astype_empty_constructor_equality(self, dtype):
148150
as_type_empty = Series([]).astype(dtype)
149151
tm.assert_series_equal(init_empty, as_type_empty)
150152

151-
def test_intercept_astype_object(self):
152-
series = Series(date_range("1/1/2000", periods=10))
153-
154-
# This test no longer makes sense, as
155-
# Series is by default already M8[ns].
156-
expected = series.astype("object")
157-
158-
df = DataFrame({"a": series, "b": np.random.randn(len(series))})
159-
exp_dtypes = Series(
160-
[np.dtype("datetime64[ns]"), np.dtype("float64")], index=["a", "b"]
161-
)
162-
tm.assert_series_equal(df.dtypes, exp_dtypes)
163-
164-
result = df.values.squeeze()
165-
assert (result[:, 0] == expected.values).all()
166-
167-
df = DataFrame({"a": series, "b": ["foo"] * len(series)})
168-
169-
result = df.values.squeeze()
170-
assert (result[:, 0] == expected.values).all()
171-
172153
def test_series_to_categorical(self):
173154
# see gh-16524: test conversion of Series to Categorical
174155
series = Series(["a", "b", "c"])
@@ -178,19 +159,6 @@ def test_series_to_categorical(self):
178159

179160
tm.assert_series_equal(result, expected)
180161

181-
@pytest.mark.parametrize(
182-
"data",
183-
[
184-
pd.period_range("2000", periods=4),
185-
pd.IntervalIndex.from_breaks([1, 2, 3, 4]),
186-
],
187-
)
188-
def test_values_compatibility(self, data):
189-
# https://github.com/pandas-dev/pandas/issues/23995
190-
result = Series(data).values
191-
expected = np.array(data.astype(object))
192-
tm.assert_numpy_array_equal(result, expected)
193-
194162
def test_reindex_astype_order_consistency(self):
195163
# GH 17444
196164
s = Series([1, 2, 3], index=[2, 0, 1])

pandas/tests/series/test_period.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

pandas/tests/series/test_timeseries.py

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)