a
    Pfi9                     @   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
   W/var/www/ai-form-bot/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take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     



rG   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   rA   )	r   r!   r&   r   modfrD   r<   r'   r(   )r   r   r)   r?   r*   r+   r,   r
   r
   r   test_multiple_output_ufunc   s    

rI   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   rE   rF   r+   r
   r
   r   #test_binary_ufunc_drops_series_name   s
    
rL   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selfrP   r
   r
   r   __init__   s    z-test_object_series_ok.<locals>.Dummy.__init__c                 S   s   | j |j  S r   rO   rR   r3   r
   r
   r   __add__   s    z,test_object_series_ok.<locals>.Dummy.__add__)__name__
__module____qualname__rS   rU   r
   r
   r
   r   Dummy   s   rY   r   rA   )r   arrayr!   r&   r'   r(   add)rY   r)   serr
   r
   r   test_object_series_ok   s
    
"r]   )rA   r   r   r   ZInt64ZFloat32)rA   r   r   zSparse[int])2000Z2010Z2001ZCETD)freq)z1 Dayz3 Daysz2 DaysrA   r   r   c                 C   s
   t | jS r   )strr   )xr
   r
   r   <lambda>      rc   c                 C   s   | j S r   r   r   r
   r
   r   values_for_np_reduce   s    re   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rbtjj	dd}|
| |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_warningrD   r!   coreZarraysr   pytestmarkZxfailZapplymarkerr   kindr   multiplyreduce	DataFrameprodr(   r7   _valuesjoinraises	TypeError)rR   re   box_with_arrayr	   boxvaluesobjrq   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miufFrh   ri   )rj   rk   zufunc 'add' cannot use operandsrl   )r'   rn   r   rr   r   r[   rt   r!   ru   sumr(   r7   rw   rx   rp   ry   rz   )	rR   re   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fFrh   rA   )r!   r7   r   rr   r'   rn   r   maximumrt   ru   maxr(   type	rR   re   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   Frh   r   )r!   r7   r   rr   r'   rn   r   minimumrt   ru   minr(   r   r   r
   r
   r   test_mind  s    &
zTestNumpyReductions.test_minN)rV   rW   rX   r   r   r   r   r
   r
   r
   r   rf   	  s   "rf   type_c                 C   sT   t jg ddd}| g d}t||}t jt| |dd}t|| d S )NrA   r   r   r   r0   )r   r      )r!   r&   r   r[   Zto_numpyr'   r(   )r   rJ   rK   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>.ThingNrM   c                 S   s
   || _ d S r   rO   rQ   r
   r
   r   rS     s    z,test_object_dtype_ok.<locals>.Thing.__init__c                 S   s   t |d|}t| | j| S )NrP   )getattrr   rP   rT   r
   r
   r   rU     s    z+test_object_dtype_ok.<locals>.Thing.__add__c                    s   t | u o| j|jkS r   )r   rP   rT   Thingr
   r   __eq__  s    z*test_object_dtype_ok.<locals>.Thing.__eq__c                 S   s   d| j  dS )NzThing()rO   )rR   r
   r
   r   __repr__  s    z,test_object_dtype_ok.<locals>.Thing.__repr__)	rV   rW   rX   rS   rU   boolr   ra   r   r
   r   r
   r   r     s   r   rA   r   r   )r!   r&   r   r[   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dd tj| | W d    n1 sN0    Y  d S )Nr    rl   )	r!   r&   r   rZ   rp   ry   NotImplementedError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)rA   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
   )rb   yzr
   r
   r   add3  s    z2test_array_ufuncs_for_many_arguments.<locals>.add3r   rA   r   r   r   zTCannot apply ufunc <ufunc 'add3 (vectorized)'> to mixed DataFrame and Series inputs.rl   )r   Z
frompyfuncr!   r&   objectr'   r(   ru   rp   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   rp   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr!   Zpandas._testingZ_testingr'   Zpandas.arraysr   Zfixturer[   Z	logaddexpr   r   r   rq   ZparametrizeZpositivefloorexpr-   r6   r8   r>   r@   divmodfilterwarningsrG   rI   rL   r]   rZ   r   to_datetimeZtz_localizeZ	to_periodZto_timedeltaZIntervalIndexZIntervalre   rf   r#   r<   r   r   r   r   r   Z&skip_copy_on_write_not_yet_implementedr   r
   r
   r
   r   <module>   sn   





&


&
s
		
