@@ -1441,10 +1441,17 @@ def test_constructor_tuple_of_tuples(self):
1441
1441
s = Series (data )
1442
1442
assert tuple (s ) == data
1443
1443
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
1446
1453
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 ))
1448
1455
tm .assert_series_equal (result , expected )
1449
1456
1450
1457
# https://github.com/pandas-dev/pandas/issues/22698
@@ -1860,23 +1867,30 @@ class A(OrderedDict):
1860
1867
series = Series (A (data ))
1861
1868
tm .assert_series_equal (series , expected )
1862
1869
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 )
1871
1881
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 )
1880
1894
1881
1895
def test_constructor_dict_multiindex_reindex_flat (self ):
1882
1896
# construction involves reindexing with a MultiIndex corner case
0 commit comments