Skip to content

Commit 5472443

Browse files
committed
TST: added tests for cummin, cummax. closes #647
1 parent 134e4c1 commit 5472443

File tree

2 files changed

+67
-1
lines changed

2 files changed

+67
-1
lines changed

pandas/tests/test_frame.py

+47
Original file line numberDiff line numberDiff line change
@@ -3760,6 +3760,53 @@ def test_min(self):
37603760
self._check_stat_op('min', np.min)
37613761
self._check_stat_op('min', np.min, frame=self.intframe)
37623762

3763+
def test_cummin(self):
3764+
self.tsframe.ix[5:10, 0] = nan
3765+
self.tsframe.ix[10:15, 1] = nan
3766+
self.tsframe.ix[15:, 2] = nan
3767+
3768+
# axis = 0
3769+
cummin = self.tsframe.cummin()
3770+
expected = self.tsframe.apply(Series.cummin)
3771+
assert_frame_equal(cummin, expected)
3772+
3773+
# axis = 1
3774+
cummin = self.tsframe.cummin(axis=1)
3775+
expected = self.tsframe.apply(Series.cummin, axis=1)
3776+
assert_frame_equal(cummin, expected)
3777+
3778+
# works
3779+
df = DataFrame({'A' : np.arange(20)}, index=np.arange(20))
3780+
result = df.cummin()
3781+
3782+
# fix issue
3783+
cummin_xs = self.tsframe.cummin(axis=1)
3784+
self.assertEqual(np.shape(cummin_xs), np.shape(self.tsframe))
3785+
3786+
def test_cummax(self):
3787+
self.tsframe.ix[5:10, 0] = nan
3788+
self.tsframe.ix[10:15, 1] = nan
3789+
self.tsframe.ix[15:, 2] = nan
3790+
3791+
# axis = 0
3792+
cummax = self.tsframe.cummax()
3793+
expected = self.tsframe.apply(Series.cummax)
3794+
assert_frame_equal(cummax, expected)
3795+
3796+
# axis = 1
3797+
cummax = self.tsframe.cummax(axis=1)
3798+
expected = self.tsframe.apply(Series.cummax, axis=1)
3799+
assert_frame_equal(cummax, expected)
3800+
3801+
# works
3802+
df = DataFrame({'A' : np.arange(20)}, index=np.arange(20))
3803+
result = df.cummax()
3804+
3805+
# fix issue
3806+
cummax_xs = self.tsframe.cummax(axis=1)
3807+
self.assertEqual(np.shape(cummax_xs), np.shape(self.tsframe))
3808+
3809+
37633810
def test_max(self):
37643811
self._check_stat_op('max', np.max)
37653812
self._check_stat_op('max', np.max, frame=self.intframe)

pandas/tests/test_series.py

+20-1
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,26 @@ def test_cumsum(self):
879879
def test_cumprod(self):
880880
self._check_accum_op('cumprod')
881881

882+
def test_cummin(self):
883+
self.assert_(np.array_equal(self.ts.cummin(),
884+
np.minimum.accumulate(np.array(self.ts))))
885+
ts = self.ts.copy()
886+
ts[::2] = np.NaN
887+
result = ts.cummin()[1::2]
888+
expected = np.minimum.accumulate(ts.valid())
889+
890+
self.assert_(np.array_equal(result, expected))
891+
892+
def test_cummax(self):
893+
self.assert_(np.array_equal(self.ts.cummax(),
894+
np.maximum.accumulate(np.array(self.ts))))
895+
ts = self.ts.copy()
896+
ts[::2] = np.NaN
897+
result = ts.cummax()[1::2]
898+
expected = np.maximum.accumulate(ts.valid())
899+
900+
self.assert_(np.array_equal(result, expected))
901+
882902
def _check_stat_op(self, name, alternate, check_objects=False):
883903
from pandas import DateRange
884904
import pandas.core.nanops as nanops
@@ -921,7 +941,6 @@ def testit():
921941
except ImportError:
922942
pass
923943

924-
925944
def _check_accum_op(self, name):
926945
func = getattr(np, name)
927946
self.assert_(np.array_equal(func(self.ts), func(np.array(self.ts))))

0 commit comments

Comments
 (0)