@@ -515,6 +515,44 @@ def test_ops_properties_basic(self):
515
515
self .assertEquals (s .day ,10 )
516
516
self .assertRaises (AttributeError , lambda : s .weekday )
517
517
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
+
518
556
class TestPeriodIndexOps (Ops ):
519
557
_allowed = '_allow_period_index_ops'
520
558
@@ -528,6 +566,38 @@ def test_ops_properties(self):
528
566
self .check_ops_properties (['year' ,'month' ,'day' ,'hour' ,'minute' ,'second' ,'weekofyear' ,'week' ,'dayofweek' ,'dayofyear' ,'quarter' ])
529
567
self .check_ops_properties (['qyear' ], lambda x : isinstance (x ,PeriodIndex ))
530
568
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
+
531
601
if __name__ == '__main__' :
532
602
import nose
533
603
0 commit comments