gL i:<ddlZddlZddlZddlmZGddZy)Nc neZdZejdddddddggd d Zejd d ZdZdZdZ dZ dZ dZ ejjdddgdZdZdZdZdZdZdZejjdej.gdej.gdd !ej.d d d ej2ej2gd !ggd"#d$Zd%Zd&Zejjd'gd(ej.gd(d)!ej.gd(ggd*#d+Zejjd,d-d.d/ej2gd0fej<d-d.d/ej2gd ejj?d123ej.d-d.d/ej2gd)!d0fej.d-d.d/ej2gd)!d0fggd4#d5Z ejjd6d d0gejjddd7gd8Z!ejjddd7gd9Z"d:Z#d;Z$d<Z%d=Z&d>Z'd?Z(d@Z)dAZ*dBZ+dCZ,dDZ-dEZ.dFZ/dGZ0dHZ1dIZ2dJZ3y7)KBaseSetitemTestsc|jSNindexxs i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/extension/base/setitem.pyzBaseSetitemTests. s aggc,t|jSr)listrr s r r zBaseSetitemTests. sd177mr ctdSr)slicer s r r zBaseSetitemTests. s eDkr c,tdt|S)Nr)rlenr s r r zBaseSetitemTests.seAs1v&r c*tt|Sr)rangerr s r r zBaseSetitemTests.seCFmr c<ttt|Sr)rrrr s r r zBaseSetitemTests.sd5Q=)r cJtjt|tSNdtype)nponesrboolr s r r zBaseSetitemTests.sbggc!fD1r )rz list[index] null_slice full_slicerz list(range)mask)paramsidsc|jS)z Fixture for an indexer to pass to obj.loc to get/set the full length of the object. In some cases, assumes that obj.index is the default RangeIndex. )param)selfrequests r full_indexerzBaseSetitemTests.full_indexer s6}}r T)autousec|jrr|j}|jjdddk(ry|jj jdd}|dk(rt jdyyy)N[rtest_is_immutable.rz4__setitem__ test not applicable with immutable dtype) _is_immutablenodenamesplitfunction __qualname__pytestskip)r%rr&r. defined_ins r skip_if_immutablez"BaseSetitemTests.skip_if_immutable&su   <qAJ// RS0 r c|jjr+tjt5|d|d<dddy|d|d<|d|dk(sJy#1swYyxYw)Nr)rr-r3raises TypeError)r%datas r r+z"BaseSetitemTests.test_is_immutable6sg :: # #y) "q'Q " "1gDG7d1g% %%  " "s AA!c\|rtj|}|d|d<|d|dk(sJyNr8rpdSeriesr%r; box_in_seriess r test_setitem_scalar_seriesz+BaseSetitemTests.test_setitem_scalar_series>s5 99T?Dq'QAw$q'!!!r c|rtj|}|j}|d|dg|ddg<|d|dk(sJ|d|dk(sJyr=)r?r@copyr%r;rBoriginals r test_setitem_sequencez&BaseSetitemTests.test_setitem_sequenceDsc 99T?D99;Qa)aV Aw(1+%%%Aw(1+%%%r ctj|}|j}|dg}|r|j||j}d}t j t|jd5||ddg<dddtj||t j t|jd5||td<dddtj||y#1swYwxYw#1swY,xYw) Nrrz5cannot set using a {} indexer with a different lengthz list-likematchr8r) r?r@rE_from_sequencerr3r9 ValueErrorformattmassert_series_equalr)r%r;as_arrayserrGvaluexprs r .test_setitem_sequence_mismatched_length_raisesz?BaseSetitemTests.test_setitem_sequence_mismatched_length_raisesMsiio88:a  ''TZZ'@EE ]]:SZZ -D E CAK  sH- ]]:SZZ-@ A "!CaM " sH-   " "s7C5D5C>D c|rtj|}|j}g|tjgt <t j||yr)r?r@rErarrayintrP assert_equalrFs r test_setitem_empty_indexerz+BaseSetitemTests.test_setitem_empty_indexer^s@ 99T?D99;(*RXXb $% h'r cz|rtj|}|d|ddg<|d|dk(sJ|d|dk(sJy)Nrr8r>rAs r test_setitem_sequence_broadcastsz1BaseSetitemTests.test_setitem_sequence_broadcastsesO 99T?DAwaV Aw$q'!!!Aw$q'!!!r setterlociloccptj|}t||}|d|d<|d|dk(sJyr=)r?r@getattr)r%r;r_arrs r test_setitem_scalarz$BaseSetitemTests.test_setitem_scalarls>iiof%Gq 1va   r ctjtjt ||d}|d|j d<|j d|dk(sJy)NABr8rri)r? DataFramerarangerr`r%r;dfs r test_setitem_loc_scalar_mixedz.BaseSetitemTests.test_setitem_loc_scalar_mixedssM \\ #d) 44@ Aavvvf~a(((r ctjd|i}|d|jd<|jd|dk(sJy)Nrir8 rir?rkr`rms r test_setitem_loc_scalar_singlez/BaseSetitemTests.test_setitem_loc_scalar_singlexs? \\3+ &q'wvvg$q')))r ctj||d}|d|jd<|jd|dk(sJy)Nrgr8rqrsrms r ,test_setitem_loc_scalar_multiple_homogoneousz=BaseSetitemTests.test_setitem_loc_scalar_multiple_homogoneous}s@ \\40 1q'wvvg$q')))r ctjtjt ||d}|d|j d<|j d|dk(sJy)Nrgr8rr8rj)r?rkrrlrrar`rms r test_setitem_iloc_scalar_mixedz/BaseSetitemTests.test_setitem_iloc_scalar_mixedsM \\ #d) 44@ AQ vvf~a(((r ctjd|i}|d|jd<|jd|dk(sJy)Nrir8)rrrrqr?rkrar`rms r test_setitem_iloc_scalar_singlez0BaseSetitemTests.test_setitem_iloc_scalar_singles? \\3+ &avvg$q')))r ctj||d}|d|jd<|jd|dk(sJy)Nrgr8)rrr8rqr{rms r -test_setitem_iloc_scalar_multiple_homogoneousz>BaseSetitemTests.test_setitem_iloc_scalar_multiple_homogoneouss@ \\40 1avvg$q')))r r )TTTFFbooleanr) numpy-arrayz boolean-arrayzboolean-array-na)r"c|ddj}|jgd}|r*tj|}tj|}|d||<t j ||yNrrrrLrrEtaker?r@rPrZ)r%r;r rBrdexpecteds r test_setitem_maskz"BaseSetitemTests.test_setitem_masks\2Ahmmo88O, ))C.Cyy*HGD  #&r cntjddg}|rtj|}t j t d5|d||<dddtj|d}t j t d5|d||<dddy#1swYMxYw#1swYyxYw)NTFz wrong lengthrJrrr)rrXr?r@r3r9 IndexErrorr%r;rBr s r test_setitem_mask_raisesz)BaseSetitemTests.test_setitem_mask_raisessxxu & 99T?D ]]:^ < !aDJ !xxI. ]]:^ < !aDJ ! !  ! ! ! !s B B+B(+B4ctjtj|jdd}d|ddtj |dd|rtj |}|d||<|dd|dk(jsJy)NrrrTrLrr)r?rXrzerosshapeNAr@allrs r 'test_setitem_mask_boolean_array_with_naz8BaseSetitemTests.test_setitem_mask_boolean_array_with_nasyxx6:)LRaEEQq 99T?D!WT RaDG#((***r idx)rr8r]Int64)rz integer-arrayrc|ddj}|jgd}|r*tj|}tj|}|d||<t j ||yrr)r%r;rrBrdrs r test_setitem_integer_arrayz+BaseSetitemTests.test_setitem_integer_arrays\ 2Ahmmo99_- ))C.Cyy*Hq6C X&r zidx, box_in_seriesrr8r]FzGH-31948)reason)marks)z list-Falsez list-Truezinteger-array-Falsezinteger-array-Truec ,|j}|rCtj|tt |Dcgc]}t d|zc}}d}t jt|5|d||<dddycc}w#1swYyxYw)Ndrz9Cannot index with an integer indexer containing NA valuesrJr) rEr?r@rrchrr3r9rN)r%r;rrBrdimsgs r (test_setitem_integer_with_missing_raisesz9BaseSetitemTests.test_setitem_integer_with_missing_raisessiik ))DuSY?O(P!S1W(PQCI ]]:S 1 1vCH  )Q  sB 3 B  B as_callableNc tj|}tjt |t ddd|rfd}n}|r t ||}n|}|dd||<|dd||<|d|dk(sJ|d|d k(sJy) NrTr]cSr)r r s r r z.sdr rrr8r?r@rrrrrc)r%r;rr_rSmask2targetr s @r test_setitem_mask_alignedz*BaseSetitemTests.test_setitem_mask_alignedsiioxxD .Ra "EE S&)FFQq u !AYE 1va   1va   r ctj|}tjt |t }d|dd|r t ||}n|}|d||<|d|dk(sJ|d|dk(sJy)NrTr]rrrr8r)r%r;r_rSr rs r test_setitem_mask_broadcastz,BaseSetitemTests.test_setitem_mask_broadcasts{iioxxD .Ra S&)FFBxt 1vb!!!1vb!!!r ctjd|i}|j}d|d<tj|dgt|zd}t j |||j}d|j dddf<t j ||||d<tj||d}t j ||yNrhr8rirg)r?rkrErrPassert_frame_equalr`r%r;rnresultrs r test_setitem_expand_columnsz,BaseSetitemTests.test_setitem_expand_columns s \\3+ &s <>!$wwyWWY  b$'wws|((*  b$'YY  b$'"+>77>>!$0 00yy"~  b$'r ctj|d}tjt |}tj |d}||}|d=t j||y)Nr;rr8)r?r@rrlrdeleterPrQ)r%r;rStakerrs r test_delitem_seriesz$BaseSetitemTests.test_delitem_seriessTii6* #c(# %#u: F sH-r cd}tjttf|5||d<dddtjttf|5||dddddy#1swY9xYw#1swYyxYw)NrJr)r3r9rNr:)r%r;invalid_scalarrs r test_setitem_invalidz%BaseSetitemTests.test_setitem_invalidsp ]]J 2# > %$DG %]]J 2# > %$DG % % % % % %sA"A."A+.A7c\|j}tj||d}|jddgddfj|jddgddf<|jdddf|dk(j sJ|jdddf|dk(j sJy)N)rrr8r)rEr?rkr`rr)r%r;rGrns r test_setitem_2d_valuesz'BaseSetitemTests.test_setitem_2d_valuess99; \\40 1FFAq619-441vqyq!t  +00222q!t  +00222r )4__name__ __module__r2r3fixturer'r6r+rCrHrVr[r^mark parametrizererortrvryr|r~rrXr?rrrrrr$xfailrrrrrrrrrrrrrrrrrrrrrr r rrs V^^  # ! & # ) 1  ()(V^^D! T" T&" &."(" [[Xv7!8! ) * * ) * *  [[ BHH5 6 BHH5Y G BHHdD$ruu5Y G A'' ! + [[ HBHHYg68KL 4 '  ' [[Aruu u % FLLAq"%% $fkk.?.?z.?.R RXXq!Q&g 6 > RXXq!Q&g 6 >   U     [[]T5M: [[Xt}5!6;!. [[Xt}5 "6 "0 0. ' * 8 ! #0 , 1(: .%3r r) numpyrr3pandasr?pandas._testing_testingrPrrr r rs {3{3r