@@ -515,6 +515,44 @@ def test_ops_properties_basic(self):
515515 self .assertEquals (s .day ,10 )
516516 self .assertRaises (AttributeError , lambda : s .weekday )
517517
518+ def test_asobject_tolist (self ):
519+ idx = pd .date_range (start = '2013-01-01' , periods = 4 , freq = 'M' , name = 'idx' )
520+ expected_list = [pd .Timestamp ('2013-01-31' ), pd .Timestamp ('2013-02-28' ),
521+ pd .Timestamp ('2013-03-31' ), pd .Timestamp ('2013-04-30' )]
522+ expected = pd .Index (expected_list , dtype = object , name = 'idx' )
523+ result = idx .asobject
524+ self .assertTrue (isinstance (result , Index ))
525+ self .assertEqual (result .dtype , object )
526+ self .assertTrue (result .equals (expected ))
527+ self .assertEqual (result .name , expected .name )
528+ self .assertEqual (idx .tolist (), expected_list )
529+
530+ idx = pd .date_range (start = '2013-01-01' , periods = 4 , freq = 'M' , name = 'idx' , tz = 'Asia/Tokyo' )
531+ expected_list = [pd .Timestamp ('2013-01-31' , tz = 'Asia/Tokyo' ),
532+ pd .Timestamp ('2013-02-28' , tz = 'Asia/Tokyo' ),
533+ pd .Timestamp ('2013-03-31' , tz = 'Asia/Tokyo' ),
534+ pd .Timestamp ('2013-04-30' , tz = 'Asia/Tokyo' )]
535+ expected = pd .Index (expected_list , dtype = object , name = 'idx' )
536+ result = idx .asobject
537+ self .assertTrue (isinstance (result , Index ))
538+ self .assertEqual (result .dtype , object )
539+ self .assertTrue (result .equals (expected ))
540+ self .assertEqual (result .name , expected .name )
541+ self .assertEqual (idx .tolist (), expected_list )
542+
543+ idx = DatetimeIndex ([datetime (2013 , 1 , 1 ), datetime (2013 , 1 , 2 ),
544+ pd .NaT , datetime (2013 , 1 , 4 )], name = 'idx' )
545+ expected_list = [pd .Timestamp ('2013-01-01' ), pd .Timestamp ('2013-01-02' ),
546+ pd .NaT , pd .Timestamp ('2013-01-04' )]
547+ expected = pd .Index (expected_list , dtype = object , name = 'idx' )
548+ result = idx .asobject
549+ self .assertTrue (isinstance (result , Index ))
550+ self .assertEqual (result .dtype , object )
551+ self .assertTrue (result .equals (expected ))
552+ self .assertEqual (result .name , expected .name )
553+ self .assertEqual (idx .tolist (), expected_list )
554+
555+
518556class TestPeriodIndexOps (Ops ):
519557 _allowed = '_allow_period_index_ops'
520558
@@ -528,6 +566,38 @@ def test_ops_properties(self):
528566 self .check_ops_properties (['year' ,'month' ,'day' ,'hour' ,'minute' ,'second' ,'weekofyear' ,'week' ,'dayofweek' ,'dayofyear' ,'quarter' ])
529567 self .check_ops_properties (['qyear' ], lambda x : isinstance (x ,PeriodIndex ))
530568
569+ def test_asobject_tolist (self ):
570+ idx = pd .period_range (start = '2013-01-01' , periods = 4 , freq = 'M' , name = 'idx' )
571+ expected_list = [pd .Period ('2013-01-31' , freq = 'M' ), pd .Period ('2013-02-28' , freq = 'M' ),
572+ pd .Period ('2013-03-31' , freq = 'M' ), pd .Period ('2013-04-30' , freq = 'M' )]
573+ expected = pd .Index (expected_list , dtype = object , name = 'idx' )
574+ result = idx .asobject
575+ self .assertTrue (isinstance (result , Index ))
576+ self .assertEqual (result .dtype , object )
577+ self .assertTrue (result .equals (expected ))
578+ self .assertEqual (result .name , expected .name )
579+ self .assertEqual (idx .tolist (), expected_list )
580+
581+ idx = PeriodIndex (['2013-01-01' , '2013-01-02' , 'NaT' , '2013-01-04' ], freq = 'D' , name = 'idx' )
582+ expected_list = [pd .Period ('2013-01-01' , freq = 'D' ), pd .Period ('2013-01-02' , freq = 'D' ),
583+ pd .Period ('NaT' , freq = 'D' ), pd .Period ('2013-01-04' , freq = 'D' )]
584+ expected = pd .Index (expected_list , dtype = object , name = 'idx' )
585+ result = idx .asobject
586+ self .assertTrue (isinstance (result , Index ))
587+ self .assertEqual (result .dtype , object )
588+ for i in [0 , 1 , 3 ]:
589+ self .assertTrue (result [i ], expected [i ])
590+ self .assertTrue (result [2 ].ordinal , pd .tslib .iNaT )
591+ self .assertTrue (result [2 ].freq , 'D' )
592+ self .assertEqual (result .name , expected .name )
593+
594+ result_list = idx .tolist ()
595+ for i in [0 , 1 , 3 ]:
596+ self .assertTrue (result_list [i ], expected_list [i ])
597+ self .assertTrue (result_list [2 ].ordinal , pd .tslib .iNaT )
598+ self .assertTrue (result_list [2 ].freq , 'D' )
599+
600+
531601if __name__ == '__main__' :
532602 import nose
533603
0 commit comments