diff --git a/pandas/tests/frame/test_asof.py b/pandas/tests/frame/test_asof.py index 0947e6f252dab..4ba3431d102df 100644 --- a/pandas/tests/frame/test_asof.py +++ b/pandas/tests/frame/test_asof.py @@ -6,21 +6,26 @@ from pandas import DataFrame, Series, Timestamp, date_range, to_datetime import pandas.util.testing as tm -from .common import TestData +@pytest.fixture +def date_range_frame(): + """ + Fixture for DataFrame of ints with date_range index -class TestFrameAsof(TestData): - def setup_method(self, method): - self.N = N = 50 - self.rng = date_range('1/1/1990', periods=N, freq='53s') - self.df = DataFrame({'A': np.arange(N), 'B': np.arange(N)}, - index=self.rng) + Columns are ['A', 'B']. + """ + N = 50 + rng = date_range('1/1/1990', periods=N, freq='53s') + return DataFrame({'A': np.arange(N), 'B': np.arange(N)}, index=rng) - def test_basic(self): - df = self.df.copy() + +class TestFrameAsof(): + + def test_basic(self, date_range_frame): + df = date_range_frame + N = 50 df.loc[15:30, 'A'] = np.nan - dates = date_range('1/1/1990', periods=self.N * 3, - freq='25s') + dates = date_range('1/1/1990', periods=N * 3, freq='25s') result = df.asof(dates) assert result.notna().all(1).all() @@ -35,11 +40,9 @@ def test_basic(self): rs = result[mask] assert (rs == 14).all(1).all() - def test_subset(self): + def test_subset(self, date_range_frame): N = 10 - rng = date_range('1/1/1990', periods=N, freq='53s') - df = DataFrame({'A': np.arange(N), 'B': np.arange(N)}, - index=rng) + df = date_range_frame.iloc[:N].copy() df.loc[4:8, 'A'] = np.nan dates = date_range('1/1/1990', periods=N * 3, freq='25s') @@ -54,20 +57,18 @@ def test_subset(self): expected = df.asof(dates) tm.assert_frame_equal(result, expected) - # B gives self.df.asof + # B gives df.asof result = df.asof(dates, subset='B') expected = df.resample('25s', closed='right').ffill().reindex(dates) expected.iloc[20:] = 9 tm.assert_frame_equal(result, expected) - def test_missing(self): + def test_missing(self, date_range_frame): # GH 15118 # no match found - `where` value before earliest date in index N = 10 - rng = date_range('1/1/1990', periods=N, freq='53s') - df = DataFrame({'A': np.arange(N), 'B': np.arange(N)}, - index=rng) + df = date_range_frame.iloc[:N].copy() result = df.asof('1989-12-31') expected = Series(index=['A', 'B'], name=Timestamp('1989-12-31')) @@ -78,7 +79,7 @@ def test_missing(self): columns=['A', 'B'], dtype='float64') tm.assert_frame_equal(result, expected) - def test_all_nans(self): + def test_all_nans(self, date_range_frame): # GH 15713 # DataFrame is all nans result = DataFrame([np.nan]).asof([0]) @@ -86,14 +87,16 @@ def test_all_nans(self): tm.assert_frame_equal(result, expected) # testing non-default indexes, multiple inputs - dates = date_range('1/1/1990', periods=self.N * 3, freq='25s') - result = DataFrame(np.nan, index=self.rng, columns=['A']).asof(dates) + N = 150 + rng = date_range_frame.index + dates = date_range('1/1/1990', periods=N, freq='25s') + result = DataFrame(np.nan, index=rng, columns=['A']).asof(dates) expected = DataFrame(np.nan, index=dates, columns=['A']) tm.assert_frame_equal(result, expected) # testing multiple columns - dates = date_range('1/1/1990', periods=self.N * 3, freq='25s') - result = DataFrame(np.nan, index=self.rng, + dates = date_range('1/1/1990', periods=N, freq='25s') + result = DataFrame(np.nan, index=rng, columns=['A', 'B', 'C']).asof(dates) expected = DataFrame(np.nan, index=dates, columns=['A', 'B', 'C']) tm.assert_frame_equal(result, expected)