
    bMh:                     D    d dl Zd dlZd dlZd dlmZ  G d d          ZdS )    Nc                   2   e Zd Z ej        d d d d d d d gg d	          d
             Z ej        d          d             Zd Zd Zd Z	d Z
d Zd Zej                            dddg          d             Zd Zd Zd Zd Zd Zd Zej                            d ej        g d           ej        g dd !           ej        dddej        ej        gd !          gg d"#          d$             Zd% Zd& Zej                            d'g d( ej        g d(d)!           ej        g d(          gg d*#          d+             Zej                            d,d-d.d/ej        gd0f ej        d-d.d/ej        gdej                            d12          3           ej        d-d.d/ej        gd)!          d0f ej        d-d.d/ej        gd)!          d0fgg d4#          d5             Z ej                            d6dd0g          ej                            ddd7g          d8                         Z!ej                            ddd7g          d9             Z"d: Z#d; Z$d< Z%d= Z&d> Z'd? Z(d@ Z)dA Z*dB Z+dC Z,dD Z-dE Z.dF Z/dG Z0dH Z1dI Z2dJ Z3d7S )KBaseSetitemTestsc                     | j         S Nindexxs    c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/extension/base/setitem.py<lambda>zBaseSetitemTests.<lambda>   s    ag     c                 *    t          | j                  S r   )listr   r	   s    r   r   zBaseSetitemTests.<lambda>   s    d17mm r   c                      t          d           S r   )slicer	   s    r   r   zBaseSetitemTests.<lambda>   s    eDkk r   c                 <    t          dt          |                     S )Nr   )r   lenr	   s    r   r   zBaseSetitemTests.<lambda>   s    eAs1vv&& r   c                 :    t          t          |                     S r   )ranger   r	   s    r   r   zBaseSetitemTests.<lambda>   s    eCFFmm r   c                 T    t          t          t          |                               S r   )r   r   r   r	   s    r   r   zBaseSetitemTests.<lambda>   s    d5Q==)) r   c                 R    t          j        t          |           t                    S Ndtype)nponesr   boolr	   s    r   r   zBaseSetitemTests.<lambda>   s    bgc!ffD111 r   )r   zlist[index]
null_slice
full_slicer   zlist(range)mask)paramsidsc                     |j         S )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_indexerzBaseSetitemTests.full_indexer	   s    6 }r   T)autousec                     |j         rn|j        }|j                            d          d         dk    rd S |j        j                            d          d         }|dk    rt          j        d           d S d S d S )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&   r.   
defined_ins        r   skip_if_immutablez"BaseSetitemTests.skip_if_immutable&   s     	T<Dys##A&*=== 
 399#>>qAJ///RSSSSS	T 	T 0/r   c                     |j         j        r?t          j        t                    5  |d         |d<   d d d            d S # 1 swxY w Y   d S |d         |d<   |d         |d         k    sJ d S )Nr      )r   r-   r3   raises	TypeError)r%   datas     r   r+   z"BaseSetitemTests.test_is_immutable6   s    :# 	&y)) " "q'Q" " " " " " " " " " " " " " " " " " 1gDG7d1g%%%%%%s   ?AAc                 p    |rt          j        |          }|d         |d<   |d         |d         k    sJ d S Nr8   r   pdSeriesr%   r;   box_in_seriess      r   test_setitem_scalar_seriesz+BaseSetitemTests.test_setitem_scalar_series>   sC     	#9T??Dq'QAw$q'!!!!!!r   c                     |rt          j        |          }|                                }|d         |d         g|ddg<   |d         |d         k    sJ |d         |d         k    sJ d S r=   )r?   r@   copyr%   r;   rB   originals       r   test_setitem_sequencez&BaseSetitemTests.test_setitem_sequenceD   sv     	#9T??D99;;Qa)aVAw(1+%%%%Aw(1+%%%%%%r   c                 F   t          j        |          }|                                }|d         g}|r|                    ||j                  }d}t          j        t          |                    d                    5  ||ddg<   d d d            n# 1 swxY w Y   t          j
        ||           t          j        t          |                    d                    5  ||t          d          <   d d d            n# 1 swxY w Y   t          j
        ||           d S )	Nr   r   z5cannot set using a {} indexer with a different lengthz	list-likematchr8   r      )r?   r@   rE   _from_sequencer   r3   r9   
ValueErrorformattmassert_series_equalr   )r%   r;   as_arrayserrG   valuexprs          r   .test_setitem_sequence_mismatched_length_raisesz?BaseSetitemTests.test_setitem_sequence_mismatched_length_raisesM   s   ioo88::a	 	A''TZ'@@EE]:SZZ-D-DEEE 	  	 CAK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	sH---]:SZZ-@-@AAA 	" 	"!CaM	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
sH-----s$    BBB"DDDc                     |rt          j        |          }|                                }g |t          j        g t
                    <   t          j        ||           d S r   )r?   r@   rE   r   arrayintrP   assert_equalrF   s       r   test_setitem_empty_indexerz+BaseSetitemTests.test_setitem_empty_indexer^   sU     	#9T??D99;;(*RXb$$$%
h'''''r   c                     |rt          j        |          }|d         |ddg<   |d         |d         k    sJ |d         |d         k    sJ d S )N   r   r8   r>   rA   s      r    test_setitem_sequence_broadcastsz1BaseSetitemTests.test_setitem_sequence_broadcastse   s`     	#9T??DAwaVAw$q'!!!!Aw$q'!!!!!!r   setterlocilocc                     t          j        |          }t          ||          }|d         |d<   |d         |d         k    sJ d S r=   )r?   r@   getattr)r%   r;   r_   arrs       r   test_setitem_scalarz$BaseSetitemTests.test_setitem_scalarl   sJ    ioof%%Gq	1va      r   c                     t          j        t          j        t	          |                    |d          }|d         |j        d<   |j        d         |d         k    sJ d S )NABr8   r   ri   )r?   	DataFramer   aranger   r`   r%   r;   dfs      r   test_setitem_loc_scalar_mixedz.BaseSetitemTests.test_setitem_loc_scalar_mixeds   sY    \	#d)) 4 44@@AAavvf~a((((((r   c                     t          j        d|i          }|d         |j        d<   |j        d         |d         k    sJ d S )Nri   r8   
   ri   r?   rk   r`   rm   s      r   test_setitem_loc_scalar_singlez/BaseSetitemTests.test_setitem_loc_scalar_singlex   sE    \3+&&q'wvg$q'))))))r   c                     t          j        ||d          }|d         |j        d<   |j        d         |d         k    sJ d S )Nrg   r8   rq   rs   rm   s      r   ,test_setitem_loc_scalar_multiple_homogoneousz=BaseSetitemTests.test_setitem_loc_scalar_multiple_homogoneous}   sI    \40011q'wvg$q'))))))r   c                     t          j        t          j        t	          |                    |d          }|d         |j        d<   |j        d         |d         k    sJ d S )Nrg   r8   r   r8   rj   )r?   rk   r   rl   r   ra   r`   rm   s      r   test_setitem_iloc_scalar_mixedz/BaseSetitemTests.test_setitem_iloc_scalar_mixed   sY    \	#d)) 4 44@@AAQvf~a((((((r   c                     t          j        d|i          }|d         |j        d<   |j        d         |d         k    sJ d S )Nri   r8   )rr   r   rq   r?   rk   ra   r`   rm   s      r   test_setitem_iloc_scalar_singlez0BaseSetitemTests.test_setitem_iloc_scalar_single   sE    \3+&&avg$q'))))))r   c                     t          j        ||d          }|d         |j        d<   |j        d         |d         k    sJ d S )Nrg   r8   )rr   r8   rq   r{   rm   s      r   -test_setitem_iloc_scalar_multiple_homogoneousz>BaseSetitemTests.test_setitem_iloc_scalar_multiple_homogoneous   sI    \40011avg$q'))))))r   r    )TTTFFbooleanr   )numpy-arrayzboolean-arrayzboolean-array-na)r"   c                     |d d                                          }|                    g d          }|r(t          j        |          }t          j        |          }|d         ||<   t	          j        ||           d S N   r   r   r   rL      r   rE   taker?   r@   rP   rZ   )r%   r;   r    rB   rd   expecteds         r   test_setitem_maskz"BaseSetitemTests.test_setitem_mask   sw     2A2hmmoo88OOO,, 	+)C..Cy**HGD	
#&&&&&r   c                    t          j        ddg          }|rt          j        |          }t	          j        t          d          5  |d         ||<   d d d            n# 1 swxY w Y   t          j        |d          }t	          j        t          d          5  |d         ||<   d d d            d S # 1 swxY w Y   d S )NTFzwrong lengthrJ   r   r   r   )r   rX   r?   r@   r3   r9   
IndexErrorr%   r;   rB   r    s       r   test_setitem_mask_raisesz)BaseSetitemTests.test_setitem_mask_raises   s=   xu&& 	#9T??D]:^<<< 	! 	!aDJ	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! xI...]:^<<< 	! 	!aDJ	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s$   A  A$'A$B55B9<B9c                 &   t          j        t          j        |j        d          d          }d|d d<   t           j        |dd<   |rt          j        |          }|d         ||<   |d d         |d         k                                    sJ d S )Nr   r   r   TrL   r   r   )r?   rX   r   zerosshapeNAr@   allr   s       r   'test_setitem_mask_boolean_array_with_naz8BaseSetitemTests.test_setitem_mask_boolean_array_with_na   s    x6:::)LLLRaREQqS	 	#9T??D!WT
RaRDG#((*******r   idx)r   r8   r]   Int64)r   zinteger-arrayr   c                     |d d                                          }|                    g d          }|r(t          j        |          }t          j        |          }|d         ||<   t	          j        ||           d S r   r   )r%   r;   r   rB   rd   r   s         r   test_setitem_integer_arrayz+BaseSetitemTests.test_setitem_integer_array   sw     2A2hmmoo99___-- 	+)C..Cy**Hq6C
X&&&&&r   zidx, box_in_seriesr   r8   r]   FzGH-31948)reason)marks)z
list-Falsez	list-Truezinteger-array-Falsezinteger-array-Truec           	      (   |                                 }|r:t          j        |d t          t	          |                    D                       }d}t          j        t          |          5  |d         ||<   d d d            d S # 1 swxY w Y   d S )Nc                 2    g | ]}t          d |z             S )d   )chr).0is     r   
<listcomp>zMBaseSetitemTests.test_setitem_integer_with_missing_raises.<locals>.<listcomp>   s"    (P(P(P!S1W(P(P(Pr   r   z9Cannot index with an integer indexer containing NA valuesrJ   r   )rE   r?   r@   r   r   r3   r9   rN   )r%   r;   r   rB   rd   msgs         r   (test_setitem_integer_with_missing_raisesz9BaseSetitemTests.test_setitem_integer_with_missing_raises   s     iikk  	R)D(P(PuSYY?O?O(P(P(PQQQCI]:S111 	 	1vCH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .BBBas_callableNc                 P   t          j        |          }t          j        t	          |          t
                    dd d<   |rfd}n}|rt          ||          }n|}|dd         ||<   |dd         ||<   |d         |d         k    sJ |d         |d	         k    sJ d S )
Nr   Tr]   c                     S r    )r
   r    s    r   r   z<BaseSetitemTests.test_setitem_mask_aligned.<locals>.<lambda>   s    d r   r      r   r8      r?   r@   r   r   r   r   rc   )r%   r;   r   r_   rS   mask2targetr    s          @r   test_setitem_mask_alignedz*BaseSetitemTests.test_setitem_mask_aligned   s     iooxD		...RaR 	"NNNEEE 	S&))FF FQqS	u!A#YE
1va    1va      r   c                    t          j        |          }t          j        t	          |          t
                    }d|d d<   |rt          ||          }n|}|d         ||<   |d         |d         k    sJ |d         |d         k    sJ d S )Nr   Tr]   rr   r   r8   r   )r%   r;   r_   rS   r    r   s         r   test_setitem_mask_broadcastz,BaseSetitemTests.test_setitem_mask_broadcast   s    iooxD		...RaR 	S&))FFFBxt1vb!!!!1vb!!!!!!r   c                    t          j        d|i          }|                                }d|d<   t          j        |dgt          |          z  d          }t	          j        ||           |                                }d|j        d d df<   t	          j        ||           ||d<   t          j        ||d          }t	          j        ||           d S Nrh   r8   ri   rg   )r?   rk   rE   r   rP   assert_frame_equalr`   r%   r;   rn   resultr   s        r   test_setitem_expand_columnsz,BaseSetitemTests.test_setitem_expand_columns  s    \3+&&s<d!s4yy A ABB
fh///
111c6
fh/// s<d 6 677
fh/////r   c                 n   t          j        ddgt          |          z  i          }|                                }||d<   t          j        dgt          |          z  |d          }t	          j        ||           |                                }||j        d d df<   t	          j        ||           d S r   )r?   rk   r   rE   rP   r   r`   r   s        r   "test_setitem_expand_with_extensionz3BaseSetitemTests.test_setitem_expand_with_extension  s    \3c$ii011s<qcCIIoD A ABB
fh///!
111c6
fh/////r   c                 ,   t          j        ddgt          |          z  i          }dt          |d d                    dt          |           d}t          j        t
          |          5  |d d         |d<   d d d            d S # 1 swxY w Y   d S )	Nrh   r8   zLength of values \(r   z$\) does not match length of index \(z\)rJ   ri   )r?   rk   r   r3   r9   rN   )r%   r;   rn   rU   s       r   !test_setitem_frame_invalid_lengthz2BaseSetitemTests.test_setitem_frame_invalid_length(  s    \3c$ii011=3tBQBx== = =14R= = = 	 ]:S111 	 	2A2hBsG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .B		BBc                     t          j        |d d         ddg          }t          j        |                    ddg          |j                  }|d         |d<   t	          j        ||           d S )Nr]   )r   r   rx   r   r8   )r?   r@   r   r   rP   rQ   )r%   r;   rS   r   s       r   test_setitem_tuple_indexz)BaseSetitemTests.test_setitem_tuple_index1  so    iRaR(89999TYY1v..ci@@@1gF
sH-----r   c                    |d d                                          }|                    g d          }|r(t          j        |          }t          j        |          }|d         |d d<   t	          j        ||           d S )Nr   r   r   rL   r   )r%   r;   rB   rd   r   s        r   test_setitem_slicez#BaseSetitemTests.test_setitem_slice7  sy    2A2hmmoo99___-- 	+)C..Cy**Hq'BQB
X&&&&&r   c                    |d d                                          }t          j        |g d          }t          j        |                    g d          |j                  }|                                 }|d         |j        d d<   t          j        ||           |                                 }|d         |j        d d<   t          j        ||           d S )Nr   )abcder   r   r   rL   r   )	rE   r?   r@   r   r   ra   rP   rZ   r`   )r%   r;   rd   sr   r   s         r   test_setitem_loc_iloc_slicez,BaseSetitemTests.test_setitem_loc_iloc_sliceA  s    2A2hmmooIc!:!:!:;;;9TYY77qwGGGq'BQB
)))7
4C4
)))))r   c                     |d d         }t          j        t                    5  |d d         |d d<   d d d            d S # 1 swxY w Y   d S )Nr   r]   r8   )r3   r9   rN   r%   r;   rd   s      r   )test_setitem_slice_mismatch_length_raisesz:BaseSetitemTests.test_setitem_slice_mismatch_length_raisesN  s    2A2h]:&& 	 	"1"gCG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     |d d                                          }|dd          |d d<   t          j        ||dd                     d S )Nr   )rE   rP   assert_extension_array_equalr   s      r   test_setitem_slice_arrayz)BaseSetitemTests.test_setitem_slice_arrayS  sM    2A2hmmoorss)BQB
'T"##Y77777r   c                     |d d                                          }t          j        t                    5  |ddg         |d<   d d d            d S # 1 swxY w Y   d S )Nr   r   r8   )rE   r3   r9   rN   r   s      r   &test_setitem_scalar_key_sequence_raisez7BaseSetitemTests.test_setitem_scalar_key_sequence_raiseX  s    2A2hmmoo]:&& 	! 	!!Q[CF	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   AAAc                     |                                 }|d d          }|d         |d<   |d         |d         k    sJ |d         |d         k    sJ d S r=   )view)r%   r;   view1view2s       r   test_setitem_preserves_viewsz-BaseSetitemTests.test_setitem_preserves_views]  sa    		QQQq'QQx47""""Qx47""""""r   c                     t          j        dt          j        |          i          x}}t          j        |j                  } ||          }|d         |j        |df<   t          j        ||           d S )Nr   r   )r?   rk   r@   r   r`   rP   r   )r%   r;   r'   rn   r   r   keys          r   ,test_setitem_with_expansion_dataframe_columnz=BaseSetitemTests.test_setitem_with_expansion_dataframe_columnf  ss    a4%9:::XBH---l2U
36
fh/////r   c                    t          j        d|d d         i          }|d         |j        d<   t          j        d|d d         i          }t          j        ||           ||j        d<   t          j        dt          j        |d         |d         |g|j                  i          }t          j        ||           d S )Nr;   r8   )r8   r;   r]   )r]   r;   r   r   )r?   rk   r`   rP   r   r@   r   )r%   r;   na_valuern   r   s        r   test_setitem_with_expansion_rowz0BaseSetitemTests.test_setitem_with_expansion_rowp  s    \648,-- Gy<bqb 233
b(+++ %y<RYQa(;4:NNNO
 
 	b(+++++r   c                 <   t          j        |d          }t          j        |j        t          d          } ||          }||j        |<   t          j        |                    t                    |j        dt                    }t          j        ||           d S )Nr;   r/   )r   r   r/   )r   r/   r   )r?   r@   r   objectr`   astyperP   rQ   )r%   r;   r'   rS   r   r   r   s          r   test_setitem_seriesz$BaseSetitemTests.test_setitem_series~  s    i6***&vFFF l3
39KKsyvV
 
 
 	vx00000r   c                    t          j        d|i          }t          |j        t           j        j        j                  }t           j        j        j	        }|j        j
        d         }|                                }|                                |j        d d <   t          j        ||           |j        d d                                         |j        d d<   t          j        ||           |j        |j        d d <   t          j        ||           |s|s|j        j
        d         |u sJ |j        d d         |j        d d<   t          j        ||           d S )Nrh   r   )r?   rk   
isinstance_mgrcore	internalsArrayManageroptionsmodecopy_on_writearraysrE   ra   rP   r   values)r%   r;   rn   using_array_managerusing_copy_on_writeblk_dataorigs          r   test_setitem_frame_2d_valuesz-BaseSetitemTests.test_setitem_frame_2d_values  s=   \3+&& )"'2C2PQQ jo;7>!$wwyyWWYY

b$'''wss|((**
b$'''Y

b$'''" 	1+> 	1 7>!$0000y"~
b$'''''r   c                     t          j        |d          }t          j        t	          |                    }t          j        |d          }||         }|d= t          j        ||           d S )Nr;   r   r8   )r?   r@   r   rl   r   deleterP   rQ   )r%   r;   rS   takerr   s        r   test_delitem_seriesz$BaseSetitemTests.test_delitem_series  se    i6***	#c((##	%##u:F
sH-----r   c                    d}t          j        t          t          f|          5  ||d<   d d d            n# 1 swxY w Y   t          j        t          t          f|          5  ||d d <   d d d            d S # 1 swxY w Y   d S )N rJ   r   )r3   r9   rN   r:   )r%   r;   invalid_scalarr   s       r   test_setitem_invalidz%BaseSetitemTests.test_setitem_invalid  s   ]J	2#>>> 	% 	%$DG	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ]J	2#>>> 	% 	%$DG	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   7;;$A99A= A=c                 d   |                                 }t          j        ||d          }|j        ddgd d f         j        |j        ddgd d f<   |j        dd d f         |d         k                                    sJ |j        dd d f         |d         k                                    sJ d S )N)r   r   r8   r   )rE   r?   rk   r`   r   r   )r%   r;   rG   rn   s       r   test_setitem_2d_valuesz'BaseSetitemTests.test_setitem_2d_values  s    99;;\40011FAq61119-41vqqqyq!!!t+0022222q!!!t+002222222r   )4__name__
__module__r2   r3   fixturer'   r6   r+   rC   rH   rV   r[   r^   markparametrizere   ro   rt   rv   ry   r|   r~   r   rX   r?   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   r   r   r   r   r      s)       V^##!!&&##))11

 
 
  ( ) ( V^D!!!T T "!T& & &" " "& & &. . ."( ( (" " " [Xv77! ! 87!) ) )
* * *
* * *
) ) )
* * *
* * *
 [BH55566BH555YGGGBHdD$ru5YGGG	

 A@@   ' ' '! ! !
+ 
+ 
+ [	HBHYYYg6668K8KL444   
	' 	' 
	' [Aruu%FLAq"% $fk.?.?z.?.R.R   RXq!Q&g666>RXq!Q&g666>	
 UTT   
 
 
 []T5M::[Xt}55! ! 65 ;:!. [Xt}55" " 65"0 0 0 	0 	0 	0  . . .' ' '* * *  
8 8 8
! ! !
# # #0 0 0, , ,1 1 1( ( (:	. 	. 	.% % %3 3 3 3 3r   r   )	numpyr   r3   pandasr?   pandas._testing_testingrP   r   r   r   r   <module>r     st                  {3 {3 {3 {3 {3 {3 {3 {3 {3 {3r   