@@ -334,6 +334,21 @@ def test_constructor(self):
334
334
self .assert_ (wp ._data is not self .panel ._data )
335
335
assert_panel_equal (wp , self .panel )
336
336
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
+
337
352
def test_constructor_cast (self ):
338
353
casted = WidePanel (self .panel ._data , dtype = int )
339
354
casted2 = WidePanel (self .panel .values , dtype = int )
@@ -443,6 +458,15 @@ def test_setitem(self):
443
458
self .panel ['ItemG' ] = 1
444
459
self .panel ['ItemE' ] = 1
445
460
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
+
446
470
def test_conform (self ):
447
471
df = self .panel ['ItemA' ][:- 5 ].filter (items = ['A' , 'B' ])
448
472
conformed = self .panel .conform (df )
@@ -507,6 +531,10 @@ def test_fillna(self):
507
531
assert_frame_equal (filled ['ItemA' ],
508
532
self .panel ['ItemA' ].fillna (method = 'backfill' ))
509
533
534
+ empty = self .panel .reindex (items = [])
535
+ filled = empty .fillna (0 )
536
+ assert_panel_equal (filled , empty )
537
+
510
538
def test_combinePanel_with_long (self ):
511
539
lng = self .panel .to_long (filter_observations = False )
512
540
result = self .panel .add (lng )
0 commit comments