Skip to content

Commit a7e4af4

Browse files
authored
TST: split and parametrize (#55957)
1 parent 4da5926 commit a7e4af4

File tree

5 files changed

+126
-97
lines changed

5 files changed

+126
-97
lines changed

pandas/tests/frame/methods/test_quantile.py

-1
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,6 @@ def test_quantile_datetime(self, unit):
376376
{"a": Timestamp("2010-07-02 12:00:00").as_unit(unit), "b": 2.5},
377377
index=[0.5],
378378
)
379-
# expected["a"] = expected["a"].dt.as_unit(unit)
380379
tm.assert_frame_equal(result, expected)
381380

382381
# axis = 1

pandas/tests/io/test_stata.py

+1
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ def test_read_dta2(self, datapath):
184184
parsed_115 = self.read_dta(path2)
185185
with tm.assert_produces_warning(UserWarning):
186186
parsed_117 = self.read_dta(path3)
187+
# FIXME: don't leave commented-out
187188
# 113 is buggy due to limits of date format support in Stata
188189
# parsed_113 = self.read_dta(
189190
# datapath("io", "data", "stata", "stata2_113.dta")

pandas/tests/resample/test_datetime_index.py

+86-52
Original file line numberDiff line numberDiff line change
@@ -1119,7 +1119,7 @@ def test_nanosecond_resample_error():
11191119
tm.assert_series_equal(result, exp)
11201120

11211121

1122-
def test_resample_anchored_intraday(simple_date_range_series, unit):
1122+
def test_resample_anchored_intraday(unit):
11231123
# #1471, #1458
11241124

11251125
rng = date_range("1/1/2012", "4/1/2012", freq="100min").as_unit(unit)
@@ -1141,6 +1141,8 @@ def test_resample_anchored_intraday(simple_date_range_series, unit):
11411141
assert exp.index.freq == "ME"
11421142
tm.assert_frame_equal(result, exp)
11431143

1144+
1145+
def test_resample_anchored_intraday2(unit):
11441146
rng = date_range("1/1/2012", "4/1/2012", freq="100min").as_unit(unit)
11451147
df = DataFrame(rng.month, index=rng)
11461148

@@ -1161,6 +1163,8 @@ def test_resample_anchored_intraday(simple_date_range_series, unit):
11611163
expected.index = expected.index.as_unit(unit)
11621164
tm.assert_frame_equal(result, expected)
11631165

1166+
1167+
def test_resample_anchored_intraday3(simple_date_range_series, unit):
11641168
ts = simple_date_range_series("2012-04-29 23:00", "2012-04-30 5:00", freq="h")
11651169
ts.index = ts.index.as_unit(unit)
11661170
resampled = ts.resample("ME").mean()
@@ -1374,8 +1378,17 @@ def test_resample_timegrouper(dates):
13741378
result = df.groupby(Grouper(freq="ME", key="A")).count()
13751379
tm.assert_frame_equal(result, expected)
13761380

1381+
1382+
@pytest.mark.parametrize("dates", [dates1, dates2, dates3])
1383+
def test_resample_timegrouper2(dates):
13771384
df = DataFrame({"A": dates, "B": np.arange(len(dates)), "C": np.arange(len(dates))})
13781385
result = df.set_index("A").resample("ME").count()
1386+
1387+
exp_idx = DatetimeIndex(
1388+
["2014-07-31", "2014-08-31", "2014-09-30", "2014-10-31", "2014-11-30"],
1389+
freq="ME",
1390+
name="A",
1391+
)
13791392
expected = DataFrame(
13801393
{"B": [1, 0, 2, 2, 1], "C": [1, 0, 2, 2, 1]},
13811394
index=exp_idx,
@@ -1574,80 +1587,95 @@ def test_resample_dst_anchor(unit):
15741587
),
15751588
)
15761589

1590+
1591+
def test_resample_dst_anchor2(unit):
15771592
dti = date_range(
15781593
"2013-09-30", "2013-11-02", freq="30Min", tz="Europe/Paris"
15791594
).as_unit(unit)
15801595
values = range(dti.size)
15811596
df = DataFrame({"a": values, "b": values, "c": values}, index=dti, dtype="int64")
15821597
how = {"a": "min", "b": "max", "c": "count"}
15831598

1599+
rs = df.resample("W-MON")
1600+
result = rs.agg(how)[["a", "b", "c"]]
1601+
expected = DataFrame(
1602+
{
1603+
"a": [0, 48, 384, 720, 1056, 1394],
1604+
"b": [47, 383, 719, 1055, 1393, 1586],
1605+
"c": [48, 336, 336, 336, 338, 193],
1606+
},
1607+
index=date_range(
1608+
"9/30/2013", "11/4/2013", freq="W-MON", tz="Europe/Paris"
1609+
).as_unit(unit),
1610+
)
15841611
tm.assert_frame_equal(
1585-
df.resample("W-MON").agg(how)[["a", "b", "c"]],
1586-
DataFrame(
1587-
{
1588-
"a": [0, 48, 384, 720, 1056, 1394],
1589-
"b": [47, 383, 719, 1055, 1393, 1586],
1590-
"c": [48, 336, 336, 336, 338, 193],
1591-
},
1592-
index=date_range(
1593-
"9/30/2013", "11/4/2013", freq="W-MON", tz="Europe/Paris"
1594-
).as_unit(unit),
1595-
),
1612+
result,
1613+
expected,
15961614
"W-MON Frequency",
15971615
)
15981616

1617+
rs2 = df.resample("2W-MON")
1618+
result2 = rs2.agg(how)[["a", "b", "c"]]
1619+
expected2 = DataFrame(
1620+
{
1621+
"a": [0, 48, 720, 1394],
1622+
"b": [47, 719, 1393, 1586],
1623+
"c": [48, 672, 674, 193],
1624+
},
1625+
index=date_range(
1626+
"9/30/2013", "11/11/2013", freq="2W-MON", tz="Europe/Paris"
1627+
).as_unit(unit),
1628+
)
15991629
tm.assert_frame_equal(
1600-
df.resample("2W-MON").agg(how)[["a", "b", "c"]],
1601-
DataFrame(
1602-
{
1603-
"a": [0, 48, 720, 1394],
1604-
"b": [47, 719, 1393, 1586],
1605-
"c": [48, 672, 674, 193],
1606-
},
1607-
index=date_range(
1608-
"9/30/2013", "11/11/2013", freq="2W-MON", tz="Europe/Paris"
1609-
).as_unit(unit),
1610-
),
1630+
result2,
1631+
expected2,
16111632
"2W-MON Frequency",
16121633
)
16131634

1614-
tm.assert_frame_equal(
1615-
df.resample("MS").agg(how)[["a", "b", "c"]],
1616-
DataFrame(
1617-
{"a": [0, 48, 1538], "b": [47, 1537, 1586], "c": [48, 1490, 49]},
1618-
index=date_range(
1619-
"9/1/2013", "11/1/2013", freq="MS", tz="Europe/Paris"
1620-
).as_unit(unit),
1635+
rs3 = df.resample("MS")
1636+
result3 = rs3.agg(how)[["a", "b", "c"]]
1637+
expected3 = DataFrame(
1638+
{"a": [0, 48, 1538], "b": [47, 1537, 1586], "c": [48, 1490, 49]},
1639+
index=date_range("9/1/2013", "11/1/2013", freq="MS", tz="Europe/Paris").as_unit(
1640+
unit
16211641
),
1642+
)
1643+
tm.assert_frame_equal(
1644+
result3,
1645+
expected3,
16221646
"MS Frequency",
16231647
)
16241648

1649+
rs4 = df.resample("2MS")
1650+
result4 = rs4.agg(how)[["a", "b", "c"]]
1651+
expected4 = DataFrame(
1652+
{"a": [0, 1538], "b": [1537, 1586], "c": [1538, 49]},
1653+
index=date_range(
1654+
"9/1/2013", "11/1/2013", freq="2MS", tz="Europe/Paris"
1655+
).as_unit(unit),
1656+
)
16251657
tm.assert_frame_equal(
1626-
df.resample("2MS").agg(how)[["a", "b", "c"]],
1627-
DataFrame(
1628-
{"a": [0, 1538], "b": [1537, 1586], "c": [1538, 49]},
1629-
index=date_range(
1630-
"9/1/2013", "11/1/2013", freq="2MS", tz="Europe/Paris"
1631-
).as_unit(unit),
1632-
),
1658+
result4,
1659+
expected4,
16331660
"2MS Frequency",
16341661
)
16351662

16361663
df_daily = df["10/26/2013":"10/29/2013"]
1664+
rs_d = df_daily.resample("D")
1665+
result_d = rs_d.agg({"a": "min", "b": "max", "c": "count"})[["a", "b", "c"]]
1666+
expected_d = DataFrame(
1667+
{
1668+
"a": [1248, 1296, 1346, 1394],
1669+
"b": [1295, 1345, 1393, 1441],
1670+
"c": [48, 50, 48, 48],
1671+
},
1672+
index=date_range(
1673+
"10/26/2013", "10/29/2013", freq="D", tz="Europe/Paris"
1674+
).as_unit(unit),
1675+
)
16371676
tm.assert_frame_equal(
1638-
df_daily.resample("D").agg({"a": "min", "b": "max", "c": "count"})[
1639-
["a", "b", "c"]
1640-
],
1641-
DataFrame(
1642-
{
1643-
"a": [1248, 1296, 1346, 1394],
1644-
"b": [1295, 1345, 1393, 1441],
1645-
"c": [48, 50, 48, 48],
1646-
},
1647-
index=date_range(
1648-
"10/26/2013", "10/29/2013", freq="D", tz="Europe/Paris"
1649-
).as_unit(unit),
1650-
),
1677+
result_d,
1678+
expected_d,
16511679
"D Frequency",
16521680
)
16531681

@@ -1728,9 +1756,8 @@ def test_resample_with_nat(unit):
17281756
"1970-01-01 00:00:01",
17291757
"1970-01-01 00:00:02",
17301758
]
1731-
)
1759+
).as_unit(unit)
17321760
frame = DataFrame([2, 3, 5, 7, 11], index=index)
1733-
frame.index = frame.index.as_unit(unit)
17341761

17351762
index_1s = DatetimeIndex(
17361763
["1970-01-01 00:00:00", "1970-01-01 00:00:01", "1970-01-01 00:00:02"]
@@ -1789,7 +1816,14 @@ def f(data, add_arg):
17891816
expected = series.resample("D").mean().multiply(multiplier)
17901817
tm.assert_series_equal(result, expected)
17911818

1819+
1820+
def test_resample_apply_with_additional_args2():
17921821
# Testing dataframe
1822+
def f(data, add_arg):
1823+
return np.mean(data) * add_arg
1824+
1825+
multiplier = 10
1826+
17931827
df = DataFrame({"A": 1, "B": 2}, index=date_range("2017", periods=10))
17941828
msg = "DataFrameGroupBy.resample operated on the grouping columns"
17951829
with tm.assert_produces_warning(FutureWarning, match=msg):

pandas/tests/resample/test_period_index.py

+36-43
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ def test_annual_upsample(self, simple_period_range_series):
174174
exp = df["a"].resample("D").ffill()
175175
tm.assert_series_equal(rdf["a"], exp)
176176

177+
def test_annual_upsample2(self):
177178
rng = period_range("2000", "2003", freq="Y-DEC")
178179
ts = Series([1, 2, 3, 4], index=rng)
179180

@@ -258,20 +259,29 @@ def test_resample_incompat_freq(self):
258259
"Frequency <MonthEnd> cannot be resampled to <Week: weekday=6>, "
259260
"as they are not sub or super periods"
260261
)
262+
pi = period_range(start="2000", periods=3, freq="M")
263+
ser = Series(range(3), index=pi)
264+
rs = ser.resample("W")
261265
with pytest.raises(IncompatibleFrequency, match=msg):
262-
Series(
263-
range(3), index=period_range(start="2000", periods=3, freq="M")
264-
).resample("W").mean()
266+
# TODO: should this raise at the resample call instead of at the mean call?
267+
rs.mean()
265268

266-
def test_with_local_timezone_pytz(self):
269+
@pytest.mark.parametrize(
270+
"tz",
271+
[
272+
pytz.timezone("America/Los_Angeles"),
273+
dateutil.tz.gettz("America/Los_Angeles"),
274+
],
275+
)
276+
def test_with_local_timezone(self, tz):
267277
# see gh-5430
268-
local_timezone = pytz.timezone("America/Los_Angeles")
278+
local_timezone = tz
269279

270280
start = datetime(year=2013, month=11, day=1, hour=0, minute=0, tzinfo=pytz.utc)
271281
# 1 day later
272282
end = datetime(year=2013, month=11, day=2, hour=0, minute=0, tzinfo=pytz.utc)
273283

274-
index = date_range(start, end, freq="h")
284+
index = date_range(start, end, freq="h", name="idx")
275285

276286
series = Series(1, index=index)
277287
series = series.tz_convert(local_timezone)
@@ -280,52 +290,30 @@ def test_with_local_timezone_pytz(self):
280290
# Create the expected series
281291
# Index is moved back a day with the timezone conversion from UTC to
282292
# Pacific
283-
expected_index = period_range(start=start, end=end, freq="D") - offsets.Day()
293+
expected_index = (
294+
period_range(start=start, end=end, freq="D", name="idx") - offsets.Day()
295+
)
284296
expected = Series(1.0, index=expected_index)
285297
tm.assert_series_equal(result, expected)
286298

287-
def test_resample_with_pytz(self):
299+
@pytest.mark.parametrize(
300+
"tz",
301+
[
302+
pytz.timezone("America/Los_Angeles"),
303+
dateutil.tz.gettz("America/Los_Angeles"),
304+
],
305+
)
306+
def test_resample_with_tz(self, tz):
288307
# GH 13238
289-
s = Series(
290-
2, index=date_range("2017-01-01", periods=48, freq="h", tz="US/Eastern")
291-
)
292-
result = s.resample("D").mean()
308+
ser = Series(2, index=date_range("2017-01-01", periods=48, freq="h", tz=tz))
309+
result = ser.resample("D").mean()
293310
expected = Series(
294311
2.0,
295-
index=pd.DatetimeIndex(
296-
["2017-01-01", "2017-01-02"], tz="US/Eastern", freq="D"
297-
),
312+
index=pd.DatetimeIndex(["2017-01-01", "2017-01-02"], tz=tz, freq="D"),
298313
)
299314
tm.assert_series_equal(result, expected)
300315
# Especially assert that the timezone is LMT for pytz
301-
assert result.index.tz == pytz.timezone("US/Eastern")
302-
303-
def test_with_local_timezone_dateutil(self):
304-
# see gh-5430
305-
local_timezone = "dateutil/America/Los_Angeles"
306-
307-
start = datetime(
308-
year=2013, month=11, day=1, hour=0, minute=0, tzinfo=dateutil.tz.tzutc()
309-
)
310-
# 1 day later
311-
end = datetime(
312-
year=2013, month=11, day=2, hour=0, minute=0, tzinfo=dateutil.tz.tzutc()
313-
)
314-
315-
index = date_range(start, end, freq="h", name="idx")
316-
317-
series = Series(1, index=index)
318-
series = series.tz_convert(local_timezone)
319-
result = series.resample("D", kind="period").mean()
320-
321-
# Create the expected series
322-
# Index is moved back a day with the timezone conversion from UTC to
323-
# Pacific
324-
expected_index = (
325-
period_range(start=start, end=end, freq="D", name="idx") - offsets.Day()
326-
)
327-
expected = Series(1.0, index=expected_index)
328-
tm.assert_series_equal(result, expected)
316+
assert result.index.tz == tz
329317

330318
def test_resample_nonexistent_time_bin_edge(self):
331319
# GH 19375
@@ -336,6 +324,7 @@ def test_resample_nonexistent_time_bin_edge(self):
336324
result = expected.resample("900s").mean()
337325
tm.assert_series_equal(result, expected)
338326

327+
def test_resample_nonexistent_time_bin_edge2(self):
339328
# GH 23742
340329
index = date_range(start="2017-10-10", end="2017-10-20", freq="1h")
341330
index = index.tz_localize("UTC").tz_convert("America/Sao_Paulo")
@@ -420,6 +409,7 @@ def test_resample_to_quarterly_start_end(self, simple_period_range_series, how):
420409
expected = ts.asfreq("Q-MAR", how=how)
421410
expected = expected.reindex(result.index, method="ffill")
422411

412+
# FIXME: don't leave commented-out
423413
# .to_timestamp('D')
424414
# expected = expected.resample('Q-MAR').ffill()
425415

@@ -510,6 +500,7 @@ def test_resample_tz_localized(self):
510500
# it works
511501
result = ts_local.resample("D").mean()
512502

503+
def test_resample_tz_localized2(self):
513504
# #2245
514505
idx = date_range(
515506
"2001-09-20 15:59", "2001-09-20 16:00", freq="min", tz="Australia/Sydney"
@@ -528,6 +519,7 @@ def test_resample_tz_localized(self):
528519
expected = Series([1.5], index=ex_index)
529520
tm.assert_series_equal(result, expected)
530521

522+
def test_resample_tz_localized3(self):
531523
# GH 6397
532524
# comparing an offset that doesn't propagate tz's
533525
rng = date_range("1/1/2011", periods=20000, freq="h")
@@ -694,6 +686,7 @@ def test_evenly_divisible_with_no_extra_bins(self):
694686
)
695687
tm.assert_frame_equal(result, expected)
696688

689+
def test_evenly_divisible_with_no_extra_bins2(self):
697690
index = date_range(start="2001-5-4", periods=28)
698691
df = DataFrame(
699692
[

pandas/tests/resample/test_resampler_grouper.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -695,8 +695,10 @@ def test_groupby_resample_on_index_with_list_of_keys_missing_column():
695695
name="date",
696696
),
697697
)
698+
gb = df.groupby("group")
699+
rs = gb.resample("2D")
698700
with pytest.raises(KeyError, match="Columns not found"):
699-
df.groupby("group").resample("2D")[["val_not_in_dataframe"]].mean()
701+
rs[["val_not_in_dataframe"]]
700702

701703

702704
@pytest.mark.parametrize("kind", ["datetime", "period"])

0 commit comments

Comments
 (0)