Skip to content

Commit 9083e84

Browse files
committed
Updated tests according to feedback
1 parent b727250 commit 9083e84

File tree

2 files changed

+43
-9
lines changed

2 files changed

+43
-9
lines changed

pandas/tests/io/parser/dtypes/test_categorical.py

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -272,15 +272,46 @@ def test_categorical_coerces_numeric(all_parsers):
272272
tm.assert_frame_equal(result, expected)
273273

274274

275+
def test_categorical_coerces_datetime(all_parsers):
276+
parser = all_parsers
277+
dti = pd.DatetimeIndex(["2017-01-01", "2018-01-01", "2019-01-01"], freq=None)
278+
279+
dtype = {"b": CategoricalDtype(dti)}
280+
281+
data = "b\n2017-01-01\n2018-01-01\n2019-01-01"
282+
expected = DataFrame({"b": Categorical(dtype["b"].categories)})
283+
284+
if parser.engine == "pyarrow":
285+
msg = "Constructing a Categorical with a dtype and values containing"
286+
with tm.assert_produces_warning(
287+
Pandas4Warning, match=msg, check_stacklevel=False
288+
):
289+
result = parser.read_csv(StringIO(data), dtype=dtype)
290+
tm.assert_series_equal(
291+
result["b"].isna(), pd.Series([True, True, True], name="b")
292+
)
293+
else:
294+
result = parser.read_csv(StringIO(data), dtype=dtype)
295+
tm.assert_frame_equal(result, expected)
296+
297+
275298
def test_categorical_coerces_timestamp(all_parsers):
276299
parser = all_parsers
277-
dtype = {"b": CategoricalDtype([Timestamp("2014-01-01 12:00:00")])}
300+
dtype = {"b": CategoricalDtype([Timestamp("2014")])}
278301

279-
data = "b\n2014-01-01 12:00:00\n2014-01-01 12:00:00"
280-
expected = DataFrame({"b": Categorical([Timestamp("2014-01-01 12:00:00")] * 2)})
302+
data = "b\n2014-01-01\n2014-01-01"
303+
expected = DataFrame({"b": Categorical([Timestamp("2014")] * 2)})
281304

282-
result = parser.read_csv(StringIO(data), dtype=dtype)
283-
tm.assert_frame_equal(result, expected)
305+
if parser.engine == "pyarrow":
306+
msg = "Constructing a Categorical with a dtype and values containing"
307+
with tm.assert_produces_warning(
308+
Pandas4Warning, match=msg, check_stacklevel=False
309+
):
310+
result = parser.read_csv(StringIO(data), dtype=dtype)
311+
tm.assert_series_equal(result["b"].isna(), pd.Series([True, True], name="b"))
312+
else:
313+
result = parser.read_csv(StringIO(data), dtype=dtype)
314+
tm.assert_frame_equal(result, expected)
284315

285316

286317
def test_categorical_coerces_timedelta(all_parsers):

pandas/tests/series/test_arithmetic.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -757,19 +757,22 @@ def test_datetime_understood(self, unit):
757757
expected = Series(exp_dti)
758758
tm.assert_series_equal(result, expected)
759759

760-
def test_align_date_objects_with_datetimeindex_coerced(self):
760+
def test_align_date_objects_with_datetimeindex(self):
761761
# GH#62158: datetime.date objects no longer auto-align with Timestamps
762762
rng = date_range("1/1/2000", periods=20)
763763
ts = Series(np.random.default_rng(2).standard_normal(20), index=rng)
764764

765765
ts_slice = ts[5:]
766766
ts2 = ts_slice.copy()
767-
ts2.index = pd.to_datetime([x.date() for x in ts2.index])
767+
ts2.index = [x.date() for x in ts2.index]
768768

769769
result = ts + ts2
770-
expected = ts + ts[5:]
771-
expected.index = expected.index._with_freq(None)
770+
result2 = ts2 + ts
771+
expected = Series(dtype=float, index=result.index)
772+
expected2 = Series(dtype=float, index=result2.index)
773+
772774
tm.assert_series_equal(result, expected)
775+
tm.assert_series_equal(result2, expected2)
773776

774777

775778
class TestNamePreservation:

0 commit comments

Comments
 (0)