@@ -771,25 +771,43 @@ def test_map_identity_mapping(self):
771771 for name , cur_index in self .indices .items ():
772772 self .assert_index_equal (cur_index , cur_index .map (lambda x : x ))
773773
774- def test_map_that_returns_tuples_creates_multi_index (self ):
774+ def test_map_with_tuples (self ):
775775 # GH 12766
776- boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x , x == 1 ))
777- expected = MultiIndex .from_tuples ([(0 , False ), (1 , True ), (2 , False )])
776+
777+ # Test that returning a single tuple from an Index
778+ # returns an Index.
779+ boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x ,))
780+ expected = Index ([(0 ,), (1 ,), (2 ,)])
778781 self .assert_index_equal (boolean_index , expected )
779782
780- def test_map_that_returns_a_length_one_tuple_creates_an_index ( self ):
781- # GH 12766
782- boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x , ))
783- expected = Index ([(0 , ), (1 , ), (2 , )])
783+ # Test that returning a tuple from a map of a single index
784+ # returns a MultiIndex object.
785+ boolean_index = tm .makeIntIndex (3 ).map (lambda x : (x , x == 1 ))
786+ expected = MultiIndex . from_tuples ([(0 , False ), (1 , True ), (2 , False )])
784787 self .assert_index_equal (boolean_index , expected )
785788
786- def test_map_that_reduces_multi_index_to_single_index_returns_index ( self ):
787- # GH 12766
789+ # Test that returning a single object from a MultiIndex
790+ # returns an Index.
788791 first_level = ['foo' , 'bar' , 'baz' ]
789792 multi_index = MultiIndex .from_tuples (lzip (first_level , [1 , 2 , 3 ]))
790793 reduced_index = multi_index .map (lambda x : x [0 ])
791794 self .assert_index_equal (reduced_index , Index (first_level ))
792795
796+ def test_map_tseries_indices_return_index (self ):
797+ date_index = tm .makeDateIndex (10 )
798+ exp = Index ([1 ] * 10 )
799+ self .assert_index_equal (exp , date_index .map (lambda x : 1 ))
800+
801+ period_index = tm .makePeriodIndex (10 )
802+ self .assert_index_equal (exp , period_index .map (lambda x : 1 ))
803+
804+ tdelta_index = tm .makeTimedeltaIndex (10 )
805+ self .assert_index_equal (exp , tdelta_index .map (lambda x : 1 ))
806+
807+ date_index = tm .makeDateIndex (24 , freq = 'h' , name = 'hourly' )
808+ exp = Index (range (24 ), name = 'hourly' )
809+ self .assert_index_equal (exp , date_index .map (lambda x : x .hour ))
810+
793811 def test_append_multiple (self ):
794812 index = Index (['a' , 'b' , 'c' , 'd' , 'e' , 'f' ])
795813
0 commit comments