a
    d9                     @   s6   d dl Zd dlZd dlZd dlmZ G dd dZdS )    Nc                
   @   s  e Zd Zejdd dd dd dd dd dd dd gg d	d
dd Zejdddd Zdd Zdd Zdd Z	dd Z
dd Zdd Zejdddgd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zejjd.eg d/ejg d/d0d1ejdddejejgd0d1gg d2d3d4d5 Zd6d7 Zd8d9 Zejjd:g d;ejg d;d<d1eg d;gg d=d3d>d? Zejjd@dAdBdCejgdDfejdAdBdCejgdejjdEdFdGejdAdBdCejgd<d1dDfejdAdBdCejgd<d1dDfgg dHd3dIdJ Z ejdKddDgejdddLgdMdN Z!ejdddLgdOdP Z"dQdR Z#dSdT Z$dUdV Z%dWdX Z&dYdZ Z'd[d\ Z(d]d^ Z)d_d` Z*dadb Z+dcdd Z,dedf Z-dgdh Z.didj Z/dkdl Z0dmdn Z1dodp Z2dqdr Z3dLS )sBaseSetitemTestsc                 C   s   | j S Nindexx r   l/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/extension/base/setitem.py<lambda>       zBaseSetitemTests.<lambda>c                 C   s
   t | jS r   )listr   r   r   r   r	   r
      r   c                 C   s   t d S r   )slicer   r   r   r	   r
      r   c                 C   s   t dt| S )Nr   )r   lenr   r   r   r	   r
      r   c                 C   s   t t| S r   )ranger   r   r   r   r	   r
      r   c                 C   s   t tt| S r   )r   r   r   r   r   r   r	   r
      r   c                 C   s   t jt| tdS Ndtype)npZonesr   boolr   r   r   r	   r
      r   )r   zlist[index]Z
null_sliceZ
full_slicer   zlist(range)mask)paramsidsc                 C   s   |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requestr   r   r	   full_indexer	   s    zBaseSetitemTests.full_indexerT)Zautousec                 C   s2   |j r.|j}|jdd dkr$d S td d S )N[r   test_is_immutablez4__setitem__ test not applicable with immutable dtype)_is_immutablenodenamesplitpytestskip)r   r   r   r   r   r   r	   skip_if_immutable&   s
    z"BaseSetitemTests.skip_if_immutablec                 C   sd   |j jr@tt |d |d< W d    q`1 s40    Y  n |d |d< |d |d ks`J d S )Nr      )r   r   r"   raises	TypeError)r   datar   r   r	   r   0   s
    ,z"BaseSetitemTests.test_is_immutablec                 C   s2   |rt |}|d |d< |d |d ks.J d S Nr%   r   pdSeriesr   r(   box_in_seriesr   r   r	   test_setitem_scalar_series8   s    
z+BaseSetitemTests.test_setitem_scalar_seriesc                 C   sZ   |rt |}| }|d |d g|ddg< |d |d ksBJ |d |d ksVJ d S r)   )r+   r,   copyr   r(   r.   originalr   r   r	   test_setitem_sequence>   s    
z&BaseSetitemTests.test_setitem_sequencec                 C   s   t |}| }|d g}|r*||}d}tjt|dd ||ddg< W d    n1 sd0    Y  t	|| tjt|dd ||t
d< W d    n1 s0    Y  t	|| d S )Nr   z5cannot set using a {} indexer with a different lengthz	list-likematchr%   r      )r+   r,   r0   Z_from_sequencer"   r&   
ValueErrorformattmassert_series_equalr   )r   r(   Zas_arrayserr2   valuexprr   r   r	   .test_setitem_sequence_mismatched_length_raisesG   s    


**z?BaseSetitemTests.test_setitem_sequence_mismatched_length_raisesc                 C   s8   |rt |}| }g |tjg td< t|| d S r   )r+   r,   r0   r   arrayintr9   assert_equalr1   r   r   r	   test_setitem_empty_indexerX   s
    
z+BaseSetitemTests.test_setitem_empty_indexerc                 C   sJ   |rt |}|d |ddg< |d |d ks2J |d |d ksFJ d S )N   r   r%   r*   r-   r   r   r	    test_setitem_sequence_broadcasts_   s
    
z1BaseSetitemTests.test_setitem_sequence_broadcastssetterlocilocc                 C   s8   t |}t||}|d |d< |d |d ks4J d S r)   )r+   r,   getattr)r   r(   rE   arrr   r   r	   test_setitem_scalarf   s    

z$BaseSetitemTests.test_setitem_scalarc                 C   sB   t tt||d}|d |jd< |jd |d ks>J d S )NABr%   r   rM   )r+   	DataFramer   aranger   rF   r   r(   dfr   r   r	   test_setitem_loc_scalar_mixedm   s    z.BaseSetitemTests.test_setitem_loc_scalar_mixedc                 C   s6   t d|i}|d |jd< |jd |d ks2J d S )NrM   r%   
   rM   r+   rO   rF   rQ   r   r   r	   test_setitem_loc_scalar_singler   s    z/BaseSetitemTests.test_setitem_loc_scalar_singlec                 C   s8   t ||d}|d |jd< |jd |d ks4J d S )NrK   r%   rT   rV   rQ   r   r   r	   ,test_setitem_loc_scalar_multiple_homogoneousw   s    z=BaseSetitemTests.test_setitem_loc_scalar_multiple_homogoneousc                 C   sB   t tt||d}|d |jd< |jd |d ks>J d S )NrK   r%   r   r%   rN   )r+   rO   r   rP   r   rG   rF   rQ   r   r   r	   test_setitem_iloc_scalar_mixed|   s    z/BaseSetitemTests.test_setitem_iloc_scalar_mixedc                 C   s6   t d|i}|d |jd< |jd |d ks2J d S )NrM   r%   )rU   r   rT   r+   rO   rG   rF   rQ   r   r   r	   test_setitem_iloc_scalar_single   s    z0BaseSetitemTests.test_setitem_iloc_scalar_singlec                 C   s8   t ||d}|d |jd< |jd |d ks4J d S )NrK   r%   )rU   r%   rT   r[   rQ   r   r   r	   -test_setitem_iloc_scalar_multiple_homogoneous   s    z>BaseSetitemTests.test_setitem_iloc_scalar_multiple_homogoneousr   )TTTFFbooleanr   )numpy-arrayzboolean-arrayzboolean-array-na)r   c                 C   sR   |d d   }|g d}|r6t|}t|}|d ||< t|| d S N   r   r   r   r6      r   r0   taker+   r,   r9   rA   )r   r(   r   r.   rI   expectedr   r   r	   test_setitem_mask   s    


z"BaseSetitemTests.test_setitem_maskc                 C   s   t ddg}|rt|}tjtdd |d ||< W d    n1 sL0    Y  tj|dd}tjtdd |d ||< W d    n1 s0    Y  d S )NTFzwrong lengthr4   r   r^   r   )r   r?   r+   r,   r"   r&   
IndexErrorr   r(   r.   r   r   r   r	   test_setitem_mask_raises   s    
*z)BaseSetitemTests.test_setitem_mask_raisesc                 C   sn   t jtj|jdddd}d|d d< t j|dd< |rBt |}|d ||< |d d |d k sjJ d S )Nr   r   r^   Tr6   ra   r   )r+   r?   r   zerosshapeNAr,   allri   r   r   r	   'test_setitem_mask_boolean_array_with_na   s    
z8BaseSetitemTests.test_setitem_mask_boolean_array_with_naidx)r   r%   rC   ZInt64)r   zinteger-arrayr_   c                 C   sR   |d d   }|g d}|r6t|}t|}|d ||< t|| d S r`   rd   )r   r(   rp   r.   rI   rf   r   r   r	   test_setitem_integer_array   s    

z+BaseSetitemTests.test_setitem_integer_arrayzidx, box_in_seriesr   r%   rC   FzGH-31948)reason)Zmarks)z
list-Falsez	list-Truezinteger-array-Falsezinteger-array-Truec                 C   sn   |  }|r,tj|dd tt|D d}d}tjt|d |d ||< W d    n1 s`0    Y  d S )Nc                 S   s   g | ]}t d | qS )d   )chr).0ir   r   r	   
<listcomp>   r   zMBaseSetitemTests.test_setitem_integer_with_missing_raises.<locals>.<listcomp>r   z9Cannot index with an integer indexer containing NA valuesr4   r   )r0   r+   r,   r   r   r"   r&   r7   )r   r(   rp   r.   rI   msgr   r   r	   (test_setitem_integer_with_missing_raises   s     z9BaseSetitemTests.test_setitem_integer_with_missing_raisesas_callableNc                    s   t |}tjt|td d d d< |r: fdd}n }|rNt||}n|}|dd ||< |dd ||< |d |d ksJ |d	 |d
 ksJ d S )Nr   TrC   c                    s    S r   r   r   r   r   r	   r
      r   z<BaseSetitemTests.test_setitem_mask_aligned.<locals>.<lambda>ra      r   r%      r+   r,   r   rk   r   r   rH   )r   r(   rz   rE   r;   Zmask2targetr   r{   r	   test_setitem_mask_aligned   s    
z*BaseSetitemTests.test_setitem_mask_alignedc                 C   st   t |}tjt|td}d|d d< |r8t||}n|}|d ||< |d |d ks\J |d |d kspJ d S )Nr   TrC   rU   r   r%   r~   )r   r(   rE   r;   r   r   r   r   r	   test_setitem_mask_broadcast   s    
z,BaseSetitemTests.test_setitem_mask_broadcastc                 C   s   t d|i}| }d|d< t |dgt| d}t|| | }d|jd d df< t|| ||d< t ||d}t|| d S NrL   r%   rM   rK   )r+   rO   r0   r   r9   assert_frame_equalrF   r   r(   rR   resultrf   r   r   r	   test_setitem_expand_columns  s    z,BaseSetitemTests.test_setitem_expand_columnsc                 C   sx   t ddgt| i}| }||d< t dgt| |d}t|| | }||jd d df< t|| d S r   )r+   rO   r   r0   r9   r   rF   r   r   r   r	   "test_setitem_expand_with_extension  s    z3BaseSetitemTests.test_setitem_expand_with_extensionc                 C   s|   t ddgt| i}dt|d d  dt| d}tjt|d  |d d |d< W d    n1 sn0    Y  d S )	NrL   r%   zLength of values \(ra   z$\) does not match length of index \(z\)r4   rM   )r+   rO   r   r"   r&   r7   )r   r(   rR   r=   r   r   r	   !test_setitem_frame_invalid_length"  s    z2BaseSetitemTests.test_setitem_frame_invalid_lengthc                 C   sP   t j|d d ddgd}t j|ddg|jd}|d |d< t|| d S )NrC   )r   r   rY   r   r%   )r+   r,   re   r   r9   r:   )r   r(   r;   rf   r   r   r	   test_setitem_tuple_index+  s    z)BaseSetitemTests.test_setitem_tuple_indexc                 C   sV   |d d   }|g d}|r6t|}t|}|d |d d< t|| d S )Nra   rb   r   r6   rd   )r   r(   r.   rI   rf   r   r   r	   test_setitem_slice1  s    

z#BaseSetitemTests.test_setitem_slicec                 C   s   |d d   }tj|g dd}tj|g d|jd}|  }|d |jd d< t|| |  }|d |jd d< t|| d S )Nra   )abcder   rb   r   r6   r   )	r0   r+   r,   re   r   rG   r9   rA   rF   )r   r(   rI   srf   r   r   r   r	   test_setitem_loc_iloc_slice;  s    z,BaseSetitemTests.test_setitem_loc_iloc_slicec                 C   sN   |d d }t t$ |d d |d d< W d    n1 s@0    Y  d S )Nra   rC   r%   )r"   r&   r7   r   r(   rI   r   r   r	   )test_setitem_slice_mismatch_length_raisesH  s    z:BaseSetitemTests.test_setitem_slice_mismatch_length_raisesc                 C   s<   |d d   }|dd  |d d< t||dd   d S )Nra   )r0   r9   Zassert_extension_array_equalr   r   r   r	   test_setitem_slice_arrayM  s    z)BaseSetitemTests.test_setitem_slice_arrayc                 C   sN   |d d   }tt  |ddg |d< W d    n1 s@0    Y  d S )Nra   r   r%   )r0   r"   r&   r7   r   r   r   r	   &test_setitem_scalar_key_sequence_raiseR  s    z7BaseSetitemTests.test_setitem_scalar_key_sequence_raisec                 C   sL   |  }|d d  }|d |d< |d |d ks4J |d |d ksHJ d S r)   )view)r   r(   Zview1Zview2r   r   r	   test_setitem_preserves_viewsW  s
    z-BaseSetitemTests.test_setitem_preserves_viewsc                 C   sP   t dt |i }}t j|jd}||}|d |j|df< t|| d S )Nr(   r   )r+   rO   r,   r   rF   r9   r   )r   r(   r   rR   rf   r   keyr   r   r	   ,test_setitem_with_expansion_dataframe_column`  s
    z=BaseSetitemTests.test_setitem_with_expansion_dataframe_columnc                 C   s   t d|d d i}|d |jd< t d|d d i}t|| ||jd< t dt j|d |d |g|jdi}t|| d S )Nr(   r%   )r%   r(   rC   )rC   r(   r   r   )r+   rO   rF   r9   r   r,   r   )r   r(   Zna_valuerR   rf   r   r   r	   test_setitem_with_expansion_rowj  s    
 z0BaseSetitemTests.test_setitem_with_expansion_rowc                 C   s\   t j|dd}t j|jtdd}||}||j|< t j|t|jdtd}t|| d S )Nr(   r    )r   r   r    )r   r    r   )r+   r,   r   objectrF   Zastyper9   r:   )r   r(   r   r;   r   r   rf   r   r   r	   test_setitem_seriesx  s    
z$BaseSetitemTests.test_setitem_seriesc                 C   s   t d|i}t|jt jjj}t jjj	}|jj
d }| }||jd d < t|| |jd d |jd d< t|| |j|jd d < t|| |s|s|jj
d |u sJ |jd d |jd d< t|| d S )NrL   r   )r+   rO   
isinstanceZ_mgrcoreZ	internalsZArrayManageroptionsmodeZcopy_on_writeZarraysr0   rG   r9   r   values)r   r(   rR   Zusing_array_managerZusing_copy_on_writeZblk_dataorigr   r   r	   test_setitem_frame_2d_values  s    
z-BaseSetitemTests.test_setitem_frame_2d_valuesc                 C   sF   t j|dd}tt|}t|d}|| }|d= t|| d S )Nr(   r   r%   )r+   r,   r   rP   r   deleter9   r:   )r   r(   r;   Ztakerrf   r   r   r	   test_delitem_series  s    z$BaseSetitemTests.test_delitem_seriesc                 C   s   d}t jttf|d ||d< W d    n1 s40    Y  t jttf|d ||d d < W d    n1 sr0    Y  d S )N r4   r   )r"   r&   r7   r'   )r   r(   Zinvalid_scalarrx   r   r   r	   test_setitem_invalid  s
    &z%BaseSetitemTests.test_setitem_invalidc                 C   s   |  }t||d}|jddgd d f j|jddgd d f< |jdd d f |d k sdJ |jdd d f |d k sJ d S )N)r   r   r%   r   )r0   r+   rO   rF   r   rn   )r   r(   r2   rR   r   r   r	   test_setitem_2d_values  s
    *"z'BaseSetitemTests.test_setitem_2d_values)4__name__
__module____qualname__r"   Zfixturer   r$   r   r/   r3   r>   rB   rD   markZparametrizerJ   rS   rW   rX   rZ   r\   r]   r   r?   r+   rm   rg   rj   ro   rq   r   Zxfailry   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   	
	

		
	
	$


	
	
r   )	numpyr   r"   Zpandasr+   Zpandas._testingZ_testingr9   r   r   r   r   r	   <module>   s   