
    d7                     R    d dl Zd dlZd dlZd dlmZ d dlm	Z	  G d de	          Z
dS )    N)BaseExtensionTestsc                      e Zd Z ej        d d d d d d d gg d	          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d-f ej        d*d+d,ej        gdej                            d./          0           ej        d*d+d,ej        gd&          d-f ej        d*d+d,ej        gd&          d-fgg d1           d2             Zej                            d3dd-g          ej                            ddd4g          d5                         Zej                            ddd4g          d6             Z d7 Z!d8 Z"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 Z0dG Z1d4S )HBaseSetitemTestsc                     | j         S Nindexxs    _/var/www/html/t/fyr/venv311/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   c                 p    |rt          j        |          }|d         |d<   |d         |d         k    sJ d S N   r   pdSeriesr&   data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&   r0   r1   originals       r   test_setitem_sequencez&BaseSetitemTests.test_setitem_sequence-   sv     	#9T??D99;;Qa)aVAw(1+%%%%Aw(1+%%%%%%r   c                 <   t          j        |          }|                                }|d         g}|r|                    |          }d}t	          j        t          |                    d                    5  ||ddg<   d d d            n# 1 swxY w Y   |                     ||           t	          j        t          |                    d                    5  ||t          d          <   d d d            n# 1 swxY w Y   |                     ||           d S )Nr   z5cannot set using a {} indexer with a different lengthz	list-likematchr+   r      )
r-   r.   r4   _from_sequencepytestraises
ValueErrorformatassert_series_equalr   )r&   r0   as_arrayserr6   valuexprs          r   .test_setitem_sequence_mismatched_length_raisesz?BaseSetitemTests.test_setitem_sequence_mismatched_length_raises6   s   ioo88::a	 	/''..EE]:SZZ-D-DEEE 	  	 CAK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  h///]:SZZ-@-@AAA 	" 	"!CaM	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"  h/////s$   9BBBC;;C?C?c                     |rt          j        |          }|                                }g |t          j        g t
                    <   |                     ||           d S r   )r-   r.   r4   r   arrayintassert_equalr5   s       r   test_setitem_empty_indexerz+BaseSetitemTests.test_setitem_empty_indexerG   sY     	#9T??D99;;(*RXb$$$%$)))))r   c                     |rt          j        |          }|d         |ddg<   |d         |d         k    sJ |d         |d         k    sJ d S )N   r   r+   r,   r/   s      r    test_setitem_sequence_broadcastsz1BaseSetitemTests.test_setitem_sequence_broadcastsN   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&   r0   rO   arrs       r   test_setitem_scalarz$BaseSetitemTests.test_setitem_scalarU   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Br+   r   rY   )r-   	DataFramer   aranger   rP   r&   r0   dfs      r   test_setitem_loc_scalar_mixedz.BaseSetitemTests.test_setitem_loc_scalar_mixed\   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 )NrY   r+   
   rY   r-   r[   rP   r]   s      r   test_setitem_loc_scalar_singlez/BaseSetitemTests.test_setitem_loc_scalar_singlea   sE    \3+&&q'wvg$q'))))))r   c                     t          j        ||d          }|d         |j        d<   |j        d         |d         k    sJ d S )NrW   r+   ra   rc   r]   s      r   ,test_setitem_loc_scalar_multiple_homogoneousz=BaseSetitemTests.test_setitem_loc_scalar_multiple_homogoneousf   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 )NrW   r+   r   r+   rZ   )r-   r[   r   r\   r   rQ   rP   r]   s      r   test_setitem_iloc_scalar_mixedz/BaseSetitemTests.test_setitem_iloc_scalar_mixedk   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 )NrY   r+   )rb   r   ra   r-   r[   rQ   rP   r]   s      r   test_setitem_iloc_scalar_singlez0BaseSetitemTests.test_setitem_iloc_scalar_singlep   sE    \3+&&avg$q'))))))r   c                     t          j        ||d          }|d         |j        d<   |j        d         |d         k    sJ d S )NrW   r+   )rb   r+   ra   rk   r]   s      r   -test_setitem_iloc_scalar_multiple_homogoneousz>BaseSetitemTests.test_setitem_iloc_scalar_multiple_homogoneousu   sI    \40011avg$q'))))))r   r!   )TTTFFbooleanr   T)numpy-arrayzboolean-arrayzboolean-array-na)r#   c                    |d d                                          }|                    g d          }|r(t          j        |          }t          j        |          }|d         ||<   |                     ||           d S N   r   r   r   r;      r   r4   taker-   r.   rJ   )r&   r0   r!   r1   rT   expecteds         r   test_setitem_maskz"BaseSetitemTests.test_setitem_maskz   s{     2A2hmmoo88OOO,, 	+)C..Cy**HGD	(C(((((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 lengthr9   r   ro   r   )r   rH   r-   r.   r=   r>   
IndexErrorr&   r0   r1   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   ro   Tr;   rs   r   )r-   rH   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   r+   rM   Int64)r   zinteger-arrayrp   c                    |d d                                          }|                    g d          }|r(t          j        |          }t          j        |          }|d         ||<   |                     ||           d S rr   rv   )r&   r0   r   r1   rT   rx   s         r   test_setitem_integer_arrayz+BaseSetitemTests.test_setitem_integer_array   s{     2A2hmmoo99___-- 	+)C..Cy**Hq6C#x(((((r   zidx, box_in_seriesr   r+   rM   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                 6    g | ]}t          j        d           S )ru   )tmrands).0_s     r   
<listcomp>zMBaseSetitemTests.test_setitem_integer_with_missing_raises.<locals>.<listcomp>   s     (O(O(O!(O(O(Or   r   z9Cannot index with an integer indexer containing NA valuesr9   r   )r4   r-   r.   r   r   r=   r>   r?   )r&   r0   r   r1   rT   msgs         r   (test_setitem_integer_with_missing_raisesz9BaseSetitemTests.test_setitem_integer_with_missing_raises   s     iikk  	Q)D(O(OeCII>N>N(O(O(OPPPC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   TrM   c                     S r    )r   r!   s    r   r   z<BaseSetitemTests.test_setitem_mask_aligned.<locals>.<lambda>   s    d r   rs      r   r+      r-   r.   r   r   r   r   rS   )r&   r0   r   rO   rC   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   TrM   rb   r   r+   r   )r&   r0   rO   rC   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          }|                     ||           |                                }d|j        d d df<   |                     ||           ||d<   t          j        ||d          }|                     ||           d S NrX   r+   rY   rW   )r-   r[   r4   r   assert_frame_equalrP   r&   r0   r^   resultrx   s        r   test_setitem_expand_columnsz,BaseSetitemTests.test_setitem_expand_columns   s    \3+&&s<d!s4yy A ABB111
111c6111 s<d 6 67711111r   c                 r   t          j        ddgt          |          z  i          }|                                }||d<   t          j        dgt          |          z  |d          }|                     ||           |                                }||j        d d df<   |                     ||           d S r   )r-   r[   r   r4   r   rP   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111!
111c611111r   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 )	NrX   r+   zLength of values \(rs   z$\) does not match length of index \(z\)r9   rY   )r-   r[   r   r=   r>   r?   )r&   r0   r^   rE   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<   |                     ||           d S )NrM   )r   r   rh   r   r+   )r-   r.   rw   r	   rA   )r&   r0   rC   rx   s       r   test_setitem_tuple_indexz)BaseSetitemTests.test_setitem_tuple_index  sr    iRaR(89999TYY1v..ci@@@1gF  h/////r   c                    |d d                                          }|                    g d          }|r(t          j        |          }t          j        |          }|d         |d d<   |                     ||           d S )Nrs   rt   r   r;   rv   )r&   r0   r1   rT   rx   s        r   test_setitem_slicez#BaseSetitemTests.test_setitem_slice   s}    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<   |                     ||           |                                 }|d         |j        d d<   |                     ||           d S )Nrs   )abcder   rt   r   r;   r   )r4   r-   r.   rw   r	   rQ   rJ   rP   )r&   r0   rT   srx   r   s         r   test_setitem_loc_iloc_slicez,BaseSetitemTests.test_setitem_loc_iloc_slice*  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 )Nrs   rM   r+   )r=   r>   r?   r&   r0   rT   s      r   )test_setitem_slice_mismatch_length_raisesz:BaseSetitemTests.test_setitem_slice_mismatch_length_raises7  s    2A2h]:&& 	 	"1"gCG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     |d d                                          }|dd          |d d<   |                     ||dd                     d S )Nrs   )r4   assert_extension_array_equalr   s      r   test_setitem_slice_arrayz)BaseSetitemTests.test_setitem_slice_array<  sP    2A2hmmoorss)BQB))#tBCCy99999r   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 )Nrs   r   r+   )r4   r=   r>   r?   r   s      r   &test_setitem_scalar_key_sequence_raisez7BaseSetitemTests.test_setitem_scalar_key_sequence_raiseA  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&   r0   view1view2s       r   test_setitem_preserves_viewsz-BaseSetitemTests.test_setitem_preserves_viewsF  sa    		QQQq'QQx47""""Qx47""""""r   c                     t          j        dt          j        |          i          x}}t          j        |j                  } ||          }|d         |j        |df<   |                     ||           d S )Nr0   r   )r-   r[   r.   r	   rP   r   )r&   r0   r(   r^   rx   r   keys          r   ,test_setitem_with_expansion_dataframe_columnz=BaseSetitemTests.test_setitem_with_expansion_dataframe_columnO  sv    fbioo%>???XBH---l2"$V*
3;11111r   c                    t          j        d|d d         i          }|d         |j        d<   t          j        d|d d         i          }|                     ||           ||j        d<   t          j        dt          j        |d         |d         |g|j                  i          }|                     ||           d S )Nr0   r+   )r+   r0   rM   )rM   r0   r   r   )r-   r[   rP   r   r.   r   )r&   r0   na_valuer^   rx   s        r   test_setitem_with_expansion_rowz0BaseSetitemTests.test_setitem_with_expansion_rowY  s    \648,-- Gy<bqb 233H--- %y<RYQa(;4:NNNO
 
 	H-----r   c                 >   t          j        |d          }t          j        |j        t          d          } ||          }||j        |<   t          j        |                    t                    |j        dt                    }|                     ||           d S )Nr0   name)r	   r   r   )r	   r   r   )r-   r.   r	   objectrP   astyperA   )r&   r0   r(   rC   r   r   rx   s          r   test_setitem_seriesz$BaseSetitemTests.test_setitem_seriesg  s    i6***&vFFF l3
39KKsyvV
 
 
 	  22222r   c                 ~   t          j        d|i          }t          |j        t           j        j        j                  }t           j        j        j	        }|j        j
        d         }|                                }||j        d d <   |                     ||           |j        d d         |j        d d<   |                     ||           |j        |j        d d <   |                     ||           |s|s|j        j
        d         |u sJ |j        d d         |j        d d<   |                     ||           d S )NrX   r   )r-   r[   
isinstance_mgrcore	internalsArrayManageroptionsmodecopy_on_writearraysr4   rQ   r   values)r&   r0   r^   using_array_managerusing_copy_on_writeblk_dataorigs          r   test_setitem_frame_2d_valuesz-BaseSetitemTests.test_setitem_frame_2d_valuesv  s5   \3+&& )"'2C2PQQ jo;7>!$wwyy
D)))wss|D)))Y
D)))" 	1+> 	1 7>!$0000y"~D)))))r   c                     t          j        |d          }t          j        t	          |                    }t          j        |d          }||         }|d= |                     ||           d S )Nr0   r   r+   )r-   r.   r   r\   r   deleterA   )r&   r0   rC   takerrx   s        r   test_delitem_seriesz$BaseSetitemTests.test_delitem_series  sh    i6***	#c((##	%##u:F  h/////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 r9   r   )r=   r>   r?   	TypeError)r&   r0   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   r+   r   )r4   r-   r[   rP   r   r   )r&   r0   r6   r^   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   )2__name__
__module____qualname__r=   fixturer(   r2   r7   rF   rK   rN   markparametrizerU   r_   rd   rf   ri   rl   rn   r   rH   r-   r   ry   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

 
 
  ( ) (" " "& & &0 0 0"* * *" " " [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"2 2 2 	2 	2 	2  0 0 0) ) ), , ,  
: : :
! ! !
# # #2 2 2. . .3 3 3* * *:	0 	0 	0% % %3 3 3 3 3r   r   )numpyr   r=   pandasr-   pandas._testing_testingr    pandas.tests.extension.base.baser   r   r   r   r   <module>r      s                   ? ? ? ? ? ?c3 c3 c3 c3 c3) c3 c3 c3 c3 c3r   