@@ -1441,10 +1441,17 @@ def test_constructor_tuple_of_tuples(self):
14411441 s = Series (data )
14421442 assert tuple (s ) == data
14431443
1444- def test_constructor_dict_of_tuples (self ):
1445- data = {(1 , 2 ): 3 , (None , 5 ): 6 }
1444+ @pytest .mark .parametrize (
1445+ "data, expected_values, expected_index" ,
1446+ [
1447+ ({(1 , 2 ): 3 , (None , 5 ): 6 }, [3 , 6 ], [(1 , 2 ), (None , 5 )]),
1448+ ({(1 ,): 3 , (4 , 5 ): 6 }, [3 , 6 ], [(1 , None ), (4 , 5 )]),
1449+ ],
1450+ )
1451+ def test_constructor_dict_of_tuples (self , data , expected_values , expected_index ):
1452+ # GH 60695
14461453 result = Series (data ).sort_values ()
1447- expected = Series ([ 3 , 6 ], index = MultiIndex .from_tuples ([( 1 , 2 ), ( None , 5 )] ))
1454+ expected = Series (expected_values , index = MultiIndex .from_tuples (expected_index ))
14481455 tm .assert_series_equal (result , expected )
14491456
14501457 # https://github.com/pandas-dev/pandas/issues/22698
@@ -1860,23 +1867,30 @@ class A(OrderedDict):
18601867 series = Series (A (data ))
18611868 tm .assert_series_equal (series , expected )
18621869
1863- def test_constructor_dict_multiindex (self ):
1864- d = {("a" , "a" ): 0.0 , ("b" , "a" ): 1.0 , ("b" , "c" ): 2.0 }
1865- _d = sorted (d .items ())
1866- result = Series (d )
1867- expected = Series (
1868- [x [1 ] for x in _d ], index = MultiIndex .from_tuples ([x [0 ] for x in _d ])
1869- )
1870- tm .assert_series_equal (result , expected )
1870+ @pytest .mark .parametrize (
1871+ "data, expected_index_multi" ,
1872+ [
1873+ ({("a" , "a" ): 0.0 , ("b" , "a" ): 1.0 , ("b" , "c" ): 2.0 }, True ),
1874+ ({("a" ,): 0.0 , ("a" , "b" ): 1.0 }, True ),
1875+ ({"z" : 111.0 , ("a" , "a" ): 0.0 , ("b" , "a" ): 1.0 , ("b" , "c" ): 2.0 }, False ),
1876+ ],
1877+ )
1878+ def test_constructor_dict_multiindex (self , data , expected_index_multi ):
1879+ # GH#60695
1880+ result = Series (data )
18711881
1872- d ["z" ] = 111.0
1873- _d .insert (0 , ("z" , d ["z" ]))
1874- result = Series (d )
1875- expected = Series (
1876- [x [1 ] for x in _d ], index = Index ([x [0 ] for x in _d ], tupleize_cols = False )
1877- )
1878- result = result .reindex (index = expected .index )
1879- tm .assert_series_equal (result , expected )
1882+ if expected_index_multi :
1883+ expected = Series (
1884+ list (data .values ()),
1885+ index = MultiIndex .from_tuples (list (data .keys ())),
1886+ )
1887+ tm .assert_series_equal (result , expected )
1888+ else :
1889+ expected = Series (
1890+ list (data .values ()),
1891+ index = Index (list (data .keys ())),
1892+ )
1893+ tm .assert_series_equal (result , expected )
18801894
18811895 def test_constructor_dict_multiindex_reindex_flat (self ):
18821896 # construction involves reindexing with a MultiIndex corner case
0 commit comments