Skip to content

Commit 8651298

Browse files
committed
test coverage
1 parent 7327645 commit 8651298

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

pandas/core/panel.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def __init__(self, data, items=None, major_axis=None, minor_axis=None,
207207
elif dtype is not None:
208208
# no choice but to copy
209209
mgr = mgr.cast(dtype)
210-
elif isinstance(data, np.ndarray):
210+
elif isinstance(data, (np.ndarray, list)):
211211
mgr = self._init_matrix(data, [items, major_axis, minor_axis],
212212
dtype=dtype, copy=copy)
213213
else: # pragma: no cover
@@ -376,7 +376,7 @@ def __setstate__(self, state):
376376
self._data = state
377377
elif len(state) == 4: # pragma: no cover
378378
self._unpickle_panel_compat(state)
379-
else:
379+
else: # pragma: no cover
380380
raise ValueError('unrecognized pickle')
381381

382382
def _unpickle_panel_compat(self, state): # pragma: no cover
@@ -550,10 +550,6 @@ def fillna(self, value=None, method='pad'):
550550

551551
return WidePanel.from_dict(result)
552552
else:
553-
# Float type values
554-
if len(self.items) == 0:
555-
return self
556-
557553
new_data = self._data.fillna(value)
558554
return WidePanel(new_data)
559555

pandas/tests/test_panel.py

+28
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,21 @@ def test_constructor(self):
334334
self.assert_(wp._data is not self.panel._data)
335335
assert_panel_equal(wp, self.panel)
336336

337+
# strings handled prop
338+
wp = WidePanel([[['foo', 'foo', 'foo',],
339+
['foo', 'foo', 'foo']]])
340+
self.assert_(wp.values.dtype == np.object_)
341+
342+
vals = self.panel.values
343+
344+
# no copy
345+
wp = WidePanel(vals)
346+
self.assert_(wp.values is vals)
347+
348+
# copy
349+
wp = WidePanel(vals, copy=True)
350+
self.assert_(wp.values is not vals)
351+
337352
def test_constructor_cast(self):
338353
casted = WidePanel(self.panel._data, dtype=int)
339354
casted2 = WidePanel(self.panel.values, dtype=int)
@@ -443,6 +458,15 @@ def test_setitem(self):
443458
self.panel['ItemG'] = 1
444459
self.panel['ItemE'] = 1
445460

461+
# object dtype
462+
self.panel['ItemQ'] = 'foo'
463+
self.assert_(self.panel['ItemQ'].values.dtype == np.object_)
464+
465+
# boolean dtype
466+
self.panel['ItemP'] = self.panel['ItemA'] > 0
467+
self.assert_(self.panel['ItemP'].values.dtype == np.bool_)
468+
469+
446470
def test_conform(self):
447471
df = self.panel['ItemA'][:-5].filter(items=['A', 'B'])
448472
conformed = self.panel.conform(df)
@@ -507,6 +531,10 @@ def test_fillna(self):
507531
assert_frame_equal(filled['ItemA'],
508532
self.panel['ItemA'].fillna(method='backfill'))
509533

534+
empty = self.panel.reindex(items=[])
535+
filled = empty.fillna(0)
536+
assert_panel_equal(filled, empty)
537+
510538
def test_combinePanel_with_long(self):
511539
lng = self.panel.to_long(filter_observations=False)
512540
result = self.panel.add(lng)

0 commit comments

Comments
 (0)