
    Mh:                     <    S SK rS SKrS SKrS SKJr   " S S5      rg)    Nc                   .   \ rS rSr\R
                  " S S S S S S S // S	QS
9S 5       r\R
                  " SS9S 5       rS rS r	S r
S rS rS r\R                  R                  SSS/5      S 5       rS rS rS rS rS rS r\R                  R                  S\R0                  " / S Q5      \R0                  " / S QS!S"9\R0                  " SSS\R4                  \R4                  /S!S"9// S#QS$9S% 5       rS& rS' r\R                  R                  S(/ S)Q\R0                  " / S)QS*S"9\R0                  " / S)Q5      // S+QS$9S, 5       r\R                  R                  S-S.S/S0\R4                  /S14\R>                  " S.S/S0\R4                  /S\R                  RA                  S2S39S49\R0                  " S.S/S0\R4                  /S*S"9S14\R0                  " S.S/S0\R4                  /S*S"9S14// S5QS$9S6 5       r!\R                  R                  S7SS1/5      \R                  R                  SSS8/5      S9 5       5       r"\R                  R                  SSS8/5      S: 5       r#S; r$S< r%S= r&S> r'S? r(S@ r)SA r*SB r+SC r,SD r-SE r.SF r/SG r0SH r1SI r2SJ r3SK r4SLr5g8)MBaseSetitemTests   c                     U R                   $ Nindexxs    U/var/www/html/env/lib/python3.13/site-packages/pandas/tests/extension/base/setitem.py<lambda>BaseSetitemTests.<lambda>   s    agg    c                 ,    [        U R                  5      $ r   )listr	   r
   s    r   r   r      s    d177mr   c                     [        S 5      $ r   )slicer
   s    r   r   r      s    eDkr   c                 ,    [        S[        U 5      5      $ )Nr   )r   lenr
   s    r   r   r      s    eAs1v&r   c                 *    [        [        U 5      5      $ r   )ranger   r
   s    r   r   r      s    eCFmr   c                 <    [        [        [        U 5      5      5      $ r   )r   r   r   r
   s    r   r   r      s    d5Q=)r   c                 F    [         R                  " [        U 5      [        S9$ Ndtype)nponesr   boolr
   s    r   r   r      s    bggc!fD1r   )r	   zlist[index]
null_slice
full_slicer   zlist(range)mask)paramsidsc                     UR                   $ )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)selfrequests     r   full_indexerBaseSetitemTests.full_indexer	   s    6 }}r   T)autousec                    UR                   (       au  UR                  nUR                  R                  S5      S   S:X  a  g UR                  R
                  R                  S5      S   nUS:X  a  [        R                  " S5        g g g )N[r   test_is_immutable.r   z4__setitem__ test not applicable with immutable dtype)_is_immutablenodenamesplitfunction__qualname__pytestskip)r'   r   r(   r1   
defined_ins        r   skip_if_immutable"BaseSetitemTests.skip_if_immutable&   su    <<Dyys#A&*== 
 3399#>qAJ//RS 0 r   c                     UR                   R                  (       a,  [        R                  " [        5         US   US'   S S S 5        g US   US'   US   US   :X  d   eg ! , (       d  f       g = f)Nr      )r   r0   r6   raises	TypeError)r'   datas     r   r.   "BaseSetitemTests.test_is_immutable6   s^    ::##y)q'Q *) 1gDG7d1g%%%	 *)s   	A
A-c                 j    U(       a  [         R                  " U5      nUS   US'   US   US   :X  d   eg Nr<   r   pdSeriesr'   r?   box_in_seriess      r   test_setitem_scalar_series+BaseSetitemTests.test_setitem_scalar_series>   s5    99T?Dq'QAw$q'!!!r   c                     U(       a  [         R                  " U5      nUR                  5       nUS   US   /USS/'   US   US   :X  d   eUS   US   :X  d   eg rB   )rD   rE   copyr'   r?   rG   originals       r   test_setitem_sequence&BaseSetitemTests.test_setitem_sequenceD   sc    99T?D99;Qa)aVAw(1+%%%Aw(1+%%%r   c                 &   [         R                  " U5      nUR                  5       nUS   /nU(       a  UR                  XQR                  S9nSn[
        R                  " [        UR                  S5      S9   XSSS/'   S S S 5        [        R                  " X45        [
        R                  " [        UR                  S5      S9   XS[        S5      '   S S S 5        [        R                  " X45        g ! , (       d  f       Ny= f! , (       d  f       N6= f)	Nr   r   z5cannot set using a {} indexer with a different lengthz	list-likematchr<   r      )rD   rE   rK   _from_sequencer   r6   r=   
ValueErrorformattmassert_series_equalr   )r'   r?   as_arrayserrM   valuexprs          r   .test_setitem_sequence_mismatched_length_raises?BaseSetitemTests.test_setitem_sequence_mismatched_length_raisesM   s    iio88:a	''ZZ'@EE]]:SZZ-DEAK F 	s-]]:SZZ-@A!aM B
s- FE
 BAs   7C1D1
C?
Dc                     U(       a  [         R                  " U5      nUR                  5       n/ U[        R                  " / [
        S9'   [        R                  " X5        g r   )rD   rE   rK   r   arrayintrW   assert_equalrL   s       r   test_setitem_empty_indexer+BaseSetitemTests.test_setitem_empty_indexer^   s>    99T?D99;(*RXXb$%
'r   c                     U(       a  [         R                  " U5      nUS   USS/'   US   US   :X  d   eUS   US   :X  d   eg )N   r   r<   rC   rF   s      r    test_setitem_sequence_broadcasts1BaseSetitemTests.test_setitem_sequence_broadcastse   sO    99T?DAwaVAw$q'!!!Aw$q'!!!r   setterlocilocc                 r    [         R                  " U5      n[        X25      nUS   US'   US   US   :X  d   eg rB   )rD   rE   getattr)r'   r?   ri   arrs       r   test_setitem_scalar$BaseSetitemTests.test_setitem_scalarl   s<    iio%Gq	1va   r   c                     [         R                  " [        R                  " [	        U5      5      US.5      nUS   UR
                  S'   UR
                  S   US   :X  d   eg )NABr<   r   rt   )rD   	DataFramer   aranger   rj   r'   r?   dfs      r   test_setitem_loc_scalar_mixed.BaseSetitemTests.test_setitem_loc_scalar_mixeds   sM    \\		#d) 44@Aavvvf~a(((r   c                     [         R                  " SU05      nUS   UR                  S'   UR                  S   US   :X  d   eg )Nrt   r<   
   rt   rD   rv   rj   rx   s      r   test_setitem_loc_scalar_single/BaseSetitemTests.test_setitem_loc_scalar_singlex   s?    \\3+&q'wvvg$q')))r   c                     [         R                  " XS.5      nUS   UR                  S'   UR                  S   US   :X  d   eg )Nrr   r<   r}   r   rx   s      r   ,test_setitem_loc_scalar_multiple_homogoneous=BaseSetitemTests.test_setitem_loc_scalar_multiple_homogoneous}   s>    \\01q'wvvg$q')))r   c                     [         R                  " [        R                  " [	        U5      5      US.5      nUS   UR
                  S'   UR                  S   US   :X  d   eg )Nrr   r<   r   r<   ru   )rD   rv   r   rw   r   rk   rj   rx   s      r   test_setitem_iloc_scalar_mixed/BaseSetitemTests.test_setitem_iloc_scalar_mixed   sM    \\		#d) 44@AQvvf~a(((r   c                     [         R                  " SU05      nUS   UR                  S'   UR                  S   US   :X  d   eg )Nrt   r<   )r~   r   r}   rD   rv   rk   rj   rx   s      r   test_setitem_iloc_scalar_single0BaseSetitemTests.test_setitem_iloc_scalar_single   s?    \\3+&avvg$q')))r   c                     [         R                  " XS.5      nUS   UR                  S'   UR                  S   US   :X  d   eg )Nrr   r<   )r~   r<   r}   r   rx   s      r   -test_setitem_iloc_scalar_multiple_homogoneous>BaseSetitemTests.test_setitem_iloc_scalar_multiple_homogoneous   s>    \\01avvg$q')))r   r"   )TTTFFbooleanr   )numpy-arrayzboolean-arrayzboolean-array-na)r$   c                     US S R                  5       nUR                  / SQ5      nU(       a,  [        R                  " U5      n[        R                  " U5      nUS   XB'   [        R
                  " XT5        g N   r   r   r   rS      r   rK   takerD   rE   rW   rb   )r'   r?   r"   rG   rn   expecteds         r   test_setitem_mask"BaseSetitemTests.test_setitem_mask   sX     2Ahmmo88O,))C.Cyy*HG	
&r   c                    [         R                  " SS/5      nU(       a  [        R                  " U5      n[        R
                  " [        SS9   US   X'   S S S 5        [        R                  " USS9n[        R
                  " [        SS9   US   X'   S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)NTFzwrong lengthrQ   r   r   r   )r   r`   rD   rE   r6   r=   
IndexErrorr'   r?   rG   r"   s       r   test_setitem_mask_raises)BaseSetitemTests.test_setitem_mask_raises   s    xxu&99T?D]]:^<aDJ = xxI.]]:^<aDJ =<	 =< =<s   BB/
B,/
B=c                     [         R                  " [        R                  " UR                  SS9SS9nSUS S& [         R
                  USS& U(       a  [         R                  " U5      nUS   X'   US S US   :H  R                  5       (       d   eg )Nr   r   r   TrS   r   r   )rD   r`   r   zerosshapeNArE   allr   s       r   'test_setitem_mask_boolean_array_with_na8BaseSetitemTests.test_setitem_mask_boolean_array_with_na   sz    xx6:)LRaEEQq	99T?D!W
RaDG#((****r   idx)r   r<   rf   Int64)r   zinteger-arrayr   c                     US S R                  5       nUR                  / SQ5      nU(       a,  [        R                  " U5      n[        R                  " U5      nUS   XB'   [        R
                  " XE5        g r   r   )r'   r?   r   rG   rn   r   s         r   test_setitem_integer_array+BaseSetitemTests.test_setitem_integer_array   sX     2Ahmmo99_-))C.Cyy*Hq6
&r   zidx, box_in_seriesr   r<   rf   FzGH-31948)reason)marks)z
list-Falsez	list-Truezinteger-array-Falsezinteger-array-Truec           
      <   UR                  5       nU(       aD  [        R                  " U[        [	        U5      5       Vs/ s H  n[        SU-   5      PM     snS9nSn[        R                  " [        US9   US   XB'   S S S 5        g s  snf ! , (       d  f       g = f)Nd   r   z9Cannot index with an integer indexer containing NA valuesrQ   r   )	rK   rD   rE   r   r   chrr6   r=   rU   )r'   r?   r   rG   rn   imsgs          r   (test_setitem_integer_with_missing_raises9BaseSetitemTests.test_setitem_integer_with_missing_raises   s{     iik ))DuSY?O(P?O!S1W?O(PQCI]]:S11vCH 21 )Q 21s   B
7B
Bas_callableNc                   ^ [         R                  " U5      n[        R                  " [	        U5      [
        S9mSTS S& U(       a  U4S jnOTnU(       a  [        XC5      nOUnUSS Xe'   USS XE'   US   US   :X  d   eUS   US	   :X  d   eg )
Nr   Trf   c                    > T$ r    )r   r"   s    r   r   <BaseSetitemTests.test_setitem_mask_aligned.<locals>.<lambda>   s    dr   r      r   r<      rD   rE   r   r   r   r   rm   )r'   r?   r   ri   rZ   mask2targetr"   s          @r   test_setitem_mask_aligned*BaseSetitemTests.test_setitem_mask_aligned   s     iioxxD	.Ra"EES)F FQq	!AY
1va   1va   r   c                     [         R                  " U5      n[        R                  " [	        U5      [
        S9nSUS S& U(       a  [        X25      nOUnUS   XT'   US   US   :X  d   eUS   US   :X  d   eg )Nr   Trf   r~   r   r<   r   )r'   r?   ri   rZ   r"   r   s         r   test_setitem_mask_broadcast,BaseSetitemTests.test_setitem_mask_broadcast   sw    iioxxD	.RaS)FFBx1vb!!!1vb!!!r   c                    [         R                  " SU05      nUR                  5       nSUS'   [         R                  " US/[        U5      -  S.5      n[        R
                  " X45        UR                  5       nSUR                  S S 2S4'   [        R
                  " X45        XS'   [         R                  " XS.5      n[        R
                  " X45        g Nrs   r<   rt   rr   )rD   rv   rK   r   rW   assert_frame_equalrj   r'   r?   ry   resultr   s        r   test_setitem_expand_columns,BaseSetitemTests.test_setitem_expand_columns  s    \\3+&s<<d!s4y AB
f/

1c6
f/ s<<d 67
f/r   c                 ^   [         R                  " SS/[        U5      -  05      nUR                  5       nXS'   [         R                  " S/[        U5      -  US.5      n[        R
                  " X45        UR                  5       nXR                  S S 2S4'   [        R
                  " X45        g r   )rD   rv   r   rK   rW   r   rj   r   s        r   "test_setitem_expand_with_extension3BaseSetitemTests.test_setitem_expand_with_extension  s    \\3c$i01s<<qcCIoD AB
f/!

1c6
f/r   c                     [         R                  " SS/[        U5      -  05      nS[        US S 5       S[        U5       S3n[        R                  " [
        US9   US S US'   S S S 5        g ! , (       d  f       g = f)	Nrs   r<   zLength of values \(r   z$\) does not match length of index \(z\)rQ   rt   )rD   rv   r   r6   r=   rU   )r'   r?   ry   r\   s       r   !test_setitem_frame_invalid_length2BaseSetitemTests.test_setitem_frame_invalid_length(  su    \\3c$i01"3tBQx=/ 2114R	= 	 ]]:S12AhBsG 211s   	A//
A=c                     [         R                  " US S SS/S9n[         R                  " UR                  SS/5      UR                  S9nUS   US'   [        R
                  " X#5        g )Nrf   )r   r   r   r   r<   )rD   rE   r   r	   rW   rX   )r'   r?   rZ   r   s       r   test_setitem_tuple_index)BaseSetitemTests.test_setitem_tuple_index1  sY    iiRa(8999TYY1v.cii@1gF
s-r   c                     US S R                  5       nUR                  / SQ5      nU(       a,  [        R                  " U5      n[        R                  " U5      nUS   US S& [        R
                  " X45        g )Nr   r   r   rS   r   )r'   r?   rG   rn   r   s        r   test_setitem_slice#BaseSetitemTests.test_setitem_slice7  sZ    2Ahmmo99_-))C.Cyy*Hq'BQ
&r   c                    US S R                  5       n[        R                  " U/ SQS9n[        R                  " UR                  / SQ5      UR                  S9nUR                  5       nUS   UR
                  S S& [        R                  " XT5        UR                  5       nUS   UR                  S S& [        R                  " XT5        g )Nr   )abcder   r   r   rS   r   )	rK   rD   rE   r   r	   rk   rW   rb   rj   )r'   r?   rn   sr   r   s         r   test_setitem_loc_iloc_slice,BaseSetitemTests.test_setitem_loc_iloc_sliceA  s    2AhmmoIIc!:;99TYY7qwwGq'BQ
)7

4C
)r   c                     US S n[         R                  " [        5         US S US S& S S S 5        g ! , (       d  f       g = f)Nr   rf   r<   )r6   r=   rU   r'   r?   rn   s      r   )test_setitem_slice_mismatch_length_raises:BaseSetitemTests.test_setitem_slice_mismatch_length_raisesN  s6    2Ah]]:&"1gCG '&&s	   	2
A c                 l    US S R                  5       nUSS  US S& [        R                  " X!SS  5        g )Nr   )rK   rW   assert_extension_array_equalr   s      r   test_setitem_slice_array)BaseSetitemTests.test_setitem_slice_arrayS  s8    2Ahmmors)BQ
''"#Y7r   c                     US S R                  5       n[        R                  " [        5         USS/   US'   S S S 5        g ! , (       d  f       g = f)Nr   r   r<   )rK   r6   r=   rU   r   s      r   &test_setitem_scalar_key_sequence_raise7BaseSetitemTests.test_setitem_scalar_key_sequence_raiseX  s<    2Ahmmo]]:&!Q[CF '&&s   A
Ac                 v    UR                  5       nUS S  nUS   US'   US   US   :X  d   eUS   US   :X  d   eg rB   )view)r'   r?   view1view2s       r   test_setitem_preserves_views-BaseSetitemTests.test_setitem_preserves_views]  sO    		Qq'QQx47"""Qx47"""r   c                     [         R                  " S[         R                  " U5      05      =p4[         R                  " UR                  S9nU" U5      nUS   UR                  US4'   [
        R                  " XT5        g )Nr   r   )rD   rv   rE   r	   rj   rW   r   )r'   r?   r)   ry   r   r   keys          r   ,test_setitem_with_expansion_dataframe_column=BaseSetitemTests.test_setitem_with_expansion_dataframe_columnf  s`    a4%9::BHH-2U

36
f/r   c                    [         R                  " SUS S 05      nUS   UR                  S'   [         R                  " SUS S 05      n[        R                  " X45        X#R                  S'   [         R                  " S[         R
                  " US   US   U/UR                  S905      n[        R                  " X45        g )Nr?   r<   )r<   r?   rf   )rf   r?   r   r   )rD   rv   rj   rW   r   rE   r   )r'   r?   na_valuery   r   s        r   test_setitem_with_expansion_row0BaseSetitemTests.test_setitem_with_expansion_rowp  s    \\648,- Gy<<bq 23
b+ %y<<RYYQa(;4::NO
 	b+r   c                 >   [         R                  " USS9n[         R                  " UR                  [        SS9nU" U5      nX4R                  U'   [         R                  " UR                  [        5      UR                  S[        S9n[        R                  " XF5        g )Nr?   r2   )r	   r   r2   )r	   r2   r   )rD   rE   r	   objectrj   astyperW   rX   )r'   r?   r)   rZ   r   r   r   s          r   test_setitem_series$BaseSetitemTests.test_setitem_series~  ss    ii6*&vF 3

399KKsyyvV
 	v0r   c                 >   [         R                  " SU05      n[        UR                  [         R                  R
                  R                  5      n[         R                  R                  R                  nUR                  R                  S   nUR                  5       nUR                  5       UR                  S S & [        R                  " X&5        UR                  S S R                  5       UR                  S S& [        R                  " X&5        UR                  UR                  S S & [        R                  " X&5        U(       d%  U(       d  UR                  R                  S   UL d   eUR                  S S UR                  S S& [        R                  " X&5        g )Nrs   r   )rD   rv   
isinstance_mgrcore	internalsArrayManageroptionsmodecopy_on_writearraysrK   rk   rW   r   values)r'   r?   ry   using_array_managerusing_copy_on_writeblk_dataorigs          r   test_setitem_frame_2d_values-BaseSetitemTests.test_setitem_frame_2d_values  s"   \\3+& )"''2C2C2P2PQ jjoo;;77>>!$wwyWWY

b'wws|((*
b'YY

b'"+> 77>>!$000yy"~
b'r   c                     [         R                  " USS9n[        R                  " [	        U5      5      n[        R
                  " US5      nX#   nUS	 [        R                  " X$5        g )Nr?   r   r<   )rD   rE   r   rw   r   deleterW   rX   )r'   r?   rZ   takerr   s        r   test_delitem_series$BaseSetitemTests.test_delitem_series  sP    ii6*		#c(#		%#:F
s-r   c                     Sn[         R                  " [        [        4US9   X!S'   S S S 5        [         R                  " [        [        4US9   X!S S & S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)N rQ   r   )r6   r=   rU   r>   )r'   r?   invalid_scalarr   s       r   test_setitem_invalid%BaseSetitemTests.test_setitem_invalid  s\    ]]J	2#>$G ? ]]J	2#>$G ?> ?> ?>s   AA-
A*-
A;c                 p   UR                  5       n[        R                  " XS.5      nUR                  SS/S S 24   R                  UR                  SS/S S 24'   UR                  SS S 24   US   :H  R                  5       (       d   eUR                  SS S 24   US   :H  R                  5       (       d   eg )N)r   r   r<   r   )rK   rD   rv   rj   r  r   )r'   r?   rM   ry   s       r   test_setitem_2d_values'BaseSetitemTests.test_setitem_2d_values  s    99;\\01FFAq619-441vqyq!t+002222q!t+002222r   r   )6__name__
__module__r5   __firstlineno__r6   fixturer)   r9   r.   rH   rN   r]   rc   rg   markparametrizero   rz   r   r   r   r   r   r   r`   rD   r   r   r   r   r   r&   xfailr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  __static_attributes__r   r   r   r   r      s   ^^#!&#)1

()( ^^D!T "T&"&."(" [[Xv7! 8!)
*
*
)
*
*
 [[HH56HH5YGHHdD$ruu5YG	

 A  ''!
+ [[	BHHYg68KL4  
	'
	' [[Aruuu%LLAq"%% $fkk.?.?z.?.R XXq!Q&g6>XXq!Q&g6>	
 U  

 [[]T5M:[[Xt}5! 6 ;!. [[Xt}5" 6"0 	0.'*
8
!
#0,1(:	.%3r   r   )	numpyr   r6   pandasrD   pandas._testing_testingrW   r   r   r   r   <module>r,     s       {3 {3r   