a
    nÝEbš:  ã                   @   sb  d dl mZ d dlZd dlZd dlZd dlmZ d dlZ	d dl
mZ d dlmZ ejejejgZejejgZddgZddgZddgZejd	d
„ ƒZej de¡ejjdeed�dd„ ƒƒZej de¡ejjdeed�ejjdddgddgd�dd„ ƒƒƒZej de¡ejjdeed�ejjdddgddgd�dd„ ƒƒƒZej de¡ejjdeed�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e¡ejjdeed�ej dddg¡dd„ ƒƒƒZ!ej dej"g¡ejjdeed�ej de¡ej #d¡dd„ ƒƒƒƒZ$ejjdeed�d d!„ ƒZ%ejjdeed�ej de¡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,¢¡ +d-¡e	 *g d,¢¡j,d.d/�e	 -g d0¢¡e	 .e	 /d d1¡e	 /d2d3¡e	 /d1d2¡g¡g	d4d5„ d6�d7d8„ ƒZ0G d9d:„ d:ƒZ1ej d;e2ee3g¡d<d=„ ƒZ4d>d?„ Z5d@dA„ Z6dS )Bé    )ÚdequeN)Úis_dtype_equal)ÚSparseArrayTFÚsparseZdensec                  C   sL   t jjddddd�} t j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Úrandint)Úa1Úa2© r   ú^/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/series/test_ufunc.pyÚarrays_for_binary_ufunc   s
    r   Úufunc)Úidsc                 C   sŒ   t j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	   é   Úname©Úindexr   )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straightc                 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_array2   s    r/   c                 C   sÞ   |\}}|r4t |t dd¡d�}t |t dd¡d�}d}tj||d�}|sNd nt}t |¡�$ tj||d� d¡}	W d   ƒ n1 s†0    Y  ||f}
||	f}| r´t	|
ƒ}
t	|ƒ}tj||
Ž |d�}||Ž }t 
||¡ d S r)   )r   r   r   r    ÚFutureWarningr!   Úassert_produces_warningÚIndexZastyper+   r"   )r(   r   r   r   r   r   r   r$   Úwarnr,   r-   r.   r&   r%   r   r   r   Útest_binary_ufunc_with_indexL   s"    2r4   ÚshuffleZ	unalignedZalignedc                 C   sø   |\}}|r4t |t dd¡d�}t |t dd¡d�}d}tj||d�}tj||d�}	tj t|ƒ¡}
|rš|	 |
¡}	| rˆ|	 	|¡d j
}q | 	|	¡d j
}n|j
}||f}||	f}| rÌtt|ƒƒ}tt|ƒƒ}tj||Ž ||d�}||Ž }t ||¡ d S )Nr   r   r	   r   r*   r   )r   r   r   r    r   r   ZpermutationÚlenZtakeÚalignr   Útupler+   r!   r"   )r(   r5   r   r   r   r   r   r   r$   r,   Úidxr   r-   r.   r&   r%   r   r   r   Útest_binary_ufunc_with_seriesk   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   r*   )r   r   r    r8   r+   r!   r"   )r   r   r(   r   r#   Ú_r,   r$   r.   r-   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ƒsˆJ ‚| ||ƒ}
t|
tƒs J ‚t |
d t |	d ¡¡ t |
d t |	d ¡¡ d S )Né   r   r   r	   )Úfrac)	r   r   r   r    ÚsampleÚ
isinstancer8   r!   r"   )r   r   r5   r   Úrequestr   r   Ús1Ús2r&   r%   r   r   r   Ú"test_multiple_output_binary_ufuncs¯   s     



rD   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   r*   r   r=   )	r   r   r    r   Úmodfr@   r8   r!   r"   )r   r   r#   r;   r$   r%   r&   r   r   r   Útest_multiple_output_ufuncÓ   s    

rF   c                 C   s@   |\}}t j|dd�}t j|dd�}| ||ƒ}|jd u s<J ‚d S )NÚar*   Úb)r   r    r   )r   r   r   r   r   rB   rC   r%   r   r   r   Ú#test_binary_ufunc_drops_series_nameç   s
    
rI   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„ Zdd„ ZdS )z$test_object_series_ok.<locals>.Dummyc                 S   s
   || _ d S ©N©Úvalue©ÚselfrL   r   r   r   Ú__init__õ   s    z-test_object_series_ok.<locals>.Dummy.__init__c                 S   s   | j |j  S rJ   rK   ©rN   r,   r   r   r   Ú__add__ø   s    z,test_object_series_ok.<locals>.Dummy.__add__N)Ú__name__Ú
__module__Ú__qualname__rO   rQ   r   r   r   r   ÚDummyô   s   rU   r   r=   )r   Úarrayr   r    r!   r"   Úadd)rU   r#   Zserr   r   r   Útest_object_series_okó   s
    
"rX   )r=   r   r   r	   ZInt64ZFloat32)r=   r   r   úSparse[int])Ú2000Z2010Z2001ZCETÚD)Úfreq)z1 Dayz3 Daysz2 Daysr=   r   r   c                 C   s
   t | jƒS rJ   )Ústrr
   )Úxr   r   r   Ú<lambda>  ó    r_   )Úparamsr   c                 C   s   | j S rJ   )Úparam)rA   r   r   r   Úvalues_for_np_reduce  s    rc   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestNumpyReductionsc                 C   sZ  |}|}d }t |jdƒr&|tju r&t}d}tj||d�� ||ƒ}W d   ƒ n1 sV0    Y  t|tjj	j
ƒr”|tjur”tjjdd�}	|j |	¡ |jjdv �rtj |¡}
|tju rÒ|jdd�}t |
|¡ n8|tju rô|j ¡ }|
|ksòJ ‚n| ¡ }|
|k�sVJ ‚nJd	 g d
¢¡}tjt|d�� tj |¡ W d   ƒ n1 �sL0    Y  d S )NrY   ú!passing a SparseArray to pd.Index©ÚmatchzSparseArray has no 'mul')ÚreasonZiufF©Znumeric_onlyú|)údoes not support reductionúunsupported operand typez$ufunc 'multiply' cannot use operands)r   r
   r   r2   r0   r!   r1   r@   ÚcoreZarraysr   ÚpytestÚmarkZxfailÚnodeZ
add_markerÚkindr   ÚmultiplyÚreduceÚ	DataFrameÚprodr"   Ú_valuesÚjoinÚraisesÚ	TypeError)rN   rc   Úbox_with_arrayrA   ÚboxÚvaluesr3   ÚmsgÚobjro   r%   r&   r   r   r   Útest_multiply  s4    &


ÿz!TestNumpyReductions.test_multiplyc           
      C   s"  |}|}d }t |jdƒr&|tju r&t}d}tj||d�� ||ƒ}W d   ƒ n1 sV0    Y  |jjdv rÔtj	 
|¡}|tju rœ|jdd�}	t ||	¡ n6|tju r¾|j ¡ }	||	ksÒJ ‚n| ¡ }	||	ksÒJ ‚nJd g d¢¡}tjt|d�� tj	 
|¡ W d   ƒ n1 �s0    Y  d S )	NrY   re   rf   ZmiufFri   rj   )rk   rl   zufunc 'add' cannot use operands)r   r
   r   r2   r0   r!   r1   rq   r   rW   rs   rt   Úsumr"   rv   rw   rn   rx   ry   )
rN   rc   rz   r{   r|   r3   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}d }t|jdƒrD|t ju rDt}d}tj||d�� ||ƒ}W d   ƒ n1 st0    Y  tj	 
|¡}	|t ju r®|jdd�}
t |	|
¡ n,|d }
|	|
ksÂJ ‚|rÚt|	ƒt|
ƒksÚJ ‚d S )	NT©ÚiÚfFrY   re   rf   ri   r=   )r   r2   r
   rq   r   r0   r!   r1   r   Úmaximumrs   rt   Úmaxr"   Útype©rN   rc   rz   r{   r|   Z	same_typer3   r}   r~   r%   r&   r   r   r   Útest_max`  s&    &
zTestNumpyReductions.test_maxc                 C   sÞ   |}|}d}|t ju r&|jjdv r&d}d }t|jdƒrD|t ju rDt}d}tj||d�� ||ƒ}W d   ƒ n1 st0    Y  tj	 
|¡}	|t ju r®|jdd�}
t |	|
¡ n,|d }
|	|
ksÂJ ‚|rÚt|	ƒt|
ƒksÚJ ‚d S )	NTr‚   FrY   re   rf   ri   r   )r   r2   r
   rq   r   r0   r!   r1   r   Úminimumrs   rt   Úminr"   r‡   rˆ   r   r   r   Útest_min|  s&    &
zTestNumpyReductions.test_minN)rR   rS   rT   r   r�   r‰   rŒ   r   r   r   r   rd     s   '"rd   Ú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   r*   )r   r   é   )r   r    r   rW   Zto_numpyr!   r"   )r�   rG   rH   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                       s<   e Zd Z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>.Thingc                 S   s
   || _ d S rJ   rK   rM   r   r   r   rO   ¤  s    z,test_object_dtype_ok.<locals>.Thing.__init__c                 S   s   t |d|ƒ}t| ƒ| j| ƒS )NrL   )Úgetattrr‡   rL   rP   r   r   r   rQ   §  s    z+test_object_dtype_ok.<locals>.Thing.__add__)Úreturnc                    s   t |ƒˆ u o| j|jkS rJ   )r‡   rL   rP   ©ÚThingr   r   Ú__eq__«  s    z*test_object_dtype_ok.<locals>.Thing.__eq__c                 S   s   d| j › d�S )NzThing(ú)rK   )rN   r   r   r   Ú__repr__®  s    z,test_object_dtype_ok.<locals>.Thing.__repr__N)	rR   rS   rT   rO   rQ   Úboolr•   r]   r—   r   r“   r   r   r”   £  s   r”   r=   r   r   )r   r    r   rW   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Ž   rf   )r   r    r   rV   rn   rx   ÚNotImplementedErrorr!   ZEMPTY_STRING_PATTERNÚsubtractÚouter)r™   Úor   r   r   Ú
test_outer·  s    rŸ   )7Úcollectionsr   r   Únumpyr   rn   Zpandas.core.dtypes.commonr   Zpandasr   Zpandas._testingZ_testingr!   Zpandas.arraysr   ZpositiveÚfloorÚexpZUNARY_UFUNCSrW   Z	logaddexpZBINARY_UFUNCSZSPARSEZ
SPARSE_IDSZSHUFFLEZfixturer   ro   Zparametrizer'   r/   r4   r:   r<   ÚdivmodÚfilterwarningsrD   rF   rI   rX   rV   r   Úto_datetimeZtz_localizeZ	to_periodZto_timedeltaZIntervalIndexZIntervalrc   rd   r   r8   r�   rš   rŸ   r   r   r   r   Ú<module>   s‚   
&
 

&÷ô
 
	