Skip to content

Commit 13dfd3a

Browse files
committed
collect asfreq tests
1 parent fbd3e71 commit 13dfd3a

File tree

2 files changed

+72
-70
lines changed

2 files changed

+72
-70
lines changed

pandas/tests/series/methods/test_asfreq.py

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1+
from datetime import datetime
2+
13
import numpy as np
24
import pytest
35

4-
from pandas import DataFrame, Series, date_range, period_range
6+
from pandas import DataFrame, DatetimeIndex, Series, date_range, period_range
57
import pandas._testing as tm
68

9+
from pandas.tseries.offsets import BDay, BMonthEnd
10+
711

812
class TestAsFreq:
913
# TODO: de-duplicate/parametrize or move DataFrame test
@@ -31,3 +35,70 @@ def test_tz_aware_asfreq(self, tz):
3135

3236
# it works!
3337
ser.asfreq("T")
38+
39+
def test_asfreq(self):
40+
ts = Series(
41+
[0.0, 1.0, 2.0],
42+
index=[
43+
datetime(2009, 10, 30),
44+
datetime(2009, 11, 30),
45+
datetime(2009, 12, 31),
46+
],
47+
)
48+
49+
daily_ts = ts.asfreq("B")
50+
monthly_ts = daily_ts.asfreq("BM")
51+
tm.assert_series_equal(monthly_ts, ts)
52+
53+
daily_ts = ts.asfreq("B", method="pad")
54+
monthly_ts = daily_ts.asfreq("BM")
55+
tm.assert_series_equal(monthly_ts, ts)
56+
57+
daily_ts = ts.asfreq(BDay())
58+
monthly_ts = daily_ts.asfreq(BMonthEnd())
59+
tm.assert_series_equal(monthly_ts, ts)
60+
61+
result = ts[:0].asfreq("M")
62+
assert len(result) == 0
63+
assert result is not ts
64+
65+
daily_ts = ts.asfreq("D", fill_value=-1)
66+
result = daily_ts.value_counts().sort_index()
67+
expected = Series([60, 1, 1, 1], index=[-1.0, 2.0, 1.0, 0.0]).sort_index()
68+
tm.assert_series_equal(result, expected)
69+
70+
def test_asfreq_datetimeindex_empty_series(self):
71+
# GH#14320
72+
index = DatetimeIndex(["2016-09-29 11:00"])
73+
expected = Series(index=index, dtype=object).asfreq("H")
74+
result = Series([3], index=index.copy()).asfreq("H")
75+
tm.assert_index_equal(expected.index, result.index)
76+
77+
def test_asfreq_keep_index_name(self):
78+
# GH#9854
79+
index_name = "bar"
80+
index = date_range("20130101", periods=20, name=index_name)
81+
df = DataFrame(list(range(20)), columns=["foo"], index=index)
82+
83+
assert index_name == df.index.name
84+
assert index_name == df.asfreq("10D").index.name
85+
86+
def test_asfreq_normalize(self):
87+
rng = date_range("1/1/2000 09:30", periods=20)
88+
norm = date_range("1/1/2000", periods=20)
89+
vals = np.random.randn(20)
90+
ts = Series(vals, index=rng)
91+
92+
result = ts.asfreq("D", normalize=True)
93+
norm = date_range("1/1/2000", periods=20)
94+
expected = Series(vals, index=norm)
95+
96+
tm.assert_series_equal(result, expected)
97+
98+
vals = np.random.randn(20, 3)
99+
ts = DataFrame(vals, index=rng)
100+
101+
result = ts.asfreq("D", normalize=True)
102+
expected = DataFrame(vals, index=norm)
103+
104+
tm.assert_frame_equal(result, expected)

pandas/tests/series/test_timeseries.py

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
)
2222
import pandas._testing as tm
2323

24-
from pandas.tseries.offsets import BDay, BMonthEnd
25-
2624

2725
def _simple_ts(start, end, freq="D"):
2826
rng = date_range(start, end, freq=freq)
@@ -36,44 +34,6 @@ def assert_range_equal(left, right):
3634

3735

3836
class TestTimeSeries:
39-
def test_asfreq(self):
40-
ts = Series(
41-
[0.0, 1.0, 2.0],
42-
index=[
43-
datetime(2009, 10, 30),
44-
datetime(2009, 11, 30),
45-
datetime(2009, 12, 31),
46-
],
47-
)
48-
49-
daily_ts = ts.asfreq("B")
50-
monthly_ts = daily_ts.asfreq("BM")
51-
tm.assert_series_equal(monthly_ts, ts)
52-
53-
daily_ts = ts.asfreq("B", method="pad")
54-
monthly_ts = daily_ts.asfreq("BM")
55-
tm.assert_series_equal(monthly_ts, ts)
56-
57-
daily_ts = ts.asfreq(BDay())
58-
monthly_ts = daily_ts.asfreq(BMonthEnd())
59-
tm.assert_series_equal(monthly_ts, ts)
60-
61-
result = ts[:0].asfreq("M")
62-
assert len(result) == 0
63-
assert result is not ts
64-
65-
daily_ts = ts.asfreq("D", fill_value=-1)
66-
result = daily_ts.value_counts().sort_index()
67-
expected = Series([60, 1, 1, 1], index=[-1.0, 2.0, 1.0, 0.0]).sort_index()
68-
tm.assert_series_equal(result, expected)
69-
70-
def test_asfreq_datetimeindex_empty_series(self):
71-
# GH 14320
72-
index = pd.DatetimeIndex(["2016-09-29 11:00"])
73-
expected = Series(index=index, dtype=object).asfreq("H")
74-
result = Series([3], index=index.copy()).asfreq("H")
75-
tm.assert_index_equal(expected.index, result.index)
76-
7737
def test_autocorr(self, datetime_series):
7838
# Just run the function
7939
corr1 = datetime_series.autocorr()
@@ -266,15 +226,6 @@ def test_series_repr_nat(self):
266226
)
267227
assert result == expected
268228

269-
def test_asfreq_keep_index_name(self):
270-
# GH #9854
271-
index_name = "bar"
272-
index = pd.date_range("20130101", periods=20, name=index_name)
273-
df = pd.DataFrame(list(range(20)), columns=["foo"], index=index)
274-
275-
assert index_name == df.index.name
276-
assert index_name == df.asfreq("10D").index.name
277-
278229
def test_promote_datetime_date(self):
279230
rng = date_range("1/1/2000", periods=20)
280231
ts = Series(np.random.randn(20), index=rng)
@@ -298,26 +249,6 @@ def test_promote_datetime_date(self):
298249
expected = rng.get_indexer(ts_slice.index)
299250
tm.assert_numpy_array_equal(result, expected)
300251

301-
def test_asfreq_normalize(self):
302-
rng = date_range("1/1/2000 09:30", periods=20)
303-
norm = date_range("1/1/2000", periods=20)
304-
vals = np.random.randn(20)
305-
ts = Series(vals, index=rng)
306-
307-
result = ts.asfreq("D", normalize=True)
308-
norm = date_range("1/1/2000", periods=20)
309-
expected = Series(vals, index=norm)
310-
311-
tm.assert_series_equal(result, expected)
312-
313-
vals = np.random.randn(20, 3)
314-
ts = DataFrame(vals, index=rng)
315-
316-
result = ts.asfreq("D", normalize=True)
317-
expected = DataFrame(vals, index=norm)
318-
319-
tm.assert_frame_equal(result, expected)
320-
321252
def test_first_subset(self):
322253
ts = _simple_ts("1/1/2000", "1/1/2010", freq="12h")
323254
result = ts.first("10d")

0 commit comments

Comments
 (0)