a
    d9                     @   s  d dl mZ d dlZd dlZd dlZd dlZd dlm  m	Z
 d dlZd dlmZ d dlmZ ejejejgddd Zejddgd	d
gddd	 Zejdd Zejdejejejgdd Zejjdddgddgddd Zejjdddgddgddd Zejjdddgddgdejjdddgddgddd Z ejdddgdd Z!ejdej"gejdddgej#d d!d" Z$d#d$ Z%d%d& Z&d'd( Z'ejej(g d)ej)d*ej(g d)d+d*ej(g d)d,d*ej(g d-d.d*e*g d/e*g d/+d0e*g d/j,d1d2e-g d3e.e/d d4e/d5d6e/d4d5gg	d7d8 dd9d: Z0G d;d< d<Z1ejd=e2ee3gd>d? Z4d@dA Z5dBdC Z6dDdE Z7dFdG Z8e
j9dHdI Z:dS )J    )dequeN)SparseArray)paramsc                 C   s   | j S Nparamrequest r
   g/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/series/test_ufunc.pyufunc   s    r   TFsparseZdense)r   idsc                 C   s   | j S r   r   r   r
   r
   r   r      s    c                  C   sX   t jdjddddd} t jdjddddd}d| ddd< d|ddd	< | |fS )
zO
    A pair of random, length-100 integer-dtype arrays, that are mostly 0.
       r   
   d   int64dtypeN      )nprandomdefault_rngintegers)a1a2r
   r
   r   arrays_for_binary_ufunc   s
    r   c                 C   s   t jdjddddd}d|d d d< |r@t|tddd}ttj	d d }d}tj
|||d}| |}tj
| |||d}t|| d S )Nr   r   r   r   r   nameindexr   )r   r   r   r   r   pdSparseDtypeliststringascii_lettersSeriestmassert_series_equal)r   r   arrr    r   seriesresultexpectedr
   r
   r   test_unary_ufunc&   s    r-   flipZflippedZstraight)r   c                 C   s   |\}}|r4t |tddd}t |tddd}d}tj||d}|}||f}	||f}
| rnt|	}	t|
}
tj||	 |d}||
 }t|| d S Nr   r   r   r   r   )r   r!   r"   r&   reversedr'   r(   r.   r   r   r   r   r   r   r*   other
array_argsseries_argsr,   r+   r
   r
   r   test_binary_ufunc_with_array7   s    r6   c                 C   s   |\}}|r4t |tddd}t |tddd}d}tj||d}tj||dd}||f}	||f}
| r~t|	}	t|
}
tj||	 |d}||
 }t|| d S r/   )	r   r!   r"   r&   IndexZastyper1   r'   r(   r2   r
   r
   r   test_binary_ufunc_with_indexO   s    r8   shuffleZ	unalignedZalignedc                 C   s   |\}}|r4t |tddd}t |tddd}d}tj||d}tj||d}	tjdt|}
|r|		|
}	| r|	
|d j}q|
|	d j}n|j}||f}||	f}| rtt|}tt|}tj|| ||d}|| }t|| d S )Nr   r   r   r   r0   r   r   )r   r!   r"   r&   r   r   r   ZpermutationlenZtakeZalignr    tupler1   r'   r(   )r.   r9   r   r   r   r   r   r   r*   r3   idxr    r4   r5   r,   r+   r
   r
   r   test_binary_ufunc_with_seriesj   s,    
r=   c                 C   s|   |\}}|rt |}d}tj|dd}||f}||f}	|rRtt|}tt|	}	tj| |	 dd}
| | }t||
 d S )Nr   r   r0   )r   r!   r&   r;   r1   r'   r(   )r   r   r.   r   r)   _r3   r*   r5   r4   r,   r+   r
   r
   r   test_binary_ufunc_scalar   s    r?   z$ignore:divide by zero:RuntimeWarningc           
      C   s   |\}}d||dk< d||dk< |rLt |tddd}t |tddd}t|}t|}|rp|jdd}| ||}t|tsJ | ||}	t|	tsJ t|	d t|d  t|	d t|d  d S )N   r   r   r   )frac)	r   r!   r"   r&   sample
isinstancer;   r'   r(   )
r   r   r9   r   r   r   s1s2r,   r+   r
   r
   r   "test_multiple_output_binary_ufuncs   s     



rF   c                 C   s   |\}}| rt |}tj|dd}t|}t|}t|tsDJ t|tsRJ t|d tj|d dd t|d tj|d dd d S )Nr   r0   r   r@   )	r   r!   r&   r   modfrC   r;   r'   r(   )r   r   r)   r>   r*   r+   r,   r
   r
   r   test_multiple_output_ufunc   s    

rH   c                 C   s@   |\}}t j|dd}t j|dd}| ||}|jd u s<J d S )Nar0   b)r!   r&   r   )r   r   r   r   r   rD   rE   r+   r
   r
   r   #test_binary_ufunc_drops_series_name   s
    
rK   c               
   C   s~   G dd d} t | d| dg}t|}tt ||tt || tt || dtt || d d S )Nc                   @   s"   e Zd ZddddZdd ZdS )z$test_object_series_ok.<locals>.DummyNreturnc                 S   s
   || _ d S r   valueselfrO   r
   r
   r   __init__   s    z-test_object_series_ok.<locals>.Dummy.__init__c                 S   s   | j |j  S r   rN   rQ   r3   r
   r
   r   __add__   s    z,test_object_series_ok.<locals>.Dummy.__add__)__name__
__module____qualname__rR   rT   r
   r
   r
   r   Dummy   s   rX   r   r@   )r   arrayr!   r&   r'   r(   add)rX   r)   serr
   r
   r   test_object_series_ok   s
    
"r\   )r@   r   r   r   ZInt64ZFloat32)r@   r   r   zSparse[int])2000Z2010Z2001ZCETD)freq)z1 Dayz3 Daysz2 Daysr@   r   r   c                 C   s
   t | jS r   )strr   )xr
   r
   r   <lambda>      rb   c                 C   s   | j S r   r   r   r
   r
   r   values_for_np_reduce   s    rd   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestNumpyReductionsc                 C   s&  |}|}t d  ||}W d    n1 s00    Y  t|tjjjrdtjj	dd}|j
| |jjdv rtj|}|tju r|jdd}	t ||	 n6|tju r|j }	||	ksJ n| }	||	ksJ nJdg d}
tjt|
d tj| W d    n1 s0    Y  d S )	NzSparseArray has no 'prod')reasonZiufFZnumeric_only|)does not support reductionunsupported operand typez$ufunc 'multiply' cannot use operandsmatch)r'   assert_produces_warningrC   r!   coreZarraysr   pytestmarkZxfailnodeZ
add_markerr   kindr   multiplyreduce	DataFrameprodr(   r7   _valuesjoinraises	TypeError)rQ   rd   box_with_arrayr	   boxvaluesobjrp   r+   r,   msgr
   r
   r   test_multiply  s,    &


z!TestNumpyReductions.test_multiplyc           	      C   s   |}|}t d  ||}W d    n1 s00    Y  |jjdv rtj|}|tju rv|j	dd}t 
|| q|tju r|j	 }||ksJ q|	 }||ksJ nHdg d}tjt|d tj| W d    n1 s0    Y  d S )NZmiufFrg   rh   )ri   rj   zufunc 'add' cannot use operandsrk   )r'   rm   r   rr   r   rZ   rt   r!   ru   sumr(   r7   rw   rx   ro   ry   rz   )	rQ   rd   r{   r|   r}   r~   r+   r,   r   r
   r
   r   test_add.  s&    &


zTestNumpyReductions.test_addc           	      C   s   |}|}d}|t ju r&|jjdv r&d}td  ||}W d    n1 sN0    Y  tj|}|t j	u r|j
dd}t|| n,|d }||ksJ |rt|t|ksJ d S )NTifFrg   r@   )r!   r7   r   rr   r'   rm   r   maximumrt   ru   maxr(   type	rQ   rd   r{   r|   r}   Z	same_typer~   r+   r,   r
   r
   r   test_maxL  s    &
zTestNumpyReductions.test_maxc           	      C   s   |}|}d}|t ju r&|jjdv r&d}td  ||}W d    n1 sN0    Y  tj|}|t j	u r|j
dd}t|| n,|d }||ksJ |rt|t|ksJ d S )NTr   Frg   r   )r!   r7   r   rr   r'   rm   r   Zminimumrt   ru   minr(   r   r   r
   r
   r   test_mind  s    &
zTestNumpyReductions.test_minN)rU   rV   rW   r   r   r   r   r
   r
   r
   r   re   	  s   "re   type_c                 C   sT   t jg ddd}| g d}t||}t jt| |dd}t|| d S )Nr@   r   r   r   r0   )r   r      )r!   r&   r   rZ   Zto_numpyr'   r(   )r   rI   rJ   r+   r,   r
   r
   r   test_binary_ufunc_other_types|  s
    r   c                     s^   G  fddd t  d dg} t|  d}t  d dg}t|| d S )Nc                       sB   e Zd ZddddZdd Zed fddZedd	d
ZdS )z#test_object_dtype_ok.<locals>.ThingNrL   c                 S   s
   || _ d S r   rN   rP   r
   r
   r   rR     s    z,test_object_dtype_ok.<locals>.Thing.__init__c                 S   s   t |d|}t| | j| S )NrO   )getattrr   rO   rS   r
   r
   r   rT     s    z+test_object_dtype_ok.<locals>.Thing.__add__c                    s   t | u o| j|jkS r   )r   rO   rS   Thingr
   r   __eq__  s    z*test_object_dtype_ok.<locals>.Thing.__eq__c                 S   s   d| j  dS )NzThing()rN   )rQ   r
   r
   r   __repr__  s    z,test_object_dtype_ok.<locals>.Thing.__repr__)	rU   rV   rW   rR   rT   boolr   r`   r   r
   r   r
   r   r     s   r   r@   r   r   )r!   r&   r   rZ   r'   r(   )sr+   r,   r
   r   r   test_object_dtype_ok  s
    r   c                  C   s^   t g d} tg d}tjttjd tj	
| | W d    n1 sP0    Y  d S )Nr   rk   )r!   r&   r   rY   ro   ry   NotImplementedErrorr'   ZEMPTY_STRING_PATTERNsubtractouter)r[   r~   r
   r
   r   
test_outer  s    r   c                  C   sL   t jg dgd} t jg dd}t jdgd}t| |}t|| d S )N)r@   r   )dataf   )r!   ru   r   matmulr'   Zassert_frame_equal)Zdf1Zdf2r,   r+   r
   r
   r   test_np_matmul  s
    r   c                  C   s   dd } t | dd}tddg}|||d}tjddgtd}t|| tddgg}d}tj	t
t|d	 |||| W d    n1 s0    Y  d S )
Nc                 S   s   | | | S r   r
   )ra   yzr
   r
   r   add3  s    z2test_array_ufuncs_for_many_arguments.<locals>.add3r   r@   r   r   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.rk   )r   Z
frompyfuncr!   r&   objectr'   r(   ru   ro   ry   r   reescape)r   r   r[   r+   r,   Zdfr   r
   r
   r   $test_array_ufuncs_for_many_arguments  s    r   c                  C   s6   t g d} t| }t g d}t|| d S )N)g      g      g      ?g      ?)g      g       g        g      ?)r!   r&   r   Zfixr'   r(   )r[   r+   r,   r
   r
   r   test_np_fix  s    
r   );collectionsr   r   r$   numpyr   ro   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr!   Zpandas._testingZ_testingr'   Zpandas.arraysr   ZfixturerZ   Z	logaddexpr   r   r   rp   ZparametrizeZpositivefloorexpr-   r6   r8   r=   r?   divmodfilterwarningsrF   rH   rK   r\   rY   r   to_datetimeZtz_localizeZ	to_periodZto_timedeltaZIntervalIndexZIntervalrd   re   r#   r;   r   r   r   r   r   Z&skip_copy_on_write_not_yet_implementedr   r
   r
   r
   r   <module>   sn   





&


&
s
		
