Skip to content

Commit

Permalink
TST: test cases for replace method. #929
Browse files Browse the repository at this point in the history
  • Loading branch information
Chang She authored and wesm committed May 15, 2012
1 parent aad743c commit 580adc9
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 0 deletions.
25 changes: 25 additions & 0 deletions pandas/tests/test_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -5441,6 +5441,31 @@ def test_bool_raises_value_error_1069(self):
df = DataFrame([1, 2, 3])
self.failUnlessRaises(ValueError, lambda: bool(df))

def test_replace(self):
N = 100
df = DataFrame(np.fabs(np.random.randn(len(N), 5)),
index=tm.makeDataIndex(N))
df.ix[:5, 0] = np.nan
df[6:10, 1] = 'foo'
df[20:30, 2] = 'bar'

rs = df.replace([np.nan, 'foo', 'bar'], -1)
self.assert_((rs.ix[:5, 0] == -1).all())
self.assert_((rs.ix[6:10, 1] == -1).all())
self.assert_((rs.ix[20:30, 2] == -1).all())
self.assert_((df >= 0).all())

rs = df.replace({np.nan : -1, 'foo' : -2, 'bar' : -3})
self.assert_((rs.ix[:5, 0] == -1).all())
self.assert_((rs.ix[6:10, 1] == -2).all())
self.assert_((rs.ix[20:30, 2] == -3).all())
self.assert_((df >= 0).all())

df.replace([np.nan, 'foo', 'bar'], -1, inplace=True)
self.assert_((df.ix[:5, 0] == -1).all())
self.assert_((df.ix[6:10, 1] == -1).all())
self.assert_((df.ix[20:30, 2] == -1).all())

if __name__ == '__main__':
# unittest.main()
import nose
Expand Down
37 changes: 37 additions & 0 deletions pandas/tests/test_panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -1294,6 +1294,43 @@ def test_pivot(self):
# corner case, empty
df = pivot(np.array([]), np.array([]), np.array([]))

def test_replace(self):
N = 100
df1 = DataFrame(np.fabs(np.random.randn(len(N), 5)),
index=tm.makeDataIndex(N))
df1.ix[:5, 0] = np.nan
df1[6:10, 1] = 'foo'
df1[20:30, 2] = 'bar'

df2 = DataFrame(np.fabs(np.random.randn(len(N), 5)),
index=tm.makeDataIndex(N))
df2.ix[:5, 0] = 'bar'
df2[6:10, 1] = np.nan
df2[20:30, 2] = 'foo'

panel = Panel({'x' : df1, 'y' : df2})
rs = panel.replace([np.nan, 'foo', 'bar'], -1)
self.assert_((rs.ix[:, :5, 0] == -1).all())
self.assert_((rs.ix[:, 6:10, 1] == -1).all())
self.assert_((rs.ix[:, 20:30, 2] == -1).all())
self.assert_((panel >= 0).all())

rs = panel.replace({np.nan : -1, 'foo' : -2, 'bar' : -3})
self.assert_((rs.ix[0, :5, 0] == -1).all())
self.assert_((rs.ix[0, 6:10, 1] == -2).all())
self.assert_((rs.ix[0, 20:30, 2] == -3).all())

self.assert_((rs.ix[1, :5, 0] == -3).all())
self.assert_((rs.ix[1, 6:10, 1] == -1).all())
self.assert_((rs.ix[1, 20:30, 2] == -2).all())

self.assert_((panel >= 0).all())

panel.replace([np.nan, 'foo', 'bar'], -1, inplace=True)
self.assert_((panel.ix[:5, 0] == -1).all())
self.assert_((panel.ix[6:10, 1] == -1).all())
self.assert_((panel.ix[20:30, 2] == -1).all())

def test_monotonic():
pos = np.array([1, 2, 3, 5])

Expand Down
23 changes: 23 additions & 0 deletions pandas/tests/test_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -2647,6 +2647,29 @@ def test_timeseries_coercion(self):
self.assert_(isinstance(ser, TimeSeries))
self.assert_(isinstance(ser.index, DatetimeIndex))

def test_replace(self):
N = 100
ser = Series(np.fabs(np.random.randn(len(N))), tm.makeDataIndex(N))
ser[:5] = np.nan
ser[6:10] = 'foo'
ser[20:30] = 'bar'

rs = ser.replace([np.nan, 'foo', 'bar'], -1)
self.assert_((rs[:5] == -1).all())
self.assert_((rs[6:10] == -1).all())
self.assert_((rs[20:30] == -1).all())
self.assert_((ser >= 0).all())

rs = ser.replace({np.nan : -1, 'foo' : -2, 'bar' : -3})
self.assert_((rs[:5] == -1).all())
self.assert_((rs[6:10] == -2).all())
self.assert_((rs[20:30] == -3).all())
self.assert_((ser >= 0).all())

ser.replace([np.nan, 'foo', 'bar'], -1, inplace=True)
self.assert_((ser[:5] == -1).all())
self.assert_((ser[6:10] == -1).all())
self.assert_((ser[20:30] == -1).all())
def test_repeat(self):
s = Series(np.random.randn(3), index=['a', 'b', 'c'])

Expand Down

0 comments on commit 580adc9

Please sign in to comment.