@@ -529,14 +529,31 @@ def test___setitem__(data):
529529@pytest .mark .parametrize (
530530 "key" ,
531531 [
532- pytest .param (slice (1 , 3 ), id = "numeric_slice" ),
533- pytest .param (slice ("a" , "c" ), id = "index_based_slice" ),
534- pytest .param (["a" , "c" , "e" ], id = "list_of_labels" ),
535- pytest .param ([True , False , True , False , True ], id = "boolean_mask" ),
532+ pytest .param (lambda idx : slice (1 , 3 ), id = "location_based_slice" ),
533+ pytest .param (lambda idx : slice (idx [1 ], idx [- 1 ]), id = "index_based_slice" ),
534+ pytest .param (lambda idx : [idx [0 ], idx [2 ], idx [- 1 ]], id = "list_of_labels" ),
535+ pytest .param (
536+ lambda idx : [True if i % 2 else False for i in range (len (idx ))],
537+ id = "boolean_mask" ,
538+ ),
536539 ],
537540)
538- def test___setitem___non_hashable (key ):
539- md_sr , pd_sr = create_test_series ([1 , 2 , 3 , 4 , 5 ], index = ["a" , "b" , "c" , "d" , "e" ])
541+ @pytest .mark .parametrize (
542+ "index" ,
543+ [
544+ pytest .param (
545+ lambda idx_len : [chr (x ) for x in range (ord ("a" ), ord ("a" ) + idx_len )],
546+ id = "str_index" ,
547+ ),
548+ pytest .param (lambda idx_len : list (range (1 , idx_len + 1 )), id = "int_index" ),
549+ ],
550+ )
551+ def test___setitem___non_hashable (key , index ):
552+ data = np .arange (5 )
553+ index = index (len (data ))
554+ key = key (index )
555+ md_sr , pd_sr = create_test_series (data , index = index )
556+
540557 md_sr [key ] = 10
541558 pd_sr [key ] = 10
542559 df_equals (md_sr , pd_sr )
0 commit comments