Skip to content

Commit 914ed71

Browse files
committed
add test function
1 parent 3186fef commit 914ed71

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
.vagrant
1919
.noseids
2020
.ipynb_checkpoints
21+
.tags
2122

2223
# Compiled source #
2324
###################

pandas/tests/frame/test_timeseries.py

+24
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,27 @@ def test_first_last_valid(self):
341341
empty = DataFrame()
342342
self.assertIsNone(empty.last_valid_index())
343343
self.assertIsNone(empty.first_valid_index())
344+
345+
def test_operation_on_NaT(self):
346+
# Both NaT and Timestamp are in DataFrame.
347+
df = pd.DataFrame({'foo': [pd.NaT, pd.NaT,
348+
pd.Timestamp('2012-05-01')]})
349+
350+
res = df.min()
351+
exp = pd.Series([pd.Timestamp('2012-05-01')], index=["foo"])
352+
tm.assert_series_equal(res, exp)
353+
354+
res = df.max()
355+
exp = pd.Series([pd.Timestamp('2012-05-01')], index=["foo"])
356+
tm.assert_series_equal(res, exp)
357+
358+
# GH12941, only NaTs are in DataFrame.
359+
df = pd.DataFrame({'foo': [pd.NaT, pd.NaT]})
360+
361+
res = df.min()
362+
exp = pd.Series([pd.NaT], index=["foo"])
363+
tm.assert_series_equal(res, exp)
364+
365+
res = df.max()
366+
exp = pd.Series([pd.NaT], index=["foo"])
367+
tm.assert_series_equal(res, exp)

pandas/tests/test_groupby.py

+26
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,32 @@ def test_agg_period_index(self):
720720
grouped = df.groupby(df.index.month)
721721
list(grouped)
722722

723+
def test_agg_dict_parameter_cast_result_dtypes(self):
724+
# GH 12821
725+
726+
df = DataFrame(
727+
{'class': ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'],
728+
'time': date_range('1/1/2011', periods=8, freq='H')})
729+
df.loc[[0, 1, 2, 5], 'time'] = None
730+
731+
# test for `first` function
732+
exp = df.loc[[0, 3, 4, 6]].set_index('class')
733+
grouped = df.groupby('class')
734+
assert_frame_equal(grouped.first(), exp)
735+
assert_frame_equal(grouped.agg('first'), exp)
736+
assert_frame_equal(grouped.agg({'time': 'first'}), exp)
737+
assert_series_equal(grouped.time.first(), exp['time'])
738+
assert_series_equal(grouped.time.agg('first'), exp['time'])
739+
740+
# test for `last` function
741+
exp = df.loc[[0, 3, 4, 7]].set_index('class')
742+
grouped = df.groupby('class')
743+
assert_frame_equal(grouped.last(), exp)
744+
assert_frame_equal(grouped.agg('last'), exp)
745+
assert_frame_equal(grouped.agg({'time': 'last'}), exp)
746+
assert_series_equal(grouped.time.last(), exp['time'])
747+
assert_series_equal(grouped.time.agg('last'), exp['time'])
748+
723749
def test_agg_must_agg(self):
724750
grouped = self.df.groupby('A')['C']
725751
self.assertRaises(Exception, grouped.agg, lambda x: x.describe())

0 commit comments

Comments
 (0)