Skip to content

Commit a247f80

Browse files
h-vetinarijreback
authored andcommitted
Fixturize tests/frame/test_asof.py (#25628)
1 parent 8de86d4 commit a247f80

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed

pandas/tests/frame/test_asof.py

+28-25
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,26 @@
66
from pandas import DataFrame, Series, Timestamp, date_range, to_datetime
77
import pandas.util.testing as tm
88

9-
from .common import TestData
109

10+
@pytest.fixture
11+
def date_range_frame():
12+
"""
13+
Fixture for DataFrame of ints with date_range index
1114
12-
class TestFrameAsof(TestData):
13-
def setup_method(self, method):
14-
self.N = N = 50
15-
self.rng = date_range('1/1/1990', periods=N, freq='53s')
16-
self.df = DataFrame({'A': np.arange(N), 'B': np.arange(N)},
17-
index=self.rng)
15+
Columns are ['A', 'B'].
16+
"""
17+
N = 50
18+
rng = date_range('1/1/1990', periods=N, freq='53s')
19+
return DataFrame({'A': np.arange(N), 'B': np.arange(N)}, index=rng)
1820

19-
def test_basic(self):
20-
df = self.df.copy()
21+
22+
class TestFrameAsof():
23+
24+
def test_basic(self, date_range_frame):
25+
df = date_range_frame
26+
N = 50
2127
df.loc[15:30, 'A'] = np.nan
22-
dates = date_range('1/1/1990', periods=self.N * 3,
23-
freq='25s')
28+
dates = date_range('1/1/1990', periods=N * 3, freq='25s')
2429

2530
result = df.asof(dates)
2631
assert result.notna().all(1).all()
@@ -35,11 +40,9 @@ def test_basic(self):
3540
rs = result[mask]
3641
assert (rs == 14).all(1).all()
3742

38-
def test_subset(self):
43+
def test_subset(self, date_range_frame):
3944
N = 10
40-
rng = date_range('1/1/1990', periods=N, freq='53s')
41-
df = DataFrame({'A': np.arange(N), 'B': np.arange(N)},
42-
index=rng)
45+
df = date_range_frame.iloc[:N].copy()
4346
df.loc[4:8, 'A'] = np.nan
4447
dates = date_range('1/1/1990', periods=N * 3,
4548
freq='25s')
@@ -54,20 +57,18 @@ def test_subset(self):
5457
expected = df.asof(dates)
5558
tm.assert_frame_equal(result, expected)
5659

57-
# B gives self.df.asof
60+
# B gives df.asof
5861
result = df.asof(dates, subset='B')
5962
expected = df.resample('25s', closed='right').ffill().reindex(dates)
6063
expected.iloc[20:] = 9
6164

6265
tm.assert_frame_equal(result, expected)
6366

64-
def test_missing(self):
67+
def test_missing(self, date_range_frame):
6568
# GH 15118
6669
# no match found - `where` value before earliest date in index
6770
N = 10
68-
rng = date_range('1/1/1990', periods=N, freq='53s')
69-
df = DataFrame({'A': np.arange(N), 'B': np.arange(N)},
70-
index=rng)
71+
df = date_range_frame.iloc[:N].copy()
7172
result = df.asof('1989-12-31')
7273

7374
expected = Series(index=['A', 'B'], name=Timestamp('1989-12-31'))
@@ -78,22 +79,24 @@ def test_missing(self):
7879
columns=['A', 'B'], dtype='float64')
7980
tm.assert_frame_equal(result, expected)
8081

81-
def test_all_nans(self):
82+
def test_all_nans(self, date_range_frame):
8283
# GH 15713
8384
# DataFrame is all nans
8485
result = DataFrame([np.nan]).asof([0])
8586
expected = DataFrame([np.nan])
8687
tm.assert_frame_equal(result, expected)
8788

8889
# testing non-default indexes, multiple inputs
89-
dates = date_range('1/1/1990', periods=self.N * 3, freq='25s')
90-
result = DataFrame(np.nan, index=self.rng, columns=['A']).asof(dates)
90+
N = 150
91+
rng = date_range_frame.index
92+
dates = date_range('1/1/1990', periods=N, freq='25s')
93+
result = DataFrame(np.nan, index=rng, columns=['A']).asof(dates)
9194
expected = DataFrame(np.nan, index=dates, columns=['A'])
9295
tm.assert_frame_equal(result, expected)
9396

9497
# testing multiple columns
95-
dates = date_range('1/1/1990', periods=self.N * 3, freq='25s')
96-
result = DataFrame(np.nan, index=self.rng,
98+
dates = date_range('1/1/1990', periods=N, freq='25s')
99+
result = DataFrame(np.nan, index=rng,
97100
columns=['A', 'B', 'C']).asof(dates)
98101
expected = DataFrame(np.nan, index=dates, columns=['A', 'B', 'C'])
99102
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)